当前位置: 首页 > 软件库 > 程序开发 > >

coc-ember

授权协议 MIT License
开发语言 JavaScript
所属分类 程序开发
软件类型 开源软件
地区 不详
投 递 者 卜勇
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ember language server extension

ember-language-server extension for coc.nvim

Install

Via Plug

Plug 'nullvoxpopuli/coc-ember', {'do': 'yarn install --frozen-lockfile'}

Or via the automatically kept up-to-date config var:

let g:coc_global_extensions = [
  \ 'coc-ember'
\ ]

Starting from Scratch

  1. For the fanciest experience, install the neovim nightly release

  2. Install vim-plug

  3. Setup your (neo|oni)vim's config:

    call plug#begin('~/.local/share/nvim/plugged')
    
      " Highlighting and language support
      Plug 'leafgarland/typescript-vim'
      Plug 'joukevandermaas/vim-ember-hbs'
    
      " CoC / Intellisense
      Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'}
    
    call plug#end()
    
    
    let g:coc_global_extensions = [
      \ 'coc-actions',
      \ 'coc-tsserver',
      \ 'coc-css',
      \ 'coc-json',
      \ 'coc-html',
      \ 'coc-vimlsp',
      \ 'coc-highlight',
      \ 'coc-ember'
    \ ]
  4. Restart your editor, run :PlugInstall

  5. Navigate to an ember project and open (neo|oni)vim.

Done :)

To test this out with neovim:

  1. clone this repo
  2. go to an ember project and run nvim . -u path/to/repo/docs/minimal-config.vim

There are two working neovim single-file configs in this repo

Additionally, @NullVoxPopuli's vim config can be found here

Features

from @lifeart's PR

  • mu, pods, classic layouts support for app models definitions lookup, including js and ts files.
  • mu, pods, classic layouts support for app transforms definitions lookup, including js and ts files.
  • addon components and helpers definitions lookup
  • AngleBracket components autocomplete (including addon-located components) for mu, pods, classic layouts.
  • go-to routes, component properties, actions for mu, pods, classic
  • go-to service declaration definition for classic components
  • go-to ember/addon import support
  • store.peekRecord, findRecord... model names autocomplete for classic
  • belongsTo, hasMany model names autocomplete for classic
  • transitionTo,.. routes autocomplete for classic
  • named: service(name) services autocomplete
  • template linting fix
  • in-repo addons lookup (for classic and mu apps)

Other Features:

  • Component and helper autocompletion for inline and sub expressions
  • Definition providers for (enable features like "Go To Definition" or "Peek Definition"):
    • Components (in Templates)
    • Helpers (in Templates)
    • Models
    • Transforms
  • Route autocompletion in link-to
  • Diagnostics for ember-template-lint (if it is included in a project)

Screenshots

Contributing

NOTE: development will not work on Windows machines, as all the scripts are in Bashand expect *nix compatibility

  • fork repo
  • make modifications
  • Open PR <3

Testing

  • be in coc-ember root directory
  • ./scripts/prepublish.sh
  • yarn link
  • test in your own ember project via
    • :CocList extensions
    • cd to the extensions path (the folder containing a package.json, on linux: ~/.config/coc/extensions/)
    • yarn link coc-ember
    • restart (neo)vim

Debugging

NOTE: ./scripts/prepublish.sh needs be run initially. Afterwards, the following may be used to rebuild each sub-tool, depending on what you're changing.

  • yarn build:js - coc-ember
  • yarn build:addons - the UELS addons bundled with coc-ember

Generally

  • be in ember project
  • open (neo)vim

Viewing Logs

  • Optionally launch with NVIM_COC_LOG_LEVEL=debug nvim .
    • This is very verbose, but is the only way to have stack traces printed
  • :CocOpenLog to view log.
    • :e to refresh the log

Debugging Chrome Dev Tools

:let g:coc_node_args = ['--nolazy', '--inspect-brk=6045']`
:CocRestart

Then visit chrome://inspect/#devices

More info:https://github.com/neoclide/coc.nvim/wiki/Debug-coc.nvim#get-result-from-console

 相关资料
  • 问题内容: 我从API收到了以下格式的JSON 我看到它的格式对于标准RESTAdapter无效,我需要将模型名称放在第一位。在我的示例中,它可能应该类似于: 那么如何使它在我的适配器中看起来像这样?似乎我应该使用 ,但是我不知道应该重写哪种方法… 问题答案: 我今天早些时候遇到了这个问题。解决该问题的一种好方法是为ApplicationSerializer定义normalizePayload方法

  • 问题内容: 虽然我对Web开发并不陌生,但对客户端MVC框架却不是很陌生。我做了一些研究,并决定尝试使用EmberJS。我浏览了TodoMVC指南,这对我来说很有意义。 我已经安装了一个非常基本的应用程序;索引路径,两个模型和一个模板。我正在运行服务器端的php脚本,该脚本返回一些数据库行。 让我感到困惑的一件事是如何在同一条路线上加载多个模型。我已经阅读了一些有关使用setupControlle

  • 问题内容: 我正在通过jenkins部署Ember CLI应用程序,并使用nginx发布它。这是通过詹金斯构建脚本: nginx的配置只是引导到。效果很好,但是当我转到页面时,该页面为空白,并且在控制台中显示以下输出: 我猜这两个错误是相关的,但我不知道是什么导致了它们。我曾尝试这个答案似乎是一个类似的问题,但它并没有为我工作。一切在我的开发环境中都可以正常工作,并且在里面我看不到任何可疑的东西。

  • 问题内容: 我正在学习Ember JS和Handlebars JS,所以我对此很陌生。 我在尝试遍历嵌套JSON数组时遇到问题。我无法遍历下面JSON中的“页面”。 这是JSON: 这是我的车把模板: 另外,当我只添加: 在车把模板中,浏览器中的输出为: 我不确定这是否是问题。 问题答案: 大写变量被认为是全局范围,您需要完全限定它们或使其变为小写 http://emberjs.jsbin.com

  • 问题内容: Ember.js REST适配器期望JSON返回为: 但是我的API返回的数据 没有根元素 : 是否可以自定义REST适配器,使其接受我的JSON数据?现在,它显示“ 断言失败:您的服务器返回了一个带有键0的哈希,但是您没有映射 ” 更新: 根据下面的Sherwin Yu的答案,这是我想出的,到目前为止似乎仍然有效:https : //gist.github.com/richardka

  • 问题内容: 我想做的是,每当用户停止在“项目名”字段中输入内容时进行一次ajax调用,并对照数据库进行检查,并显示一条错误消息,指出“它存在”。但是keypress事件不能按预期方式工作,首先它会忽略输入的第一个字母,结果单词没有完全发送到数据库。 这是我的: 这是HTML, 我可以做出哪些改进才能达到预期的效果? 问题答案: 按键工作正常,在文本框值更改之前进行按键操作。 看起来您所需要的方式不