Skip to content

Using the configuration file

Qiming zhao edited this page Dec 23, 2022 · 13 revisions

coc.nvim uses jsonc as configuration file format, the same as VSCode. It's json that supports comments, like:

{
  // my variable
  "key.sub-key": "value"
}

To get correct comment highlighting, you can install vim-jsonc (which has built-in support for coc-settings.json), or even simply add:

  autocmd FileType json syntax match Comment +\/\/.\+$+

to your .vimrc or init.vim.

You can also use modeline to set filetype as jsonc. Add:

// vim: filetype=jsonc

to the start or end of coc-settings.json. See :h modeline for more information.

Opening the configuration file

Use the command :CocConfig to open your user configuration file, you can create a shortcut for the command like this:

function! SetupCommandAbbrs(from, to)
  exec 'cnoreabbrev <expr> '.a:from
        \ .' ((getcmdtype() ==# ":" && getcmdline() ==# "'.a:from.'")'
        \ .'? ("'.a:to.'") : ("'.a:from.'"))'
endfunction

" Use C to open coc config
call SetupCommandAbbrs('C', 'CocConfig')

Why use JSON?

  • LSP uses JSON for language server configuration.
  • Extensions can contribute JSON schema for json validation.
  • coc-json can provide completion and validation for the settings file, which makes configuration much easier and more reliable.
  • Most configurations take effect just after the settings file is saved, you don't need to restart vim or coc.

Configuration file resolve

To enable intellisense for coc-settings.json, install the json language extension coc-json with:

:CocInstall coc-json

In your vim.

Extension configuration

Just like VSCode, each coc.nvim extension can contribute configuration sections, for example:

To get detailed options for existing configurations, just try the completion in the file coc-settings.json:

screen shot 2018-07-13 at 2 17 26 pm

REPL

Clone this wiki locally