-
-
Notifications
You must be signed in to change notification settings - Fork 954
Using the configuration file
coc.nvim uses jsonc as the configuration file format, the same as VSCode. It's a JSON format that supports comments, like:
To get correct comment highlighting, make sure you use a recent Vim (8.2.3117 or later) or NeoVim (0.6.0 or later) version. Alternatively 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.
Use the :CocConfig command 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')Variables are expanded in string values of the configuration. Supported variables:
-
${userHome}: the path to the user's home folder -
${cwd}: the current working directory of vim
For additional variables, see:
:h coc-configuration-expand
- LSP uses JSON for language server configuration.
- Extensions can contribute a 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 as soon as the settings file is saved; you don't need to restart vim or coc.
To enable IntelliSense for coc-settings.json, install the JSON language extension coc-json by running:
:CocInstall coc-json
in your vim.
Check out :h coc-config for all built-in configurations.
Just like VSCode, each coc.nvim extension can contribute configuration sections, for example:
-
coc-tsserver uses the
tsserver,typescript, andjavascriptsections -
coc-json uses the
jsonsection
To see the available options for existing configurations, try completion in coc-settings.json:
{ // my variable "key.sub-key": "value" }