🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

coc-ember

Package Overview
Dependencies
Maintainers
1
Versions
72
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

coc-ember

Ember language server extension for coc.nvim

1.5.42
latest
npm
Version published
Weekly downloads
11
37.5%
Maintainers
1
Weekly downloads
 
Created
Source

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

  • For the fanciest experience, install the neovim nightly release

  • Install vim-plug

  • 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'
    \ ]
    
  • Restart your editor, run :PlugInstall

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

Done :)

To test this out with neovim:

  • clone this repo
  • 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

To use local coc-ember in your nvim

These steps are handy for reporting issues

  • in <coc-ember>
    • yarn
    • ./scripts/prepublish.sh
    • yarn link
  • in <your ember project>
    • either
      • use your own configuration
        • cd ~/.config/coc/extensions && yarn link coc-ember
        • open nvim, don't update dependencies
      • or use a minimal config
        • nvim -u <coc-ember>/docs/minimal-config.vim
        • :PlugInstall
        • cd ~/.config/coc/extensions && yarn link coc-ember
        • then back in your project: nvim -u <coc-ember>/docs/minimal-config.vim

Keywords

nvim

FAQs

Package last updated on 04 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts