VimPlugin: Coc.nvim

From wikinotes
Revision as of 00:44, 27 December 2021 by Will (talk | contribs) (→‎Languages)

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-pyright', {'do': 'yarn install --frozen-lockfile'}
Plug 'https://github.com/neoclide/coc-tsserver', {'do': 'yarn install --frozen-lockfile'}
Plug 'https://github.com/neoclide/coc-solargraph', {'do': 'yarn install --frozen-lockfile'}

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