
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
CI (Linux, macOS) | Coverage | Gitter | Doc |
---|---|---|---|
Coc is an intellisense engine for vim8 & neovim.
It's a completion framework, language server client with bundled extensions from VSCode that just works.
True snippet and additional text edit support
Checkout doc/coc.txt for vim interface.
For vim-plug user. Add:
Plug 'neoclide/coc.nvim', {'do': { -> coc#util#install()}}
Or build from source code by install nodejs and yarn
curl -sL install-node.now.sh/lts | sh
curl --compressed -o- -L https://yarnpkg.com/install.sh | bash
And add:
Plug 'neoclide/coc.nvim', {'do': 'yarn install'}
to your .vimrc
or init.vim
, restart vim and run :PlugInstall
.
For other plugin manager, run command :call coc#util#install()
to download
binary after coc is installed.
Name | Description | Filetypes | Requirement |
---|---|---|---|
around | Words of current buffer. | all | |
buffer | Words of none current buffer. | all | |
dictionary | Words from files of dictionary option. | all | |
tag | Words from taglist of current buffer. | all | |
file | Filename completion. | all | |
omni | Invoke omnifunc for complete items | [] | |
word | Words from google 10000 english repo. | all | |
emoji | Emoji characters. | all | |
include | Full path completion. | all | |
gocode | Completion using gocode | ['go'] | Install gocode |
ultisnips | Snippets completion | all | Install ultisnips |
neco | Viml completion | vim | Install neco-vim |
neosnippet | Snippets completion | all | Install neosnippet.vim |
To enable omni
source for certain files, open coc-settings.json
by :CocConfig
, then add configuration like:
"coc.source.omni.filetypes": ["python"],
To complete sources: include
, emoji
and word
, use mapping of <Plug>(coc-complete-custom)
Language server are decoupled from coc.nvim to make the core smaller, and easier for user to use their own version of language server.
Tsserver
Used for javascript
and typescript
yarn global add typescript
Html
Used for html
handlebars
razor
yarn global add vscode-html-languageserver-bin
Json
Used for json
and jsonc
yarn global add vscode-json-languageserver
Css
Used for css
scss
less
and wxss
yarn global add css-langserver
Wxml
yarn global add wxml-langserver
Vetur
Used for vue
yarn global add vue-language-server
Solargraph
Used for ruby
Install solargraph by:
gem install solargraph
Pyls
Used for python
Install pyls by:
pip install 'python-language-server[all]'
Stylelint
Used for css
wxss
scss
less
markdown
postcss
sugarss
vue
.
yarn global add stylelint-langserver
Eslint
Used for javascript
yarn global add eslint-server
Tslint
Used for typescript
yarn global add tslint-server
Note: use :CocConfig
to edit configuration file, auto completion is supported
" if hidden not set, TextEdit might fail.
set hidden
" Better display for messages
set cmdheight=2
" Use tab for trigger completion with characters ahead and navigate.
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
" Use <c-space> for trigger completion.
inoremap <silent><expr> <c-space> coc#refresh()
" Use <C-p> to complete 'word', 'emoji' and 'include' sources
imap <silent> <C-p> <Plug>(coc-complete-custom)
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Use <cr> for confirm completion.
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
" Use `[c` and `]c` for navigate diagnostics
nmap <silent> [c <Plug>(coc-diagnostic-prev)
nmap <silent> ]c <Plug>(coc-diagnostic-next)
" Remap keys for gotos
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)
" Use K for show documentation in preview window
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if &filetype == 'vim'
execute 'h '.expand('<cword>')
else
call CocAction('doHover')
endif
endfunction
" Show signature help while editing
autocmd CursorHoldI,CursorMovedI * silent! call CocAction('showSignatureHelp')
* Highlight symbol under cursor on CursorHold
autocmd CursorHold * silent call CocActionAsync('highlight')
" Remap for rename current word
nmap <leader>rn <Plug>(coc-rename)
" Remap for format selected region
vmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
" Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph
vmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" Remap for do codeAction of current line
nmap <leader>ac <Plug>(coc-codeaction)
" Use `:Format` for format current buffer
command! -nargs=0 Format :call CocAction('format')
* Use `:Fold` for fold current buffer
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" Add diagnostic info for https://github.com/itchyny/lightline.vim
let g:lightline = {
\ 'colorscheme': 'wombat',
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ]
\ },
\ 'component_function': {
\ 'cocstatus': 'coc#status'
\ },
\ }
" Shortcuts for denite interface
" Show symbols of current buffer
nnoremap <silent> <space>o :<C-u>Denite coc-symbols<cr>
" Search symbols of current workspace
nnoremap <silent> <space>t :<C-u>Denite coc-workspace<cr>
" Show diagnostics of current workspace
nnoremap <silent> <space>a :<C-u>Denite coc-diagnostic<cr>
" Show available commands
nnoremap <silent> <space>c :<C-u>Denite coc-command<cr>
" Show available services
nnoremap <silent> <space>s :<C-u>Denite coc-service<cr>
" Show links of current buffer
nnoremap <silent> <space>l :<C-u>Denite coc-link<cr>
Don't be hesitated to open a issue.
FAQs
LSP based intellisense engine for neovim & vim8.
The npm package coc.nvim receives a total of 392 weekly downloads. As such, coc.nvim popularity was classified as not popular.
We found that coc.nvim demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.