VimPlugin: Coc.nvim

From wikinotes
Revision as of 01:08, 27 December 2021 by Will (talk | contribs) (→‎Install)

coc.nvim aims to be intellisense (visualstudio) for vim.

  • autocompletion
  • outliner
  • refactor-rename
  • goto
  • show-references


WARNING:

coc.nvim DOES NOT play nice with other autocompleters.


Documentation

:h coc-nvim https://github.com/neoclide/coc.nvim/blob/master/doc/coc.txt
github https://github.com/neoclide/coc.nvim
wiki https://github.com/neoclide/coc.nvim/wiki
extension list https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions#implemented-coc-extensions

Locations

~/.config/nvim/coc-settings.json config
~/.config/coc/extensions/node_modules/${plugin} plugins installed here
~/.config/coc/memos.json persisted plugin data

Languages

Languages can be installed dynamically with :CocInstall coc-python
or automatically like Plug 'neoclide/coc-tsserver', {'do': 'yarn install --frozen-lockfile'}.

python unmaintained coc-python
python active coc-pyright
sh/bash active coc-sh
ruby/rails active coc-solargraph
graphql active coc-graphql

Install

# archlinux
sudo pacman -S \
  nodejs \
  npm

# macos
brew install
  node.js \
  npm

npm install -g neovim
" install coc
Plug "https://github.com/neoclide/coc.nvim", {'branch': 'release'}

" install coc languages
Plug 'https://github.com/neoclide/coc-tsserver', {'do': 'yarn install --frozen-lockfile'}
CocInstall coc-pyright

NOTE:

Officially, installing servers can be done from vim-plug, but I have not had success with this.

CocInstall works every time. It's probably best to check for files on disk.

Configuration

Keybindings

coc.nvim does not provide function calls, they direct you to bind hotkeys instead.

nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)

Usage

CocInstall coc-python  " install a language

CocShowDefinition       " show docs
CocOpenLog             " show log
CocOutline             " outliner of all symbols

Troubleshooting

:CocInfo  " print debug info