@eflexsystems/coc-ember

1.5.22-6 • Public • Published

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

Helper or Component Helpers Error

Contributing

NOTE: development will not work on Windows machines, as all the scripts are in Bash and 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

Package Sidebar

Install

npm i @eflexsystems/coc-ember

Weekly Downloads

3

Version

1.5.22-6

License

MIT

Unpacked Size

1.18 MB

Total Files

269

Last publish

Collaborators

  • eflex
  • jakesjews
  • rrglomsk
  • nevans54
  • josephdickens87