2022-05-18 13:29:28 -04:00
|
|
|
|
*coc-nvim.txt* NodeJS client for Vim & Neovim.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Version: 0.0.81
|
2022-05-18 13:29:28 -04:00
|
|
|
|
Author: Qiming Zhao <chemzqm at gmail.com>
|
|
|
|
|
License: Anti 996 license
|
|
|
|
|
|
|
|
|
|
CONTENTS *coc-contents*
|
|
|
|
|
|
|
|
|
|
Introduction |coc-introduction|
|
|
|
|
|
Requirements |coc-requirements|
|
|
|
|
|
Installation |coc-installation|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
LSP features |coc-lsp|
|
|
|
|
|
Document |coc-document|
|
|
|
|
|
Completion |coc-completion|
|
|
|
|
|
Diagnostics |coc-diagnostics|
|
|
|
|
|
Signature help |coc-signature|
|
|
|
|
|
Code action |coc-code-actions|
|
|
|
|
|
Document highlights |coc-document-highlights|
|
|
|
|
|
Snippets |coc-snippets|
|
|
|
|
|
Workspace |coc-workspace|
|
|
|
|
|
Cursors |coc-cursors|
|
|
|
|
|
Outline |coc-outline|
|
|
|
|
|
Call hierarchy |coc-callHierarchy|
|
|
|
|
|
Semantic highlights |coc-semantic-highlights|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
Configuration |coc-configuration|
|
|
|
|
|
Interface |coc-interface|
|
|
|
|
|
Key mappings |coc-key-mappings|
|
|
|
|
|
Variables |coc-variables|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Buffer variables |coc-buffer-variables|
|
|
|
|
|
Global variables |coc-global-variables|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
Functions |coc-functions|
|
|
|
|
|
Commands |coc-commands|
|
|
|
|
|
Autocmds |coc-autocmds|
|
|
|
|
|
Highlights |coc-highlights|
|
|
|
|
|
Tree |coc-tree|
|
|
|
|
|
Tree mappings |coc-tree-mappings|
|
|
|
|
|
Tree filter |coc-tree-filter|
|
|
|
|
|
List |coc-list|
|
|
|
|
|
List command |coc-list-command|
|
|
|
|
|
List command options |coc-list-options|
|
|
|
|
|
List configuration |coc-list-configuration|
|
|
|
|
|
List mappings |coc-list-mappings|
|
|
|
|
|
list sources |coc-list-sources|
|
|
|
|
|
Dialog |coc-dialog|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Dialog basic |coc-dialog-basic|
|
|
|
|
|
Dialog confirm |coc-dialog-confirm|
|
|
|
|
|
Dialog input |coc-dialog-input|
|
|
|
|
|
Dialog menu |coc-dialog-menu|
|
|
|
|
|
Dialog picker |coc-dialog-picker|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
Notification |coc-notification|
|
|
|
|
|
Statusline support |coc-status|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Manual |coc-status-manual|
|
|
|
|
|
Airline |coc-status-airline|
|
|
|
|
|
Lightline |coc-status-lightline|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
FAQ |coc-faq|
|
|
|
|
|
Changelog |coc-changelog|
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
INTRODUCTION *coc-introduction*
|
|
|
|
|
|
|
|
|
|
Coc.nvim enhances your (Neo)Vim to match the user experience provided by
|
2022-05-27 03:57:56 -04:00
|
|
|
|
VSCode through a rich extension ecosystem and implemented features of Language
|
|
|
|
|
Server Protocol (3.16 for now).
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Some of its key features include:~
|
|
|
|
|
|
|
|
|
|
- APIs compatible with both Vim8 and Neovim.
|
|
|
|
|
- Loading VSCode-like extensions.
|
2022-05-27 03:57:56 -04:00
|
|
|
|
- Configuring coc.nvim and its extensions with JSON configuration
|
|
|
|
|
|coc-configuration|.
|
|
|
|
|
- Configuring Language Servers that using Language Server Protocol (LSP)
|
|
|
|
|
|coc-config-languageserver|.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
It is designed for best possible integration with other Vim plugins.
|
|
|
|
|
|
|
|
|
|
Note: This plugin doesn't come with support for any specific language. You
|
|
|
|
|
will need to install a coc.nvim extension or set up the language server by
|
|
|
|
|
configuration.
|
|
|
|
|
|
|
|
|
|
Note: This plugin doesn't change any of your existing key-mappings. You will
|
2022-05-27 03:57:56 -04:00
|
|
|
|
need to create key-mappings by yourself, see README.md for examples.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Note: Automatic completion plugins can't play nicely together, you can disable
|
|
|
|
|
automatic completion of coc.nvim through `"suggest.autoTrigger": "none"` (or
|
|
|
|
|
`"suggest.autoTrigger": "trigger"`) in your configuration file.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
REQUIREMENTS *coc-requirements*
|
|
|
|
|
|
|
|
|
|
Neovim >= 0.3.2 or Vim >= 8.0.1453, for best experience, use neovim >= 0.4.0
|
|
|
|
|
or vim >= 8.2.0750.
|
|
|
|
|
|
|
|
|
|
NodeJS https://nodejs.org/ >= 12.12.0.
|
|
|
|
|
|
|
|
|
|
Yarn https://yarnpkg.com/ required to build coc.nvim from typescript source
|
|
|
|
|
code.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
INSTALLATION *coc-installation*
|
|
|
|
|
|
|
|
|
|
If you're using [vim-plug](https://github.com/junegunn/vim-plug), add this to
|
|
|
|
|
your `init.vim` or `.vimrc`: >
|
|
|
|
|
|
|
|
|
|
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
|
|
|
|
<
|
|
|
|
|
And run: >
|
|
|
|
|
|
|
|
|
|
:PlugInstall
|
|
|
|
|
|
|
|
|
|
For other plugin managers, make sure to use code from the release branch.
|
|
|
|
|
|
|
|
|
|
You can also use Vim's native package management like: >
|
|
|
|
|
|
|
|
|
|
#!/bin/sh
|
|
|
|
|
# for vim8
|
|
|
|
|
mkdir -p ~/.vim/pack/coc/start
|
|
|
|
|
cd ~/.vim/pack/coc/start
|
|
|
|
|
curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv -
|
|
|
|
|
|
|
|
|
|
# for neovim
|
|
|
|
|
mkdir -p ~/.local/share/nvim/site/pack/coc/start
|
|
|
|
|
cd ~/.local/share/nvim/site/pack/coc/start
|
|
|
|
|
curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv -
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
==============================================================================
|
|
|
|
|
LSP FEATURES *coc-lsp*
|
|
|
|
|
|
|
|
|
|
All features (except for telemetry) of LSP 3.16 are supported, checkout
|
|
|
|
|
the specification at
|
|
|
|
|
https://microsoft.github.io/language-server-protocol/specifications/specification-3-16/
|
|
|
|
|
|
|
|
|
|
Use `:CocCommand document.checkBuffer` to check exists providers used by
|
|
|
|
|
current buffer. Or use API |CocHasProvider()|.
|
|
|
|
|
|
|
|
|
|
For historic reason, some features just works, but some are not.
|
|
|
|
|
|
|
|
|
|
Features automatically work by default:~
|
|
|
|
|
|
|
|
|
|
- Trigger completion |coc-completion|.
|
|
|
|
|
- Diagnostics refresh |coc-diagnostics|.
|
|
|
|
|
- Trigger signature help |coc-signature|.
|
|
|
|
|
- Inlay hints (only works with some coc extensions, but not
|
|
|
|
|
|coc-config-languageserver| yet).
|
|
|
|
|
|
|
|
|
|
Note the features could be disabled by |coc-configuration| and some vim
|
|
|
|
|
variables.
|
|
|
|
|
|
|
|
|
|
Features require configuration:~
|
|
|
|
|
|
|
|
|
|
- Semantic highlights, enabled by |coc-config-semanticTokens-filetypes|.
|
|
|
|
|
- CodeLens (requires neovim with virtual text support), enabled by
|
|
|
|
|
|coc-config-codeLens-enable|.
|
|
|
|
|
- Document color, enabled by |coc-config-colors-filetypes|.
|
|
|
|
|
- Linked editing, enabled by |coc-preferences-enableLinkedEditing|.
|
|
|
|
|
- Format on save, enabled by |coc-preferences-formatOnSaveFiletypes|.
|
|
|
|
|
|
|
|
|
|
Features requested by user:~
|
|
|
|
|
|
|
|
|
|
- Highlight document symbols |coc-document-highlights|.
|
|
|
|
|
- Invoke code action |coc-code-actions|
|
|
|
|
|
- Outline of document symbols |coc-outline| and |coc-list-symbols|.
|
|
|
|
|
- Show call hierarchy tree |coc-callHierarchy|.
|
|
|
|
|
- Show hover message |CocAction('doHover')| and |CocAction('definitionHover')|.
|
|
|
|
|
- Jump to definition |CocAction('jumpDefinition')|.
|
|
|
|
|
- Jump to declaration |CocAction('jumpDeclaration')|.
|
|
|
|
|
- Jump to implementation |CocAction('jumpImplementation')|.
|
|
|
|
|
- Jump to type definition |CocAction('jumpTypeDefinition')|.
|
|
|
|
|
- Jump to references |CocAction('jumpReferences')|.
|
|
|
|
|
- Rename current symbol |CocAction('rename')|.
|
|
|
|
|
- Format current document |CocAction('format')|.
|
|
|
|
|
- Create folds |CocAction('fold')|.
|
|
|
|
|
- Format select region |CocAction('formatSelected')|.
|
|
|
|
|
- Pick color |CocAction('pickColor')|.
|
|
|
|
|
- Change color presentation |CocAction('colorPresentation')|.
|
|
|
|
|
- Open link under cursor |CocAction('openlink')|.
|
|
|
|
|
- Range selection |<plug>(coc-range-select)| and
|
|
|
|
|
|<plug>(coc-range-select-backward)|.
|
|
|
|
|
|
|
|
|
|
Features triggered by languageserver or extension:~
|
|
|
|
|
|
|
|
|
|
- Show message notification.
|
|
|
|
|
- Show message request.
|
|
|
|
|
- Log message (use `:CocCommand workspace.showOutput` to show output).
|
|
|
|
|
- Show document request.
|
|
|
|
|
- Work done progress.
|
|
|
|
|
|
|
|
|
|
To make coc.nvim provide LSP features for your languages, checkout
|
|
|
|
|
https://github.com/neoclide/coc.nvim/wiki/Language-servers
|
|
|
|
|
|
|
|
|
|
To debug issues with languageserver, checkout
|
|
|
|
|
https://github.com/neoclide/coc.nvim/wiki/Debug-language-server
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
|
|
|
|
DOCUMENT *coc-document*
|
|
|
|
|
|
|
|
|
|
A document is created on buffer create, and disposed on buffer unload.
|
|
|
|
|
|
|
|
|
|
Attached document:~
|
|
|
|
|
*coc-document-attached*
|
|
|
|
|
|
|
|
|
|
An attached document means coc.nvim synchronize the lines of vim's buffer with
|
|
|
|
|
associated document automatically.
|
|
|
|
|
|
|
|
|
|
Only attached documents are synchronized with language servers and therefore
|
|
|
|
|
LSP features could be provided for related buffer.
|
|
|
|
|
|
|
|
|
|
The buffer must match following conditions to get attached:
|
|
|
|
|
|
|
|
|
|
- The 'buftype' option should be <empty> or 'acwrite'.
|
|
|
|
|
- Buffer variable |b:coc_enabled| should not be `0`.
|
|
|
|
|
- Byte length of buffer should not exceed |coc-preferences-maxFileSize|
|
|
|
|
|
- Buffer should not be used for command line window.
|
|
|
|
|
|
|
|
|
|
Use |CocAction('ensureDocument')| to attach and check attached state of
|
|
|
|
|
current buffer.
|
|
|
|
|
|
|
|
|
|
Filetype map:~
|
|
|
|
|
*coc-document-filetype*
|
|
|
|
|
|
|
|
|
|
Some filetypes are mapped to others to match the languageId used by VSCode,
|
|
|
|
|
including:
|
|
|
|
|
|
|
|
|
|
- javascript.jsx -> javascriptreact
|
|
|
|
|
- typescript.jsx -> typescriptreact
|
|
|
|
|
- typescript.tsx -> typescriptreact
|
|
|
|
|
- tex -> latex
|
|
|
|
|
|
|
|
|
|
Use |g:coc_filetype_map| to create additional filetype maps.
|
|
|
|
|
Use `:CocCommand document.echoFiletype` to echo mapped filetype of current
|
|
|
|
|
document.
|
|
|
|
|
|
|
|
|
|
Note make sure use mapped filetypes for configurations that should be filetypes.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
COMPLETION *coc-completion*
|
|
|
|
|
|
|
|
|
|
Default behavior of coc.nvim's completion:
|
|
|
|
|
|
|
|
|
|
- Completion is automatically triggered.
|
|
|
|
|
- 'completeopt' is temporarily changed to `noinsert,menuone`.
|
|
|
|
|
- Snippet complete item would only be expanded after confirm completion.
|
|
|
|
|
|
|
|
|
|
Use configurations |coc-config-suggest| to change behavior of completion.
|
|
|
|
|
|
|
|
|
|
Tips:~
|
|
|
|
|
|
|
|
|
|
- 'completeopt' used by coc.nvim default to `noselect,menuone`.
|
|
|
|
|
- Your 'completeopt' option would be changed and restored during completion,
|
|
|
|
|
so you can still use `menu,preview` for Vim's built in completion.
|
|
|
|
|
- Snippet expand and additional edit feature of LSP requires confirm
|
|
|
|
|
completion by <C-y> to work.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Example completion key-mappings:~
|
|
|
|
|
|
|
|
|
|
Map <tab> to trigger completion and navigate to the next item: >
|
|
|
|
|
|
|
|
|
|
function! s:check_back_space() abort
|
|
|
|
|
let col = col('.') - 1
|
|
|
|
|
return !col || getline('.')[col - 1] =~ '\s'
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
inoremap <silent><expr> <TAB>
|
|
|
|
|
\ pumvisible() ? "\<C-n>" :
|
|
|
|
|
\ <SID>check_back_space() ? "\<TAB>" :
|
|
|
|
|
\ coc#refresh()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map <c-space> to trigger completion: >
|
|
|
|
|
|
|
|
|
|
inoremap <silent><expr> <c-space> coc#refresh()
|
|
|
|
|
<
|
|
|
|
|
<CR> to confirm completion, use: >
|
|
|
|
|
|
|
|
|
|
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<CR>"
|
|
|
|
|
<
|
|
|
|
|
To make <CR> auto-select the first completion item and notify coc.nvim to
|
|
|
|
|
format on enter, use: >
|
|
|
|
|
|
|
|
|
|
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
|
|
|
|
|
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
|
|
|
|
|
|
|
|
|
|
Map <tab> for trigger completion, completion confirm, snippet expand and jump
|
|
|
|
|
like VSCode. >
|
|
|
|
|
|
|
|
|
|
inoremap <silent><expr> <TAB>
|
|
|
|
|
\ pumvisible() ? coc#_select_confirm() :
|
|
|
|
|
\ coc#expandableOrJumpable() ?
|
|
|
|
|
\ "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
|
|
|
|
|
\ <SID>check_back_space() ? "\<TAB>" :
|
|
|
|
|
\ coc#refresh()
|
|
|
|
|
|
|
|
|
|
function! s:check_back_space() abort
|
|
|
|
|
let col = col('.') - 1
|
|
|
|
|
return !col || getline('.')[col - 1] =~# '\s'
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
let g:coc_snippet_next = '<tab>'
|
|
|
|
|
<
|
|
|
|
|
Note: the `coc-snippets` extension is required for this to work.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
DIAGNOSTICS SUPPORT *coc-diagnostics*
|
|
|
|
|
|
|
|
|
|
Diagnostics of coc.nvim are automatically refreshed to UI by default, checkout
|
|
|
|
|
|coc-config-diagnostic| for available configurations.
|
|
|
|
|
|
|
|
|
|
Note most language servers only send diagnostics for opened buffers for
|
|
|
|
|
performance reason, some lint tools could provide diagnostics for all files in
|
|
|
|
|
workspace.
|
|
|
|
|
|
|
|
|
|
Note pull diagnostics feature is added in LSP 3.17, which not available for
|
|
|
|
|
now.
|
|
|
|
|
|
|
|
|
|
Changes on diagnostics refresh~
|
|
|
|
|
|
|
|
|
|
- |coc-highlights-diagnostics| Highlights for diagnostics ranges and virtual
|
|
|
|
|
text (when enabled on neovim with virtual text support).
|
|
|
|
|
- Diagnostic signs added to 'signcolumn', use `set signcolumn=yes` to avoid
|
|
|
|
|
unnecessary UI refreshSource.
|
|
|
|
|
- Update variable |b:coc_diagnostic_info| which used by |coc#status()|.
|
|
|
|
|
- Refresh related |location-list| when the location list is opened by
|
|
|
|
|
|:CocDiagnostics|.
|
|
|
|
|
|
|
|
|
|
Enable and disable diagnostics~
|
|
|
|
|
|
|
|
|
|
Use |coc-config-diagnostic-enable| to enable/disable diagnostics feature.
|
|
|
|
|
|
|
|
|
|
Use |CocAction('diagnosticToggle')| for enable/disable diagnostics of current
|
|
|
|
|
buffer.
|
|
|
|
|
|
|
|
|
|
Show diagnostic messages~
|
|
|
|
|
|
|
|
|
|
Diagnostic messages would be automatically shown when cursor position contains
|
|
|
|
|
diagnostics(use float window/popup when possible or echo) by default.
|
|
|
|
|
|
|
|
|
|
Use |<Plug>(coc-diagnostic-info)| to refresh diagnostic messages at cursor
|
|
|
|
|
position.
|
|
|
|
|
|
|
|
|
|
Use |CocAction('diagnosticPreview')| to show diagnostic messages in preview
|
|
|
|
|
window.
|
|
|
|
|
|
|
|
|
|
Jump between diagnostics~
|
|
|
|
|
|
|
|
|
|
Use key-mappings |<Plug>(coc-diagnostic-next)|, |<Plug>(coc-diagnostic-prev)|,
|
|
|
|
|
|<Plug>(coc-diagnostic-next-error)| and |<Plug>(coc-diagnostic-prev-error)|.
|
|
|
|
|
|
|
|
|
|
Inspect all diagnostics~
|
|
|
|
|
|
|
|
|
|
Use |CocAction('diagnosticList')| to get list of all diagnostics, mostly used
|
|
|
|
|
by other vim plugins.
|
|
|
|
|
|
|
|
|
|
Use |coc-list-diagnostics| to open |CocList| with all diagnostics.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
SIGNATURE HELP *coc-signature*
|
|
|
|
|
|
|
|
|
|
Signature help of function is automatically triggered by default(when user
|
|
|
|
|
type trigger characters defined by provider), which will use float
|
|
|
|
|
window/popup to show the signature messages when possible.
|
|
|
|
|
|
|
|
|
|
Use |CocAction('showSignatureHelp')| to trigger signature help manually.
|
|
|
|
|
|
|
|
|
|
Note error will not be thrown when provider not exists or nothing returned
|
|
|
|
|
from languageserver, use `:CocCommand document.checkBuffer` to check provider
|
|
|
|
|
state of current buffer.
|
|
|
|
|
|
|
|
|
|
Use |coc-config-signature| to change default signature help behavior.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
CODE ACTION *coc-code-actions*
|
|
|
|
|
|
|
|
|
|
Code actions are used for make specific code changes.
|
|
|
|
|
|
|
|
|
|
There're different kinds of code actions:
|
|
|
|
|
|
|
|
|
|
- `quickfix` used for fix diagnostic(s).
|
|
|
|
|
- `refactor` used for code refactor.
|
|
|
|
|
- `source` code actions apply to the entire file.
|
|
|
|
|
- `organizeImport` organize import statements of current document.
|
|
|
|
|
|
|
|
|
|
Invoke code action~
|
|
|
|
|
|
|
|
|
|
To fix diagnostic at current line, use |<plug>(coc-fix-current)|.
|
|
|
|
|
|
|
|
|
|
|coc-dialog-menu| would be used as a picker when there're many codeActions
|
|
|
|
|
exists with followed key-mappings.
|
|
|
|
|
|
|
|
|
|
- |<plug>(coc-codeaction-cursor)|
|
|
|
|
|
- |<plug>(coc-codeaction-line)|
|
|
|
|
|
- |<plug>(coc-codeaction)|
|
|
|
|
|
- |<plug>(coc-codeaction-selected)|
|
|
|
|
|
|
|
|
|
|
To invoke organize import code action, use command like:
|
|
|
|
|
>
|
|
|
|
|
command! -nargs=0 OR :call CocAction('runCommand',
|
|
|
|
|
\ 'editor.action.organizeImport')
|
|
|
|
|
Related APIs~
|
|
|
|
|
|
|
|
|
|
- |CocAction('codeActions')|
|
|
|
|
|
- |CocAction('organizeImport')|
|
|
|
|
|
- |CocAction('fixAll')|
|
|
|
|
|
- |CocAction('quickfixes')|
|
|
|
|
|
- |CocAction('doCodeAction')|
|
|
|
|
|
- |CocAction('doQuickfix')|
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
DOCUMENT HIGHLIGHTS *coc-document-highlights*
|
|
|
|
|
|
|
|
|
|
Document highlights is used for highlight same symbols of current document
|
|
|
|
|
under cusor.
|
|
|
|
|
|
|
|
|
|
To enable highlight on CursorHold, create an autocmd like this: >
|
|
|
|
|
|
|
|
|
|
autocmd CursorHold * silent call CocActionAsync('highlight')
|
|
|
|
|
<
|
|
|
|
|
Checkout |coc-highlights-document| for related highlight groups.
|
|
|
|
|
|
|
|
|
|
Note error will not be thrown when provider not exists or nothing returned
|
|
|
|
|
from languageserver with |CocAction('highlight')|
|
|
|
|
|
|
|
|
|
|
Install `coc-highlight` extension if you want to highlight same words under
|
|
|
|
|
cursor without languageserver support.
|
|
|
|
|
|
|
|
|
|
To jump between previous/next symbol position, use
|
|
|
|
|
`:CocCommand document.jumpToPrevSymbol` and
|
|
|
|
|
`:CocCommand document.jumpToNextSymbol`
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
SNIPPETS SUPPORT *coc-snippets*
|
|
|
|
|
|
|
|
|
|
Snippets engine of coc.nvim support both VSCode snippets and ultisnips
|
|
|
|
|
snippets format.
|
|
|
|
|
|
|
|
|
|
The complete item with snippet format has label ends with `~` by default.
|
|
|
|
|
Select the complete item and confirm the completion by <C-y> to expand the
|
|
|
|
|
snippet.
|
|
|
|
|
|
|
|
|
|
A snippet session would be deactivated under the following conditions:
|
|
|
|
|
|
|
|
|
|
- |InsertEnter| triggered outside snippet.
|
|
|
|
|
- Content change at final placeholder.
|
|
|
|
|
- Content change detected after snippet.
|
|
|
|
|
- Content changed in a snippet outside placeholder (except for deletion of
|
|
|
|
|
plain text).
|
|
|
|
|
|
|
|
|
|
To load and expand custom snippets, install `coc-snippets` extension is
|
|
|
|
|
recommended.
|
|
|
|
|
|
|
|
|
|
Related configurations:
|
|
|
|
|
|
|
|
|
|
- |g:coc_snippet_prev|
|
|
|
|
|
- |g:coc_snippet_next|
|
|
|
|
|
- |coc-config-suggest-snippetIndicator|
|
|
|
|
|
- |coc-config-suggest-preferCompleteThanJumpPlaceholder|
|
|
|
|
|
- |coc-preferences-snippetStatusText|
|
|
|
|
|
- |coc-preferences-snippetHighlight|
|
|
|
|
|
|
|
|
|
|
Related functions:
|
|
|
|
|
|
|
|
|
|
- |coc#snippet#next()|
|
|
|
|
|
- |coc#snippet#prev()|
|
|
|
|
|
- |coc#expandable()|
|
|
|
|
|
- |coc#jumpable()|
|
|
|
|
|
- |coc#expandableOrJumpable()|
|
|
|
|
|
|
|
|
|
|
Related variables: |b:coc_snippet_active|
|
|
|
|
|
Related highlights: |CocSnippetVisual|
|
|
|
|
|
Related autocmds: |CocJumpPlaceholder|
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
WROKSPACE SUPPORT *coc-workspace*
|
|
|
|
|
|
|
|
|
|
Workspace folders~
|
|
|
|
|
|
|
|
|
|
Unlike VSCode, workspace folders are resolved from filepath after buffer load.
|
|
|
|
|
|
|
|
|
|
A list of file/folder names is used for resolve workspace folder, the patterns
|
|
|
|
|
could comes from:
|
|
|
|
|
|
|
|
|
|
- |b:coc_root_patterns|
|
|
|
|
|
- `rootPatterns` field of configured language server.
|
|
|
|
|
- `rootPatterns` contributions from coc extensions.
|
|
|
|
|
- |coc-preferences-rootPatterns|
|
|
|
|
|
|
|
|
|
|
Workspace folder is resolved from cwd of vim first and then from top directory
|
|
|
|
|
to the parent directory of current filepath, when workspace folder not
|
|
|
|
|
resolved, current working directory is used if it's parent folder of current
|
|
|
|
|
buffer. Configurations are provided to change the default behavior:
|
|
|
|
|
|
|
|
|
|
- |coc-config-workspace-ignoredFiletypes|
|
|
|
|
|
- |coc-config-workspace-ignoredFolders|
|
|
|
|
|
- |coc-config-workspace-bottomUpFiletypes|
|
|
|
|
|
- |coc-config-workspace-workspaceFolderCheckCwd|
|
|
|
|
|
- |coc-config-workspace-workspaceFolderFallbackCwd|
|
|
|
|
|
|
|
|
|
|
Note for performance reason, user's home directory would never considered as
|
|
|
|
|
workspace folder, which also means the languageserver that requires workspace
|
|
|
|
|
folder may not work when you start vim from home directory.
|
|
|
|
|
|
|
|
|
|
To preserve workspace folders across vim session, |g:WorkspaceFolders| is
|
|
|
|
|
provided.
|
|
|
|
|
|
|
|
|
|
To manage current workspace folders, use |coc-list-folders|
|
|
|
|
|
|
|
|
|
|
To get related root patterns of current buffer, use |coc#util#root_patterns()|
|
|
|
|
|
|
|
|
|
|
Use `:CocCommand workspace.workspaceFolders` to echo current workspaceFolders.
|
|
|
|
|
|
|
|
|
|
Workspace edit~
|
|
|
|
|
|
|
|
|
|
Workspace edit is used to apply changes for multiple buffers(and files), the
|
|
|
|
|
edit could includes document edits and file operations (including file create,
|
|
|
|
|
file/directory delete and file/directory rename).
|
|
|
|
|
|
|
|
|
|
When the edit failed to apply, coc.nvim will revert the changes (including
|
|
|
|
|
document edits and file operations) that previous made.
|
|
|
|
|
|
|
|
|
|
Files not loaded would be loaded by `tab drop` command, configured by
|
|
|
|
|
|coc-config-workspace-openResourceCommand|.
|
|
|
|
|
|
|
|
|
|
To undo and redo workspace edit just applied, use command
|
|
|
|
|
`:CocCommand workspace.undo` and `:CocCommand workspace.redo`
|
|
|
|
|
|
|
|
|
|
To inspect previous workspace edit, use command
|
|
|
|
|
`:CocCommand workspace.inspectEdit`, in opened buffer, use <CR> for jump to
|
|
|
|
|
change position under cursor.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
CURSORS SUPPORT *coc-cursors*
|
|
|
|
|
|
|
|
|
|
Multiple cursors supported is added to allow edit multiple locations at once.
|
|
|
|
|
|
|
|
|
|
Cursors session could be started by following ways:
|
|
|
|
|
|
|
|
|
|
- Use command `:CocCommand document.renameCurrentWord` to rename variable
|
|
|
|
|
under cursor.
|
|
|
|
|
- Use |<plug>(coc-refactor)| to open refactor buffer.
|
|
|
|
|
- Use |:CocSearch| to open searched locations.
|
|
|
|
|
- Use cursors related key-mappings to add text range, including
|
|
|
|
|
|<plug>(coc-cursors-operator)|, |<Plug>(coc-cursors-word)|,
|
|
|
|
|
|<Plug>(coc-cursors-position)| and |<plug>(coc-cursors-range)|
|
|
|
|
|
- Ranges added by command `editor.action.addRanges` from coc extensions.
|
|
|
|
|
|
|
|
|
|
Default key-mappings when cursors activated:
|
|
|
|
|
|
|
|
|
|
- <esc> cancel cursors session.
|
|
|
|
|
- <C-n> jump to next cursors range.
|
|
|
|
|
- <C-p> jump to previous cursors range.
|
|
|
|
|
|
|
|
|
|
Use |coc-config-cursors| to change cursors related key-mappings.
|
|
|
|
|
Use highlight group |CocCursorRange| to change default range highlight.
|
|
|
|
|
Use |b:coc_cursors_activated| to check if cursors session is enabled.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
SYMBOLS OUTLINE *coc-outline*
|
|
|
|
|
|
|
|
|
|
Outline is a split window with current document symbols rendered as
|
|
|
|
|
|coc-tree|.
|
|
|
|
|
|
|
|
|
|
To show and hide outline of current window, use |CocAction('showOutline')| and
|
|
|
|
|
|CocAction('hideOutline')|.
|
|
|
|
|
|
|
|
|
|
Outline view has Window variable `cocViewId` set to `OUTLINE`.
|
|
|
|
|
|
|
|
|
|
Following outline features are supported:
|
|
|
|
|
- Start fuzzy filter by |coc-config-tree-key-activeFilter|.
|
|
|
|
|
- Automatic update after document change.
|
|
|
|
|
- Automatic reload when buffer in current window changed.
|
|
|
|
|
- Automatic follow cursor position by default.
|
|
|
|
|
- Different filter modes that can be changed on the fly
|
|
|
|
|
|coc-config-outline-switchSortKey|.
|
|
|
|
|
|
|
|
|
|
Note: outline would try to reload document symbols after 500ms when provider
|
|
|
|
|
not registered, which avoid the necessary to check provider existence.
|
|
|
|
|
|
|
|
|
|
Checkout |coc-config-tree| and |coc-config-outline| for available
|
|
|
|
|
configurations.
|
|
|
|
|
|
|
|
|
|
Checkout |CocTree| and |CocSymbol| for customize highlights.
|
|
|
|
|
|
|
|
|
|
Use configuration `"suggest.completionItemKindLabels"` for custom icons.
|
|
|
|
|
|
|
|
|
|
To show outline for each tab automatically, use |autocmd|:
|
|
|
|
|
>
|
|
|
|
|
autocmd VimEnter,Tabnew *
|
|
|
|
|
\ if empty(&buftype) | call CocActionAsync('showOutline', 1) | endif
|
|
|
|
|
<
|
|
|
|
|
To close outline when it's the last window automatically, use
|
|
|
|
|
|autocmd| like:
|
|
|
|
|
>
|
|
|
|
|
autocmd BufEnter * call CheckOutline()
|
|
|
|
|
function! CheckOutline() abort
|
|
|
|
|
if &filetype ==# 'coctree' && winnr('$') == 1
|
|
|
|
|
if tabpagenr('$') != 1
|
|
|
|
|
close
|
|
|
|
|
else
|
|
|
|
|
bdelete
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
endfunction
|
|
|
|
|
<
|
|
|
|
|
==============================================================================
|
|
|
|
|
CALL HIERARCHY *coc-callHierarchy*
|
|
|
|
|
|
|
|
|
|
A call hierarchy is a splited |coc-tree| with locations for incoming or
|
|
|
|
|
outgoing calls of current function.
|
|
|
|
|
|
|
|
|
|
Call hierarchy window is opend by |CocAction('showIncomingCalls')| and
|
|
|
|
|
|CocAction('showOutgoingCalls')|.
|
|
|
|
|
|
|
|
|
|
Call hierarchy is configured by |CocSymbol|, |coc-config-callHierarchy| and
|
|
|
|
|
|coc-config-tree|.
|
|
|
|
|
|
|
|
|
|
Related ranges are highlighted with |CocSelectedRange| highlight group in
|
|
|
|
|
opend buffer.
|
|
|
|
|
|
|
|
|
|
|coc-dialog-menu| could be invoked by |coc-config-tree-key-actions|.
|
|
|
|
|
Available actions:
|
|
|
|
|
|
|
|
|
|
- Dismiss.
|
|
|
|
|
- Open in new tab.
|
|
|
|
|
- Show Incoming Calls.
|
|
|
|
|
- Show Outgoing Calls.
|
|
|
|
|
|
|
|
|
|
Use <CR> in call hierarchy tree to open location in original window.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
SEMANTIC HIGHLIGHTS *coc-semantic-highlights*
|
|
|
|
|
|
|
|
|
|
coc.nvim can use semantic tokens from language server to add additional color
|
|
|
|
|
information that depends on language specific symbol information.
|
|
|
|
|
|
|
|
|
|
Semantic tokens highlighting is disabled by default, you can enable it by use
|
|
|
|
|
configuration "semanticTokens.filetypes", see |coc-config-semanticTokens| for
|
|
|
|
|
details.
|
|
|
|
|
|
|
|
|
|
To create custom highlights for symbol under cursor, follow these steps:
|
|
|
|
|
|
|
|
|
|
- Inspect semantic token by
|
|
|
|
|
>
|
|
|
|
|
:CocCommand semanticTokens.inspect
|
|
|
|
|
<
|
|
|
|
|
to check token type and token modifiers with current symbol.
|
|
|
|
|
|
|
|
|
|
- Create new highlight group by command, for example:
|
|
|
|
|
>
|
|
|
|
|
:hi link CocSemDeclarationVariable MoreMsg
|
|
|
|
|
<
|
|
|
|
|
- Refresh semantic highlight of current buffer by:
|
|
|
|
|
>
|
|
|
|
|
:CocCommand semanticTokens.refreshCurrent
|
|
|
|
|
<
|
|
|
|
|
Use `:CocCommand semanticTokens.checkCurrent` to check semantic highlight
|
|
|
|
|
information with current buffer.
|
|
|
|
|
|
|
|
|
|
See |CocSem| to customize semantic token highlight groups.
|
|
|
|
|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
==============================================================================
|
|
|
|
|
CONFIGURATION *coc-configuration*
|
|
|
|
|
|
|
|
|
|
The configuration of coc.nvim is stored in `coc-settings.json` file. You can
|
|
|
|
|
open it through |:CocConfig|. This will open (or create) a global settings
|
|
|
|
|
files in folder returned by |coc#util#get_config_home()|
|
|
|
|
|
|
|
|
|
|
To create a local configuration project for a specific workspace, use
|
|
|
|
|
|:CocLocalConfig|: this will create `.vim/coc-settings.json` in the current
|
|
|
|
|
workspace folder.
|
|
|
|
|
|
|
|
|
|
The global configuration file can be created in another directory by setting
|
|
|
|
|
`g:coc_config_home` in your `.vimrc` or `init.vim`: >
|
|
|
|
|
|
|
|
|
|
let g:coc_config_home = '/path/you/prefer'
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
The configuration files are all in JSON format, it's recommended to
|
|
|
|
|
enable JSON completion and validation by install the `coc-json` extension: >
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
:CocInstall coc-json
|
|
|
|
|
<
|
|
|
|
|
Check https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file
|
|
|
|
|
for more details.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Instead of using json config files, the user configuration can be also changed
|
|
|
|
|
by |coc#config()|.
|
|
|
|
|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
Built-in configurations:~
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Http request~
|
|
|
|
|
*coc-config-http*
|
|
|
|
|
"http.proxy" *coc-config-http-proxy*
|
|
|
|
|
|
|
|
|
|
HTTP proxy URI, used for extensions that send request, default: `""`
|
|
|
|
|
|
|
|
|
|
"http.proxyStrictSSL" *coc-config-http-proxyStrictSSL*
|
|
|
|
|
|
|
|
|
|
Controls whether the proxy server certificate should be verified
|
|
|
|
|
against the list of supplied CAs, default: `true`
|
|
|
|
|
|
|
|
|
|
"http.proxyAuthorization" *coc-config-http-proxyAuthorization*
|
|
|
|
|
|
|
|
|
|
The value to send as the `Proxy-Authorization` header for every
|
|
|
|
|
network request.
|
|
|
|
|
|
|
|
|
|
"http.proxyCA" *coc-config-http-proxyCA*
|
|
|
|
|
|
|
|
|
|
CA (file) to use as Certificate Authority.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Completion related~
|
|
|
|
|
*coc-config-suggest*
|
|
|
|
|
"suggest.selection" *coc-config-suggest-selection*
|
|
|
|
|
|
|
|
|
|
Controls how suggestions are pre-selected when showing the suggest
|
|
|
|
|
list. Default: "none".
|
|
|
|
|
|
|
|
|
|
Could be "none", "recentlyUsed" and "recentlyUsedByPrefix".
|
|
|
|
|
|
|
|
|
|
Note: the selected item would be moved to first place when
|
|
|
|
|
"suggest.enablePreselect" is not enabled.
|
|
|
|
|
|
|
|
|
|
"suggest.enablePreselect" *coc-config-suggest-enablePreselect*
|
|
|
|
|
|
|
|
|
|
Enable preselect feature on Neovim, default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.labelMaxLength" *coc-config-suggest-labelMaxLength*
|
|
|
|
|
|
|
|
|
|
Maximum length of label shown in 'pum', default: `200`
|
|
|
|
|
|
|
|
|
|
"suggest.enablePreview" *coc-config-suggest-enablePreview*
|
|
|
|
|
|
|
|
|
|
Add preview option to 'completeopt', default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.floatEnable" *coc-config-suggest-floatEnable*
|
|
|
|
|
|
|
|
|
|
Enable floating window for documentation when possible, default: `true`
|
|
|
|
|
|
|
|
|
|
"suggest.floatConfig" *coc-config-suggest-floatConfig*
|
|
|
|
|
|
|
|
|
|
Configuration of floating window/popup, see |coc-config-float|.
|
|
|
|
|
Excludes properties: "title", "close" and "maxHeight".
|
|
|
|
|
|
|
|
|
|
"suggest.detailMaxLength" *coc-config-suggest-detailMaxLength*
|
|
|
|
|
|
|
|
|
|
Max length of detail that will be shown in popup menu, default: `100`
|
|
|
|
|
|
|
|
|
|
"suggest.detailField" *coc-config-suggest-detailField*
|
|
|
|
|
|
|
|
|
|
Where to add the detail in complete item when it's less than max
|
|
|
|
|
length, default: `"preview"` when floating documentation is enabled.
|
|
|
|
|
|
|
|
|
|
Valid options: ["abbr", "menu", "preview"]
|
|
|
|
|
|
|
|
|
|
"suggest.autoTrigger" *coc-config-suggest-autoTrigger*
|
|
|
|
|
|
|
|
|
|
How should completion be triggered, default: `"always"`
|
|
|
|
|
|
|
|
|
|
Valid options: ["always", "trigger", "none"]
|
|
|
|
|
|
|
|
|
|
- `always`: trigger suggest on word characters and trigger
|
|
|
|
|
characters.
|
|
|
|
|
- `trigger`: trigger suggest on trigger characters only.
|
|
|
|
|
- `none`: no auto trigger at all.
|
|
|
|
|
|
|
|
|
|
"suggest.languageSourcePriority" *coc-config-suggest-languageSourcePriority*
|
|
|
|
|
|
|
|
|
|
Priority of language sources, default: `99`
|
|
|
|
|
|
|
|
|
|
"suggest.disableKind" *coc-config-suggest-disableKind*
|
|
|
|
|
|
|
|
|
|
Remove kind field from Vim complete item, default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.disableMenu" *coc-config-suggest-disableMenu*
|
|
|
|
|
|
|
|
|
|
Remove menu field from Vim complete item, default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.snippetIndicator" *coc-config-suggest-snippetIndicator*
|
|
|
|
|
|
|
|
|
|
The character used in completion item abbreviation to indicate it
|
|
|
|
|
expands as code snippet, default: `"~"`
|
|
|
|
|
|
|
|
|
|
"suggest.maxCompleteItemCount" *coc-config-suggest-maxCompleteItemCount*
|
|
|
|
|
|
|
|
|
|
Maximum number of complete items shown in Vim, default: `50`
|
|
|
|
|
|
|
|
|
|
"suggest.preferCompleteThanJumpPlaceholder" *coc-config-suggest-preferCompleteThanJumpPlaceholder*
|
|
|
|
|
|
|
|
|
|
Confirm completion instead of jump to next placeholder when completion
|
|
|
|
|
activates, default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.snippetsSupport" *coc-config-suggest-snippetsSupport*
|
|
|
|
|
|
|
|
|
|
Enable snippets expands expand on confirm completion. When set to
|
|
|
|
|
`false` coc.nvim would set language client option:
|
|
|
|
|
`CompletionClientCapabilities.completionItem.snippetSupport` to
|
|
|
|
|
`false` as well.
|
|
|
|
|
|
|
|
|
|
Note: the language server may still send completion items with
|
|
|
|
|
snippets when falsy.
|
|
|
|
|
|
|
|
|
|
"suggest.fixInsertedWord" *coc-config-suggest-fixInsertedWord*
|
|
|
|
|
|
|
|
|
|
Inserted word replaces the next one, default: `true`
|
|
|
|
|
|
|
|
|
|
"suggest.localityBonus" *coc-config-suggest-localityBonus*
|
|
|
|
|
|
|
|
|
|
Boost suggestions that appear closer to the cursor position,
|
|
|
|
|
default: `true`
|
|
|
|
|
|
|
|
|
|
"suggest.triggerAfterInsertEnter" *coc-config-suggest-triggerAfterInsertEnter*
|
|
|
|
|
|
|
|
|
|
Trigger completion after |InsertEnter|. Requires "suggest.autoTrigger"
|
|
|
|
|
to be set, default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.timeout" *coc-config-suggest-timeout*
|
|
|
|
|
|
|
|
|
|
Timeout for completion (unit: milliseconds), default: `5000`
|
|
|
|
|
|
|
|
|
|
"suggest.minTriggerInputLength" *coc-config-suggest-minTriggerInputLength*
|
|
|
|
|
|
|
|
|
|
Number of characters in the current word after which the completion
|
|
|
|
|
triggers, default: `1`
|
|
|
|
|
|
|
|
|
|
"suggest.triggerCompletionWait" *coc-config-suggest-triggerCompletionWait*
|
|
|
|
|
|
|
|
|
|
Delay between typing the trigger character and completion start which
|
|
|
|
|
initiates server synchronization, default: `0`
|
|
|
|
|
|
|
|
|
|
"suggest.acceptSuggestionOnCommitCharacter" *coc-config-suggest-acceptSuggestionOnCommitCharacter*
|
|
|
|
|
|
|
|
|
|
The server provides a set of commit characters: these characters can
|
|
|
|
|
trigger completion item acceptance. This also inserts commit character
|
|
|
|
|
after the completion item text. Requires `CompleteChanged` event to work,
|
|
|
|
|
default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.noselect" *coc-config-suggest-noselect*
|
|
|
|
|
|
|
|
|
|
Prevent Vim from selecting the first item on completion start,
|
|
|
|
|
default: `true`
|
|
|
|
|
|
|
|
|
|
"suggest.keepCompleteopt" *coc-config-suggest-keepCompleteopt*
|
|
|
|
|
|
|
|
|
|
When enabled, 'completeopt' is not overridden during completion. Won't
|
|
|
|
|
work if 'completeopt' doesn't includes 'noinsert' and 'noselect' which
|
|
|
|
|
are required by auto completion, default: `false`
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"suggest.lowPrioritySourceLimit" *coc-config-suggest-lowPrioritySourceLimit*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Max items count for source priority lower than `90`.
|
|
|
|
|
|
|
|
|
|
"suggest.highPrioritySourceLimit" *coc-config-suggest-highPrioritySourceLimit*
|
|
|
|
|
|
|
|
|
|
Max items count for source priority bigger than or equal to `90`.
|
|
|
|
|
|
|
|
|
|
"suggest.disableMenuShortcut" *coc-config-suggest-disableMenuShortcut*
|
|
|
|
|
|
|
|
|
|
Disable shortcut of completion source in menu, default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.removeDuplicateItems" *coc-config-suggest-removeDuplicateItems*
|
|
|
|
|
|
|
|
|
|
Remove completion items with duplicated word for all sources, snippet
|
|
|
|
|
items are excluded, default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.defaultSortMethod" *coc-config-suggest-defaultSortMethod*
|
|
|
|
|
|
|
|
|
|
Default sorting behavior for suggested completion items, default:
|
|
|
|
|
`length`
|
|
|
|
|
|
|
|
|
|
"suggest.invalidInsertCharacters" *coc-config-suggest-invalidInsertCharacters*
|
|
|
|
|
|
|
|
|
|
Invalid character for strip valid word when inserting text of complete
|
|
|
|
|
item, default: ` ,(,<,{,[,\r,\n`
|
|
|
|
|
|
|
|
|
|
"suggest.asciiCharactersOnly" *coc-config-suggest-asciiCharactersOnly*
|
|
|
|
|
|
|
|
|
|
Trigger suggest with ASCII characters only, default: `false`
|
|
|
|
|
|
|
|
|
|
"suggest.completionItemKindLabels" *coc-config-suggest-completionItemKindLabels*
|
|
|
|
|
|
|
|
|
|
Set custom labels to completion item kinds, default: `{}`.
|
|
|
|
|
|
|
|
|
|
Example configuration: with https://nerdfonts.com: >
|
|
|
|
|
|
|
|
|
|
"suggest.completionItemKindLabels": {
|
|
|
|
|
"keyword": "\uf1de",
|
|
|
|
|
"variable": "\ue79b",
|
|
|
|
|
"value": "\uf89f",
|
|
|
|
|
"operator": "\u03a8",
|
|
|
|
|
"constructor": "\uf0ad",
|
|
|
|
|
"function": "\u0192",
|
|
|
|
|
"reference": "\ufa46",
|
|
|
|
|
"constant": "\uf8fe",
|
|
|
|
|
"method": "\uf09a",
|
|
|
|
|
"struct": "\ufb44",
|
|
|
|
|
"class": "\uf0e8",
|
|
|
|
|
"interface": "\uf417",
|
|
|
|
|
"text": "\ue612",
|
|
|
|
|
"enum": "\uf435",
|
|
|
|
|
"enumMember": "\uf02b",
|
|
|
|
|
"module": "\uf40d",
|
|
|
|
|
"color": "\ue22b",
|
|
|
|
|
"property": "\ue624",
|
|
|
|
|
"field": "\uf9be",
|
|
|
|
|
"unit": "\uf475",
|
|
|
|
|
"event": "\ufacd",
|
|
|
|
|
"file": "\uf723",
|
|
|
|
|
"folder": "\uf114",
|
|
|
|
|
"snippet": "\ue60b",
|
|
|
|
|
"typeParameter": "\uf728",
|
|
|
|
|
"default": "\uf29c"
|
|
|
|
|
}
|
|
|
|
|
<
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Document highlight~
|
|
|
|
|
*coc-config-documentHighlight*
|
|
|
|
|
"documentHighlight.priority" *coc-config-documentHighlight-priority*
|
|
|
|
|
|
|
|
|
|
Match priority used by document highlight, see ':h matchadd'.
|
|
|
|
|
Default `-1`
|
|
|
|
|
|
|
|
|
|
"documentHighlight.timeout" *coc-config-documentHighlight-timeout*
|
|
|
|
|
|
|
|
|
|
Timeout for document highlight, in milliseconds.
|
|
|
|
|
Default `500`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Colors highlight~
|
|
|
|
|
*coc-config-colors*
|
|
|
|
|
"colors.filetypes" *coc-config-colors-filetypes*
|
|
|
|
|
|
|
|
|
|
Filetypes that should enable colors highlight feature.
|
|
|
|
|
Use `*` for all filetypes.
|
|
|
|
|
|
|
|
|
|
Default: `[]`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Links~
|
|
|
|
|
*coc-config-links*
|
|
|
|
|
"links.tooltip" *coc-config-links-tooltip*
|
|
|
|
|
|
|
|
|
|
Show tooltip of link under cursor on CursorHold, neovim only.
|
|
|
|
|
Default: `false`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Diagnostics~
|
|
|
|
|
*coc-config-diagnostic*
|
|
|
|
|
"diagnostic.enable" *coc-config-diagnostic-enable*
|
|
|
|
|
|
|
|
|
|
Display diagnostics, default: `true`
|
|
|
|
|
|
|
|
|
|
"diagnostic.autoRefresh" *coc-config-diagnostic-autoRefresh*
|
|
|
|
|
|
|
|
|
|
Enable automatically refresh diagnostics, use
|
|
|
|
|
|CocAction('diagnosticRefresh')| action to refresh diagnostics when it's
|
|
|
|
|
disabled.
|
|
|
|
|
|
|
|
|
|
"diagnostic.refreshOnInsertMode" *coc-config-diagnostic-refreshOnInsertMode*
|
|
|
|
|
|
|
|
|
|
Refresh diagnostics when in insert mode, default: `false`
|
|
|
|
|
|
|
|
|
|
"diagnostic.displayByAle" *coc-config-diagnostic-displayByAle*
|
|
|
|
|
|
|
|
|
|
Use ALE for displaying diagnostics. This will disable coc.nvim for
|
|
|
|
|
displaying diagnostics. Restart to make changes take the effect,
|
|
|
|
|
default: `false`
|
|
|
|
|
|
|
|
|
|
"diagnostic.level" *coc-config-diagnostic-level*
|
|
|
|
|
|
|
|
|
|
Filter diagnostics by severity level (affect both UI and diagnostic
|
|
|
|
|
list), default: `"hint"`
|
|
|
|
|
|
|
|
|
|
Valid options: ["hint", "information", "warning", "error"]
|
|
|
|
|
|
|
|
|
|
"diagnostic.highlighLimit" *coc-config-diagnostic-highlighLimit*
|
|
|
|
|
|
|
|
|
|
Limit count for highlighted diagnostics, too many diagnostic
|
|
|
|
|
highlights could make vim stop responding.
|
|
|
|
|
|
|
|
|
|
Default: `1000`
|
|
|
|
|
|
|
|
|
|
"diagnostic.highlightPriority" *coc-config-diagnostic-highlightPriority*
|
|
|
|
|
|
|
|
|
|
Priority for diagnostic highlights, works on vim8 and neovim >= 0.6.0
|
|
|
|
|
|
|
|
|
|
Default: `4096`
|
|
|
|
|
|
|
|
|
|
"diagnostic.enableSign" *coc-config-diagnostic-enableSign*
|
|
|
|
|
|
|
|
|
|
Enable signs for diagnostics, default: `true`
|
|
|
|
|
|
|
|
|
|
"diagnostic.signLevel" *coc-config-diagnostic-signLevel*
|
|
|
|
|
|
|
|
|
|
Filter diagnostics in sign column, default: `null`.
|
|
|
|
|
|
|
|
|
|
"diagnostic.signPriority" *coc-config-diagnostic-signPriority*
|
|
|
|
|
|
|
|
|
|
Priority of diagnostic sign, default to `10`, check |sign-priority|.
|
|
|
|
|
|
|
|
|
|
"diagnostic.errorSign" *coc-config-diagnostic-errorSign*
|
|
|
|
|
|
|
|
|
|
Sign of error diagnostics shown in the 'signcolumn', default: `">>"`
|
|
|
|
|
|
|
|
|
|
"diagnostic.warningSign" *coc-config-diagnostic-warningSign*
|
|
|
|
|
|
|
|
|
|
Sign of warning diagnostics shown in the 'signcolumn', default: `"⚠"`
|
|
|
|
|
|
|
|
|
|
"diagnostic.infoSign" *coc-config-diagnostic-infoSign*
|
|
|
|
|
|
|
|
|
|
Sign of info diagnostics shown in the 'signcolumn', default: `">>"`
|
|
|
|
|
|
|
|
|
|
"diagnostic.hintSign" *coc-config-diagnostic-hintSign*
|
|
|
|
|
|
|
|
|
|
Sign of hint diagnostics shown in the 'signcolumn', default: `">>"`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"diagnostic.enableHighlightLineNumber" *coc-config-diagnostic-enableHighlightLineNumber*
|
|
|
|
|
|
|
|
|
|
Enable highlighting line numbers for diagnostics, only works with
|
|
|
|
|
neovim and `diagnostic.enableSign` is true.
|
|
|
|
|
|
|
|
|
|
default: `true`
|
|
|
|
|
|
|
|
|
|
"diagnostic.locationlistUpdate" *coc-config-diagnostic-locationlistUpdate*
|
|
|
|
|
|
|
|
|
|
Update locationlist on diagnostics change, only works with
|
|
|
|
|
locationlist opened by :CocDiagnostics command and first window of
|
|
|
|
|
associated buffer.
|
|
|
|
|
|
|
|
|
|
default: `true`
|
|
|
|
|
|
|
|
|
|
"diagnostic.locationlistLevel" *coc-config-diagnostic-locationlistLevel*
|
|
|
|
|
|
|
|
|
|
Filter diagnostics in locationlist, default: `null`.
|
|
|
|
|
|
|
|
|
|
"diagnostic.enableMessage" *coc-config-diagnostic-enableMessage*
|
|
|
|
|
|
|
|
|
|
When to enable show messages of diagnostics.
|
|
|
|
|
|
|
|
|
|
Valid options: ["always","jump","never"], always means including
|
|
|
|
|
cursor hold and after jump to another diagnostic.
|
|
|
|
|
|
|
|
|
|
default: `"always"`
|
|
|
|
|
|
|
|
|
|
"diagnostic.messageLevel" *coc-config-diagnostic-messageLevel*
|
|
|
|
|
|
|
|
|
|
Filter diagnostic message in float window/popup, default: `null`.
|
|
|
|
|
|
|
|
|
|
"diagnostic.checkCurrentLine" *coc-config-diagnostic-checkCurrentLine*
|
|
|
|
|
|
|
|
|
|
Show all diagnostics of the current line if none of them are at the
|
|
|
|
|
current position, default: `false`
|
|
|
|
|
|
|
|
|
|
"diagnostic.messageDelay" *coc-config-diagnostic-messageDelay*
|
|
|
|
|
|
|
|
|
|
How long to wait (in milliseconds) before displaying the diagnostic
|
|
|
|
|
message with echo or float.
|
|
|
|
|
|
|
|
|
|
Default: `200`
|
|
|
|
|
|
|
|
|
|
"diagnostic.messageTarget" *coc-config-diagnostic-messageTarget*
|
|
|
|
|
|
|
|
|
|
Diagnostic message target, default: `"float"`
|
|
|
|
|
|
|
|
|
|
Valid options: ["echo", "float"]
|
|
|
|
|
|
|
|
|
|
"diagnostic.format" *coc-config-diagnostic-format*
|
|
|
|
|
|
|
|
|
|
Define the diagnostic message format.
|
|
|
|
|
Available parts: source, code, severity, message
|
|
|
|
|
|
|
|
|
|
Default: `[%source%code] [%severity] %message`
|
|
|
|
|
|
|
|
|
|
"diagnostic.floatConfig" *coc-config-diagnostic-floatConfig*
|
|
|
|
|
|
|
|
|
|
Configuration of floating window/popup, see |coc-config-float|.
|
|
|
|
|
|
|
|
|
|
"diagnostic.filetypeMap" *coc-config-diagnostic-filetypeMap*
|
|
|
|
|
|
|
|
|
|
A map between buffer filetype and the filetype assigned to diagnostics
|
|
|
|
|
in float window. To syntax highlight diagnostics with their parent
|
|
|
|
|
buffer type use `"default": "bufferType"`, default: `{}`
|
|
|
|
|
|
|
|
|
|
"diagnostic.virtualText" *coc-config-diagnostic-virtualText*
|
|
|
|
|
|
|
|
|
|
Use Neovim virtual text to display diagnostics, default: `false`
|
|
|
|
|
|
|
|
|
|
"diagnostic.virtualTextLevel" *coc-config-diagnostic-virtualTextLevel*
|
|
|
|
|
|
|
|
|
|
Filter diagnostic message in virtual text by level, default: `null`
|
|
|
|
|
|
|
|
|
|
"diagnostic.virtualTextWinCol" *coc-config-diagnostic-virtualTextWinCol*
|
|
|
|
|
|
|
|
|
|
Window column number to align virtual text, default: `null`
|
|
|
|
|
|
|
|
|
|
"diagnostic.virtualTextCurrentLineOnly" *coc-config-diagnostic-virtualTextCurrentLineOnly*
|
|
|
|
|
|
|
|
|
|
Only show virtualText diagnostic on current cursor line, default:
|
|
|
|
|
`true`
|
|
|
|
|
|
|
|
|
|
"diagnostic.virtualTextPrefix" *coc-config-diagnostic-virtualTextPrefix*
|
|
|
|
|
|
|
|
|
|
The prefix added for virtual text diagnostics, default: `" "`
|
|
|
|
|
|
|
|
|
|
"diagnostic.virtualTextLines" *coc-config-diagnostic-virtualTextLines*
|
|
|
|
|
|
|
|
|
|
The number of non-empty lines from a diagnostic to display, default: `3`
|
|
|
|
|
|
|
|
|
|
"diagnostic.virtualTextLineSeparator" *coc-config-diagnostic-virtualTextLineSeparator*
|
|
|
|
|
|
|
|
|
|
The text that will mark a line end from the diagnostic message,
|
|
|
|
|
default: `" \\ "`
|
|
|
|
|
|
|
|
|
|
"diagnostic.separateRelatedInformationAsDiagnostics" *coc-config-diagnostic-separateRelatedInformationAsDiagnostics*
|
|
|
|
|
|
|
|
|
|
Separate related information as diagnostics, default: `false`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Signature~
|
|
|
|
|
*coc-config-signature*
|
|
|
|
|
"signature.enable" *coc-config-signature-enable*
|
|
|
|
|
|
|
|
|
|
Enable signature help when trigger character typed. Requires service
|
|
|
|
|
restart on change, default: `true`
|
|
|
|
|
|
|
|
|
|
"signature.floatConfig" *coc-config-signature-floatConfig*
|
|
|
|
|
|
|
|
|
|
Configuration of floating window/popup for signature documents, see
|
|
|
|
|
|coc-config-float|.
|
|
|
|
|
|
|
|
|
|
"signature.triggerSignatureWait" *coc-config-signature-triggerSignatureWait*
|
|
|
|
|
|
|
|
|
|
Timeout for signature request trigger (milliseconds), default: `500`.
|
|
|
|
|
Change to higher value for slow Language Servers.
|
|
|
|
|
|
|
|
|
|
"signature.target" *coc-config-signature-target*
|
|
|
|
|
|
|
|
|
|
Target of signature help, use `"float"` when possible by default.
|
|
|
|
|
|
|
|
|
|
Valid options: ["float", "echo"]
|
|
|
|
|
|
|
|
|
|
"signature.preferShownAbove" *coc-config-signature-preferShownAbove*
|
|
|
|
|
|
|
|
|
|
Show signature help's floating window above cursor when possible.
|
|
|
|
|
Requires restart on change, default: `true`
|
|
|
|
|
|
|
|
|
|
"signature.hideOnTextChange" *coc-config-signature-hideOnTextChange*
|
|
|
|
|
|
|
|
|
|
Hide signature help's floating window when text changed. Requires
|
|
|
|
|
restart on change, default: `false`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Multiple cursors~
|
|
|
|
|
*coc-config-cursors*
|
|
|
|
|
"cursors.cancelKey" *coc-config-cursors-cancelKey*
|
|
|
|
|
|
|
|
|
|
Key used for cancel cursors session, default: `<esc>`
|
|
|
|
|
|
|
|
|
|
"cursors.nextKey" *coc-config-cursors-nextKey*
|
|
|
|
|
|
|
|
|
|
Key used for jump to next cursors position. , default: `<C-n>`
|
|
|
|
|
|
|
|
|
|
"cursors.previousKey" *coc-config-cursors-previousKey*
|
|
|
|
|
|
|
|
|
|
Key used for jump to previous cursors position, default: `<C-p>`
|
|
|
|
|
|
|
|
|
|
"cursors.wrapscan" *coc-config-cursors-wrapscan*
|
|
|
|
|
|
|
|
|
|
Searches wrap around the first or last cursors range, default: `true`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Refactor buffer~
|
|
|
|
|
*coc-config-refactor*
|
|
|
|
|
"refactor.saveToFile" *coc-config-refactor-saveToFile*
|
|
|
|
|
|
|
|
|
|
Save changed buffer to file when write refactor buffer with ':noa wa'
|
|
|
|
|
command. set to false if you want save buffer by yourself.
|
|
|
|
|
|
|
|
|
|
"refactor.openCommand" *coc-config-refactor-openCommand*
|
|
|
|
|
|
|
|
|
|
Open command for refactor window, default: `vsplit`
|
|
|
|
|
|
|
|
|
|
"refactor.beforeContext" *coc-config-refactor-beforeContext*
|
|
|
|
|
|
|
|
|
|
Print num lines of leading context before each match, default: `3`
|
|
|
|
|
|
|
|
|
|
"refactor.afterContext" *coc-config-refactor-afterContext*
|
|
|
|
|
|
|
|
|
|
Print num lines of trailing context after each match, default: `3`
|
|
|
|
|
|
|
|
|
|
"refactor.showMenu" *coc-config-refactor-showMenu*
|
|
|
|
|
|
|
|
|
|
Refactor buffer local mapping to bring up menu for this chunk,
|
|
|
|
|
default: `<Tab>`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Hover~
|
|
|
|
|
*coc-config-hover*
|
|
|
|
|
"hover.target" *coc-config-hover-target*
|
|
|
|
|
|
|
|
|
|
Target to show hover information, default is floating window when
|
|
|
|
|
possible.
|
|
|
|
|
|
|
|
|
|
Valid options: ["preview", "echo", "float"]
|
|
|
|
|
|
|
|
|
|
"hover.previewMaxHeight" *coc-config-hover-previewMaxHeight*
|
|
|
|
|
|
|
|
|
|
Max height of preview window for hover, default: `12`
|
|
|
|
|
|
|
|
|
|
"hover.floatConfig" *coc-config-hover-floatConfig*
|
|
|
|
|
|
|
|
|
|
Configuration of floating window/popup for hover documents, see
|
|
|
|
|
|coc-config-float|.
|
|
|
|
|
|
|
|
|
|
"hover.autoHide" *coc-config-hover-autoHide*
|
|
|
|
|
|
|
|
|
|
Automatically hide hover float window on CursorMove or InsertEnter,
|
|
|
|
|
default `true`.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Dialog~
|
|
|
|
|
*coc-config-dialog*
|
|
|
|
|
"dialog.maxWidth" *coc-config-dialog-maxWidth*
|
|
|
|
|
|
|
|
|
|
Maximum width of dialog window.
|
|
|
|
|
|
|
|
|
|
"dialog.maxHeight" *coc-config-dialog-maxHeight*
|
|
|
|
|
|
|
|
|
|
Maximum height of dialog window.
|
|
|
|
|
|
|
|
|
|
"dialog.rounded" *coc-config-dialog-rounded*
|
|
|
|
|
|
|
|
|
|
Use rounded border for dialog window, default `true`.
|
|
|
|
|
|
|
|
|
|
"dialog.confirmKey" *coc-config-dialog-confirmKey*
|
|
|
|
|
|
|
|
|
|
Confirm key for confirm selection used by menu and picker, you can
|
|
|
|
|
always use <esc> to cancel, default to `<cr>`.
|
|
|
|
|
|
|
|
|
|
"dialog.pickerButtons" *coc-config-dialog-pickerButtons*
|
|
|
|
|
|
|
|
|
|
Show buttons for picker dialog window/popup, default `true`.
|
|
|
|
|
|
|
|
|
|
"dialog.pickerButtonShortcut" *coc-config-dialog-pickerButtonShortcut*
|
|
|
|
|
|
|
|
|
|
Show shortcut in buttons of picker dialog window/popup, used when
|
|
|
|
|
dialog.pickerButtons is true, default `true`.
|
|
|
|
|
|
|
|
|
|
"dialog.floatHighlight" *coc-config-dialog-floatHighlight*
|
|
|
|
|
|
|
|
|
|
Highlight group for dialog window/popup, default to 'CocFloating'.
|
|
|
|
|
|
|
|
|
|
"dialog.floatBorderHighlight" *coc-config-dialog-floatBorderHighlight*
|
|
|
|
|
|
|
|
|
|
Highlight group for border of dialog window/popup, default to
|
|
|
|
|
'CocFloating'.
|
|
|
|
|
|
|
|
|
|
"dialog.shortcutHighlight" *coc-config-dialog-shortcutHighlight*
|
|
|
|
|
|
|
|
|
|
Highlight group for shortcut character in menu dialog, default to
|
|
|
|
|
'MoreMsg'
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Notification~
|
|
|
|
|
*coc-config-notification*
|
|
|
|
|
|
|
|
|
|
"notification.preferMenuPicker" *coc-config-notification-preferMenuPicker*
|
|
|
|
|
|
|
|
|
|
Use menu picker for message notifications with actions, default
|
|
|
|
|
`false`.
|
|
|
|
|
|
|
|
|
|
"notification.maxWidth" *coc-config-notification-maxWidth*
|
|
|
|
|
|
|
|
|
|
Maximum content width of notification dialog, default to `60`.
|
|
|
|
|
|
|
|
|
|
"notification.maxHeight" *coc-config-notification-maxHeight*
|
|
|
|
|
|
|
|
|
|
Maximum content height of notification dialog, default to `10`.
|
|
|
|
|
|
|
|
|
|
"notification.minProgressWidth" *coc-config-notification-minProgressWidth*
|
|
|
|
|
|
|
|
|
|
Minimal with of progress notification.
|
|
|
|
|
|
|
|
|
|
"notification.highlightGroup" *coc-config-notification-highlightGroup*
|
|
|
|
|
|
|
|
|
|
Highlight group of notification dialog, default to `CocFloating`.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"notification.winblend" *coc-config-notification-winblend*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Winblend option of notification window, neovim only, default `30`.
|
|
|
|
|
|
|
|
|
|
"notification.border" *coc-config-notification-border*
|
|
|
|
|
|
|
|
|
|
Enable rounded border for notification windows, default `true`.
|
|
|
|
|
|
|
|
|
|
"notification.timeout" *coc-config-notification-timeout*
|
|
|
|
|
|
|
|
|
|
Timeout for auto close notifications, in miniseconds, default `10000`.
|
|
|
|
|
|
|
|
|
|
"notification.marginRight" *coc-config-notification-marginRight*
|
|
|
|
|
|
|
|
|
|
Margin right to the right of editor window, default `10`.
|
|
|
|
|
|
|
|
|
|
"notification.focusable" *coc-config-notification-focusable*
|
|
|
|
|
|
|
|
|
|
Enable focus by user actions (wincmds, mouse events), neovim only,
|
|
|
|
|
default `true`.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
CodeLens~
|
|
|
|
|
*coc-config-codelens*
|
|
|
|
|
"codeLens.enable" *coc-config-codeLens-enable*
|
|
|
|
|
|
|
|
|
|
Enable `codeLens` feature. Requires Neovim with virtual text feature,
|
|
|
|
|
default: `false`.
|
|
|
|
|
|
|
|
|
|
"codeLens.position" *coc-config-codeLens-position*
|
|
|
|
|
|
|
|
|
|
Position of codeLens, works on nvim >= 0.6.0, valid options
|
|
|
|
|
["top", "eol", "right_align"], default: `top`.
|
|
|
|
|
|
|
|
|
|
"codeLens.separator" *coc-config-codeLens-separator*
|
|
|
|
|
|
|
|
|
|
Separator text for `codeLens` in virtual text, default: `""`.
|
|
|
|
|
|
|
|
|
|
"codeLens.subseparator" *coc-config-codeLens-subseparator*
|
|
|
|
|
|
|
|
|
|
Subseparator text for multiple codelens in virtual text, default: `" "`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Workspace related~
|
|
|
|
|
*coc-config-workspace*
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"workspace.openResourceCommand" *coc-config-workspace-openResourceCommand*
|
|
|
|
|
|
|
|
|
|
Command to open files that not loaded, default: `tab drop`
|
|
|
|
|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
"workspace.ignoredFiletypes *coc-config-workspace-ignoredFiletypes*
|
|
|
|
|
|
|
|
|
|
Filetypes to ignore for workspace folder resolution, default: `[]`
|
|
|
|
|
|
|
|
|
|
Note: This is the filetype after mapping by `g:coc_filetype_map`.
|
|
|
|
|
|
|
|
|
|
"workspace.ignoredFolders" *coc-config-workspace-ignoredFolders*
|
|
|
|
|
|
|
|
|
|
List of folders that should not be resolved as workspace folder.
|
|
|
|
|
Environment variables and minimatch patterns can be used.
|
|
|
|
|
|
|
|
|
|
Default: ["$HOME"]
|
|
|
|
|
|
|
|
|
|
"workspace.bottomUpFiletypes" *coc-config-workspace-bottomUpFiletypes*
|
|
|
|
|
|
|
|
|
|
Filetypes that should have workspace folder should resolved from
|
|
|
|
|
base directory of file.
|
|
|
|
|
|
|
|
|
|
Default: []
|
|
|
|
|
|
|
|
|
|
"workspace.workspaceFolderCheckCwd" *coc-config-workspace-workspaceFolderCheckCwd*
|
|
|
|
|
|
|
|
|
|
Whether the cwd directory should be checked first when resolving
|
|
|
|
|
workspace folder of current buffer.
|
|
|
|
|
|
|
|
|
|
Default: `true`
|
|
|
|
|
|
|
|
|
|
"workspace.workspaceFolderFallbackCwd" *coc-config-workspace-workspaceFolderFallbackCwd*
|
|
|
|
|
|
|
|
|
|
Use current working directory as workspace folder when no root
|
|
|
|
|
patterns resolved.
|
|
|
|
|
|
|
|
|
|
Default: `true`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
List~
|
|
|
|
|
*coc-config-list*
|
|
|
|
|
"list.indicator" *coc-config-list-indicator*
|
|
|
|
|
|
|
|
|
|
The character used as first character in prompt line, default: `">"`
|
|
|
|
|
|
|
|
|
|
"list.alignColumns" *coc-config-list-alignColumns*
|
|
|
|
|
|
|
|
|
|
Whether to align lists in columns, default: `false`
|
|
|
|
|
|
|
|
|
|
"list.menuAction" *coc-config-list-menuAction*
|
|
|
|
|
|
|
|
|
|
Use menu picker instead of confirm() for choose action.
|
|
|
|
|
Default: `false`
|
|
|
|
|
|
|
|
|
|
"list.height" *coc-config-list-height*
|
|
|
|
|
|
|
|
|
|
Height of split list window, default: `10`
|
|
|
|
|
|
|
|
|
|
"list.signOffset" *coc-config-list-signOffset*
|
|
|
|
|
|
|
|
|
|
Sign offset of list, should be different from other plugins, default:
|
|
|
|
|
`900`
|
|
|
|
|
|
|
|
|
|
"list.selectedSignText" *coc-config-list-selectedSignText*
|
|
|
|
|
|
|
|
|
|
Sign text for selected lines, default: `"*"`
|
|
|
|
|
|
|
|
|
|
"list.limitLines" *coc-config-list-limitLines*
|
|
|
|
|
|
|
|
|
|
Limit lines shown in the list buffer, no limit by default, default: `null`
|
|
|
|
|
|
|
|
|
|
"list.maxPreviewHeight" *coc-config-list-maxPreviewHeight*
|
|
|
|
|
|
|
|
|
|
Max height for preview window of list, default: `12`
|
|
|
|
|
|
|
|
|
|
"list.matchHighlightGroup" *coc-config-list-matchHighlightGroup*
|
|
|
|
|
|
|
|
|
|
Highlight group used for matched texts in list window.
|
|
|
|
|
default: `"Search"`
|
|
|
|
|
|
|
|
|
|
"list.previewHighlightGroup" *coc-config-list-previewHighlightGroup*
|
|
|
|
|
|
|
|
|
|
Highlight group used for highlighting the range in preview window,
|
|
|
|
|
default: `"Search"`
|
|
|
|
|
|
|
|
|
|
"list.previewToplineStyle" *coc-config-list-previewToplineStyle*
|
|
|
|
|
|
|
|
|
|
Topline style for list previews
|
|
|
|
|
default: `"offset"`
|
|
|
|
|
Valid options: ["offset","middle"]
|
|
|
|
|
|
|
|
|
|
"list.previewToplineOffset" *coc-config-list-previewToplineOffset*
|
|
|
|
|
|
|
|
|
|
Topline offset for list previews
|
|
|
|
|
default: `3`
|
|
|
|
|
|
|
|
|
|
"list.nextKeymap" *coc-config-list-nextKeymap*
|
|
|
|
|
|
|
|
|
|
Key for selecting next line in the insert mode, default: `"<C-j>"`
|
|
|
|
|
|
|
|
|
|
"list.previousKeymap" *coc-config-list-previousKeymap*
|
|
|
|
|
|
|
|
|
|
Key for selecting previous line in the insert mode, default: `"<C-k>"`
|
|
|
|
|
|
|
|
|
|
"list.extendedSearchMode" *coc-config-list-extendedSearchMode*
|
|
|
|
|
|
|
|
|
|
Enable extended search mode which allows multiple search patterns
|
|
|
|
|
delimited by whitespace, default: `true`
|
|
|
|
|
|
|
|
|
|
"list.normalMappings" *coc-config-list-normalMappings*
|
|
|
|
|
|
|
|
|
|
Custom key mappings in the normal mode, default: `{}`
|
|
|
|
|
|
|
|
|
|
"list.insertMappings" *coc-config-list-insertMappings*
|
|
|
|
|
|
|
|
|
|
Custom key mappings in the insert mode, default: `{}`
|
|
|
|
|
|
|
|
|
|
"list.interactiveDebounceTime" *coc-config-list-interactiveDebounceTime*
|
|
|
|
|
|
|
|
|
|
Debounce time for input change on interactive mode, default: `100`
|
|
|
|
|
|
|
|
|
|
"list.previewSplitRight" *coc-config-list-previewSplitRight*
|
|
|
|
|
|
|
|
|
|
Use vsplit for preview window, default: `false`
|
|
|
|
|
|
|
|
|
|
"list.source.symbols.excludes" *coc-config-list-source-symbols-excludes*
|
|
|
|
|
|
|
|
|
|
Patterns of minimatch for filepath to exclude from symbols list,
|
|
|
|
|
default: `[]`
|
|
|
|
|
|
|
|
|
|
"list.source.outline.ctagsFilestypes" *coc-config-list-source-outline-ctagsFilestypes*
|
|
|
|
|
|
|
|
|
|
Filetypes that should use `ctags` for outline instead of language server,
|
|
|
|
|
default: `[]`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"list.source.diagnostics.pathFormat" *coc-config-list-source-diagnostics-pathFormat*
|
|
|
|
|
|
|
|
|
|
Decide how the filepath is shown in the list.
|
|
|
|
|
|
|
|
|
|
Valid options: ["full", "short", "filename", "hidden"].
|
|
|
|
|
|
|
|
|
|
default: `"full"`
|
|
|
|
|
|
|
|
|
|
"list.source.diagnostics.includeCode" *coc-config-list-source-diagnostics-includeCode*
|
|
|
|
|
|
|
|
|
|
Whether to show the diagnostic code in the list.
|
|
|
|
|
|
|
|
|
|
default: `true`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Preferences~
|
|
|
|
|
*coc-config-preferences*
|
|
|
|
|
"coc.preferences.enableLinkedEditing" *coc-preferences-enableLinkedEditing*
|
|
|
|
|
|
|
|
|
|
Enable linked editing support, default: `false`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.enableMessageDialog" *coc-preferences-enableMessageDialog*
|
|
|
|
|
|
|
|
|
|
Enable messages shown in notification dialog, default: `false`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.maxFileSize" *coc-preferences-maxFileSize*
|
|
|
|
|
|
|
|
|
|
Maximum file size in bytes that coc.nvim should handle, default: `'10MB'`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.useQuickfixForLocations" *coc-preferences-useQuickfixForLocations*
|
|
|
|
|
|
|
|
|
|
Use Vim's quickfix list for jump locations. Requires restart on change,
|
|
|
|
|
default: `false`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.extensionUpdateCheck" *coc-preferences-extensionUpdateCheck*
|
|
|
|
|
|
|
|
|
|
Interval for checking extension updates, default: `"never"`
|
|
|
|
|
|
|
|
|
|
Valid options: ["daily","weekly","never"]
|
|
|
|
|
|
|
|
|
|
"coc.preferences.snippetHighlight" *coc-preferences-snippetHighlight*
|
|
|
|
|
|
|
|
|
|
Use highlight group 'CocSnippetVisual' to highlight placeholders with
|
|
|
|
|
same index of current one.
|
|
|
|
|
|
|
|
|
|
default: `false`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.snippetStatusText" *coc-preferences-snippetStatusText*
|
|
|
|
|
|
|
|
|
|
Text shown in 'statusline' to indicate snippet session is activate.
|
|
|
|
|
Check |coc-status| for statusline integration.
|
|
|
|
|
|
|
|
|
|
Default: `"SNIP"`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.currentFunctionSymbolAutoUpdate" *coc-preferences-currentFunctionSymbolAutoUpdate*
|
|
|
|
|
|
|
|
|
|
Automatically update the value of `b:coc_current_function` on `CursorHold`
|
|
|
|
|
event, default: `false`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.formatOnSaveFiletypes" *coc-preferences-formatOnSaveFiletypes*
|
|
|
|
|
|
|
|
|
|
Filetypes for which formatting triggers after saving, default: `[]`
|
|
|
|
|
|
|
|
|
|
Note: This is the filetype after mapping by `g:coc_filetype_map`.
|
|
|
|
|
|
|
|
|
|
"coc.preferences.rootPatterns" *coc-preferences-rootPatterns*
|
|
|
|
|
|
|
|
|
|
Root patterns to resolve `workspaceFolder` from parent folders of opened
|
|
|
|
|
files, resolved from up to down, default:
|
|
|
|
|
`[".git",".hg",".projections.json"]`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.watchmanPath" *coc-preferences-watchmanPath*
|
|
|
|
|
|
|
|
|
|
Executable path for https://facebook.github.io/watchman/, detected
|
|
|
|
|
from $PATH by default, default: `null`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.jumpCommand" *coc-preferences-jumpCommand*
|
|
|
|
|
|
|
|
|
|
Command used for location jump performed for goto definition, goto
|
|
|
|
|
references etc, default: `"edit"`
|
|
|
|
|
|
|
|
|
|
Valid options: ["edit", "split", "vsplit", "tabe", "drop", "tab drop"]
|
|
|
|
|
|
|
|
|
|
"coc.preferences.messageLevel" *coc-preferences-messageLevel*
|
|
|
|
|
|
|
|
|
|
Message level for filter echoed messages default: `"more"`
|
|
|
|
|
|
|
|
|
|
Valid options: ["more", "warning", "error"]
|
|
|
|
|
|
|
|
|
|
"coc.preferences.formatOnType" *coc-preferences-formatOnType*
|
|
|
|
|
|
|
|
|
|
Set to true to enable format on type, default: `false`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.bracketEnterImprove" *coc-preferences-bracketEnterImprove*
|
|
|
|
|
|
|
|
|
|
Improve handling of pressing enter inside brackets (`<> {} [] ()`) by
|
|
|
|
|
create a new empty line in the middle, the indent is calculated by vim,
|
|
|
|
|
checkout |indentexpr| for details.
|
|
|
|
|
|
|
|
|
|
Works with |coc#on_enter()|, default: `true`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.formatOnTypeFiletypes" *coc-preferences-formatOnTypeFiletypes*
|
|
|
|
|
|
|
|
|
|
Filetypes that should run format on typing, default: `[]`
|
|
|
|
|
|
|
|
|
|
Note: takes effect when `coc.preferences.formatOnType` set `true`.
|
|
|
|
|
Note: This is the filetype after mapping by `g:coc_filetype_map`.
|
|
|
|
|
|
|
|
|
|
"coc.preferences.floatActions" *coc-preferences-floatActions*
|
|
|
|
|
|
|
|
|
|
Set to false to disable float/popup support for actions menu.
|
|
|
|
|
Default: `true`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.promptInput" *coc-preferences-promptInput*
|
|
|
|
|
|
|
|
|
|
Use prompt buffer in float window for user input.
|
|
|
|
|
Default: `true`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.enableMarkdown" *coc-preferences-enableMarkdown*
|
|
|
|
|
|
|
|
|
|
Tell the language server that markdown text format is supported,
|
|
|
|
|
note that you may have additional escaped characters for markdown
|
|
|
|
|
text.
|
|
|
|
|
|
|
|
|
|
"coc.preferences.silentAutoupdate" *coc-preferences-silentAutoupdate*
|
|
|
|
|
|
|
|
|
|
Not open split window with update status when performing auto update.
|
|
|
|
|
|
|
|
|
|
"coc.preferences.willSaveHandlerTimeout" *coc-preferences-willSaveHandlerTimeout*
|
|
|
|
|
|
|
|
|
|
Will save handler timeout, default: `500`
|
|
|
|
|
|
|
|
|
|
"coc.preferences.renameFillCurrent" *coc-preferences-renameFillCurrent*
|
|
|
|
|
|
|
|
|
|
Disable to stop Refactor-Rename float/popup window from populating
|
|
|
|
|
with old name in the New Name field.
|
|
|
|
|
Default: `true`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Semantic tokens~
|
|
|
|
|
*coc-config-semanticTokens*
|
|
|
|
|
"semanticTokens.filetypes" *coc-config-semanticTokens-filetypes*
|
|
|
|
|
|
|
|
|
|
Filetypes that should enable semantic tokens highlight feature. Use
|
|
|
|
|
`["*"]` for all filetypes, default: `[]`
|
|
|
|
|
|
|
|
|
|
Note: semantic tokens highlight requires nvim >= 0.5.0 and vim >=
|
|
|
|
|
8.1.0579 to work.
|
|
|
|
|
|
|
|
|
|
"semanticTokens.highlightPriority" *coc-config-semanticTokens-highlightPriority*
|
|
|
|
|
|
|
|
|
|
Priority for semantic tokens highlight, default `2048`
|
|
|
|
|
|
|
|
|
|
"semanticTokens.incrementTypes" *coc-config-semanticTokens-incrementTypes*
|
|
|
|
|
|
|
|
|
|
Semantic token types that should increase highlight when insert at
|
|
|
|
|
the start and end position of token.
|
|
|
|
|
|
|
|
|
|
Default: `['variable', 'string']`
|
|
|
|
|
|
|
|
|
|
"semanticTokens.combinedModifiers" *coc-config-semanticTokens-combinedModifiers*
|
|
|
|
|
|
|
|
|
|
Semantic token modifiers that should combine with syntax highlights.
|
|
|
|
|
|
|
|
|
|
Default: `['deprecated']`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Tree~
|
|
|
|
|
*coc-config-tree*
|
|
|
|
|
"tree.closedIcon" *coc-config-tree-closedIcon*
|
|
|
|
|
|
|
|
|
|
Closed icon of tree view, use '' to make it look better when you
|
|
|
|
|
have patched font, default: '+'.
|
|
|
|
|
|
|
|
|
|
"tree.openedIcon" *coc-config-tree-openedIcon*
|
|
|
|
|
|
|
|
|
|
Opened icon of tree view, use '' to make it look better when you
|
|
|
|
|
have patched font, default: '-'
|
|
|
|
|
|
|
|
|
|
"tree.key.toggleSelection" *coc-config-tree-key-toggleSelection*
|
|
|
|
|
|
|
|
|
|
Trigger key to select/unselect item, default: <space>
|
|
|
|
|
|
|
|
|
|
"tree.key.toggle" *coc-config-tree-key-toggle*
|
|
|
|
|
|
|
|
|
|
Trigger key to toggle expand state of tree node, default: 't'
|
|
|
|
|
|
|
|
|
|
"tree.key.actions" *coc-config-tree-key-actions*
|
|
|
|
|
|
|
|
|
|
Trigger key to invoke actions, default: <tab>
|
|
|
|
|
|
|
|
|
|
"tree.key.collapseAll" *coc-config-tree-key-collapseAll*
|
|
|
|
|
|
|
|
|
|
Trigger key to collapse all tree node, default: 'M'
|
|
|
|
|
|
|
|
|
|
"tree.key.invoke" *coc-config-tree-key-invoke*
|
|
|
|
|
|
|
|
|
|
Trigger key to invoke default command of current node or selection,
|
|
|
|
|
default: <cr>
|
|
|
|
|
|
|
|
|
|
"tree.key.close" *coc-config-tree-key-close*
|
|
|
|
|
|
|
|
|
|
Trigger key to dispose the tree and close tree window, default: <esc>
|
|
|
|
|
|
|
|
|
|
"tree.key.activeFilter" *coc-config-tree-key-activeFilter*
|
|
|
|
|
|
|
|
|
|
Trigger key active filter, only works when tree view support filter,
|
|
|
|
|
default: 'f'
|
|
|
|
|
|
|
|
|
|
"tree.key.selectNext" *coc-config-tree-key-selectNext*
|
|
|
|
|
|
|
|
|
|
Trigger key to select next item during filter, default <C-j>
|
|
|
|
|
|
|
|
|
|
"tree.key.selectPrevious" *coc-config-tree-key-selectPrevious*
|
|
|
|
|
|
|
|
|
|
Trigger key to select previous item during filter, default <C-k>
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Outline~
|
|
|
|
|
*coc-config-outline*
|
|
|
|
|
"outline.splitCommand" *coc-config-outline-splitCommand*
|
|
|
|
|
|
|
|
|
|
Window split command used by outline, default 'botright 30vs'
|
|
|
|
|
|
|
|
|
|
"outline.followCursor" *coc-config-outline-followCursor*
|
|
|
|
|
|
|
|
|
|
Reveal item in outline tree on cursor hold, default `true`
|
|
|
|
|
|
|
|
|
|
"outline.keepWindow" *coc-config-outline-keepWindow*
|
|
|
|
|
|
|
|
|
|
Jump back to original window after outline is shown, default `false`
|
|
|
|
|
|
|
|
|
|
"outline.autoWidth" *coc-config-outline-autoWidth*
|
|
|
|
|
|
|
|
|
|
Automatically increase window width to avoid wrapped lines, default
|
|
|
|
|
`true`, use |g:coc_max_treeview_width| to change maximum width.
|
|
|
|
|
|
|
|
|
|
"outline.sortBy" *coc-config-outline-sortBy*
|
|
|
|
|
|
|
|
|
|
Sort method for symbols, available options: 'position', 'name' and
|
|
|
|
|
'category'. Default: 'category'.
|
|
|
|
|
|
|
|
|
|
"outline.switchSortKey" *coc-config-outline-switchSortKey*
|
|
|
|
|
|
|
|
|
|
The key used to switch sort method for symbols provider of current
|
|
|
|
|
tree view. Default <C-s>
|
|
|
|
|
|
|
|
|
|
"outline.expandLevel" *coc-config-outline-expandLevel*
|
|
|
|
|
|
|
|
|
|
Default expand level of tree nodes, default `1`
|
|
|
|
|
|
|
|
|
|
"outline.checkBufferSwitch" *coc-config-outline-checkBufferSwitch*
|
|
|
|
|
|
|
|
|
|
Recreate outline view after changed to another buffer on current tab.
|
|
|
|
|
Default `true`
|
|
|
|
|
|
|
|
|
|
"outline.showLineNumber" *coc-config-outline-showLineNumber*
|
|
|
|
|
|
|
|
|
|
Show line number of document symbols.
|
|
|
|
|
Default `true`
|
|
|
|
|
|
|
|
|
|
"outline.detailAsDescription" *coc-config-outline-detailAsDescription*
|
|
|
|
|
|
|
|
|
|
Show detail as description aside with label.
|
|
|
|
|
Default: `true`
|
|
|
|
|
|
|
|
|
|
"outline.codeActionKinds" *coc-config-outline-codeActionKinds*
|
|
|
|
|
|
|
|
|
|
Filter code actions in actions menu by kinds.
|
|
|
|
|
Default: ['', 'quickfix', 'refactor', 'source']
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Call hierarchy~
|
|
|
|
|
*coc-config-callHierarchy*
|
|
|
|
|
"callHierarchy.openCommand" *coc-config-callHierarchy-openCommand*
|
|
|
|
|
|
|
|
|
|
Open command for callHierarchy tree view, default to 'edit'.
|
|
|
|
|
|
|
|
|
|
"callHierarchy.splitCommand" *coc-config-callHierarchy-splitCommand*
|
|
|
|
|
|
|
|
|
|
Window split command used by callHierarchy tree view.
|
|
|
|
|
|
|
|
|
|
"callHierarchy.enableTooltip" *coc-config-callHierarchy-enableTooltip*
|
|
|
|
|
|
|
|
|
|
Enable tooltip to show relative filepath of call hierarchy.
|
|
|
|
|
Default: `true`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Npm~
|
|
|
|
|
*coc-config-npm*
|
|
|
|
|
"npm.binPath" *coc-config-npm-binPath*
|
|
|
|
|
|
|
|
|
|
Command or full path of npm or yarn executable for install/update
|
|
|
|
|
extensions, default: `npm`
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Float configuration~
|
|
|
|
|
*coc-config-float*
|
|
|
|
|
|
|
|
|
|
Used by `suggest.floatConfig`, `diagnostic.floatConfig`,
|
|
|
|
|
`signature.floatConfig` and `hover.floatConfig`, following properties are
|
|
|
|
|
supported:
|
|
|
|
|
|
|
|
|
|
- "border": Change to `true` to enable border.
|
|
|
|
|
- "highlight": Background highlight group of float window.
|
|
|
|
|
- "title": Title used by float window.
|
|
|
|
|
- "borderhighlight": Border highlight group of float window.
|
|
|
|
|
- "close": Set to true to draw close icon.
|
|
|
|
|
- "maxWidth": Maximum width of float window, contains border.
|
|
|
|
|
- "maxHeight": Maximum height of float window, contains border.
|
|
|
|
|
- "winblend": Set 'winblend' option of window, neovim only.
|
|
|
|
|
- "focusable": Set to false to make window not focusable, neovim only.
|
|
|
|
|
- "shadow": Set to true to enable shadow, neovim only.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
Languageserver~
|
2022-05-27 03:57:56 -04:00
|
|
|
|
*coc-config-languageserver*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
Dictionary of Language Servers, key is the ID of corresponding server,
|
|
|
|
|
and value is configuration of languageserver. Default: `{}`
|
|
|
|
|
|
|
|
|
|
Properties of languageserver configuration:
|
|
|
|
|
|
|
|
|
|
- "enable": Change to `false` to disable that languageserver.
|
|
|
|
|
|
|
|
|
|
- "filetypes": Supported filetypes, add * in array for all filetypes.
|
|
|
|
|
Note: it's required for start the languageserver, please make sure
|
|
|
|
|
your filetype is expected by `:CocCommand document.echoFiletype` command
|
|
|
|
|
|
|
|
|
|
- "additionalSchemes": Additional uri schemes, default schemes
|
|
|
|
|
including file & untitled.
|
|
|
|
|
Note: you have to setup vim provide content for custom uri as well.
|
|
|
|
|
|
|
|
|
|
- "cwd": Working directory used to start languageserver, vim's cwd is
|
|
|
|
|
used by default.
|
|
|
|
|
|
|
|
|
|
- "env": Environment variables for child process.
|
|
|
|
|
|
|
|
|
|
- "settings": Settings for languageserver, received on server
|
|
|
|
|
initialization.
|
|
|
|
|
|
|
|
|
|
- "trace.server": Trace level of communication between server and
|
|
|
|
|
client that showed with output channel.
|
|
|
|
|
|
|
|
|
|
- "stdioEncoding": Encoding used for stdio of child process.
|
|
|
|
|
|
|
|
|
|
- "initializationOptions": Initialization options passed to
|
|
|
|
|
languageserver (it's deprecated)
|
|
|
|
|
|
|
|
|
|
- "rootPatterns": Root patterns used to resolve rootPath from current
|
|
|
|
|
file.
|
|
|
|
|
|
|
|
|
|
- "requireRootPattern": If true, doesn't start server when root
|
|
|
|
|
pattern not found.
|
|
|
|
|
|
|
|
|
|
- "ignoredRootPaths": Absolute root paths that language server should
|
|
|
|
|
not use as rootPath, higher priority than rootPatterns.
|
|
|
|
|
|
|
|
|
|
- "disableDynamicRegister": Disable dynamic registerCapability feature
|
|
|
|
|
for this languageserver to avoid duplicated feature regstration.
|
|
|
|
|
|
|
|
|
|
- "disableSnippetCompletion": Disable snippet completion feature for
|
|
|
|
|
this languageserver.
|
|
|
|
|
|
|
|
|
|
- "disabledFeatures": Disable features for this languageserver,
|
|
|
|
|
valid keys:
|
|
|
|
|
>
|
|
|
|
|
["completion", "configuration", "workspaceFolders", "diagnostics",
|
|
|
|
|
"willSave", "willSaveUntil", "didSaveTextDocument",
|
|
|
|
|
"fileSystemWatcher", "hover", "signatureHelp", "definition",
|
|
|
|
|
"references", "documentHighlight", "documentSymbol",
|
|
|
|
|
"workspaceSymbol", "codeAction", "codeLens", "formatting",
|
|
|
|
|
"documentFormatting", "documentRangeFormatting",
|
|
|
|
|
"documentOnTypeFormatting", "rename", "documentLink",
|
|
|
|
|
"executeCommand", "pullConfiguration", "typeDefinition",
|
|
|
|
|
"implementation", "declaration", "color", "foldingRange",
|
|
|
|
|
"selectionRange", "progress", "callHierarchy", "linkedEditing",
|
|
|
|
|
"fileEvents", "semanticTokens"]
|
|
|
|
|
<
|
|
|
|
|
- "formatterPriority": Priority of this languageserver's formatter.
|
|
|
|
|
|
|
|
|
|
- "revealOutputChannelOn": Configure message level to show the output
|
|
|
|
|
channel buffer.
|
|
|
|
|
|
|
|
|
|
- "progressOnInitialization": Enable progress report on languageserver
|
|
|
|
|
initialize.
|
|
|
|
|
|
|
|
|
|
Language server start with command:~
|
|
|
|
|
|
|
|
|
|
Additional fields can be used for a command languageserver:
|
|
|
|
|
|
|
|
|
|
- "command": Executable program name in $PATH or absolute path of
|
|
|
|
|
executable used for start languageserver.
|
|
|
|
|
|
|
|
|
|
- "args": Command line arguments of command.
|
|
|
|
|
|
|
|
|
|
- "detached": Detach language server when is true.
|
|
|
|
|
|
|
|
|
|
- "shell": Use shell for server process, default: `false`
|
|
|
|
|
|
|
|
|
|
Language server start with module:~
|
|
|
|
|
|
|
|
|
|
Additional fields can be used for a languageserver started by node
|
|
|
|
|
module:
|
|
|
|
|
|
|
|
|
|
- "module": Absolute filepath of javascript file.
|
|
|
|
|
|
|
|
|
|
- "args": Extra arguments used on fork javascript module.
|
|
|
|
|
|
|
|
|
|
- "runtime": Absolute path of node runtime, node runtime of coc.nvim
|
|
|
|
|
is used by default.
|
|
|
|
|
|
|
|
|
|
- "execArgv": Argv passed to node on fork, normally used for
|
|
|
|
|
debugging, example: `["--nolazy", "--inspect-brk=6045"]`
|
|
|
|
|
|
|
|
|
|
- "transport": Transport kind used by server, could be 'ipc', 'stdio',
|
|
|
|
|
'socket' and 'pipe'. 'ipc' is used by default (recommended).
|
|
|
|
|
|
|
|
|
|
- "transportPort": Port number used when transport is 'socket'.
|
|
|
|
|
|
|
|
|
|
Language server use initialized socket server:~
|
|
|
|
|
|
|
|
|
|
- "port": Port number of socket server.
|
|
|
|
|
|
|
|
|
|
- "host": Host of socket server, default to `127.0.0.1`.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
INTERFACE *coc-interface*
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Key mappings *coc-key-mappings*
|
|
|
|
|
|
|
|
|
|
Unlike some vim plugins, coc.nvim doesn't create user global key-mappings by
|
|
|
|
|
default. However, there're some cases that local key-mappings are enabled for
|
|
|
|
|
current buffer.
|
|
|
|
|
|
|
|
|
|
Snippet jump key-mappings when snippet is activated:
|
|
|
|
|
|g:coc_snippet_prev| and |g:coc_snippet_next|.
|
|
|
|
|
|
|
|
|
|
Cursor jump and cancel key-mappings when cursors is activated
|
|
|
|
|
|coc-config-cursors|.
|
|
|
|
|
|
|
|
|
|
Dialog key-mappings for confirm and cancel dialog window
|
|
|
|
|
|coc-config-dialog|.
|
|
|
|
|
|
|
|
|
|
Key-mappings for |CocList| buffer: |coc-list-mappings|.
|
|
|
|
|
|
|
|
|
|
Note: Use |:verbose| command to check key-mappings that taking effect.
|
|
|
|
|
|
|
|
|
|
Note: Use 'noremap' with <Plug> will make the key-mapping not work at all.
|
|
|
|
|
|
|
|
|
|
Note: <Plug> key-mappings are provided for convenient, use |CocActionAsync()| or
|
|
|
|
|
|CocAction()| for more options.
|
|
|
|
|
|
|
|
|
|
Normal mode key-mappings:~
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-diagnostic-info)* Show diagnostic message of current position by
|
|
|
|
|
invoke |CocAction('diagnosticInfo')|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-diagnostic-next)* Jump to next diagnostic position.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-diagnostic-prev)* Jump to previous diagnostic position.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-diagnostic-next-error)* Jump to next diagnostic error position.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-diagnostic-prev-error)* Jump to previous diagnostic error position.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-definition)* Jump to definition(s) of current symbol by invoke
|
|
|
|
|
|CocAction('jumpDefinition')|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-declaration)* Jump to declaration(s) of current symbol by invoke
|
|
|
|
|
|CocAction('jumpDeclaration')|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-implementation)* Jump to implementation(s) of current symbol by
|
|
|
|
|
invoke |CocAction('jumpImplementation')|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-type-definition)* Jump to type definition(s) of current symbol by
|
|
|
|
|
invoke |CocAction('jumpTypeDefinition')|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-references)* Jump to references of current symbol by invoke
|
|
|
|
|
|CocAction('jumpReferences')|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-references-used)* Jump to references of current symbol exclude
|
|
|
|
|
declarations.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-format-selected)*
|
|
|
|
|
|
|
|
|
|
Format selected range, works on both |visual-mode| and |normal-mode|,
|
|
|
|
|
when used in normal mode, the selection works on the motion object.
|
|
|
|
|
|
|
|
|
|
For example: >
|
|
|
|
|
|
|
|
|
|
vmap <leader>p <Plug>(coc-format-selected)
|
|
|
|
|
nmap <leader>p <Plug>(coc-format-selected)
|
|
|
|
|
<
|
|
|
|
|
makes `<leader>p` format the visually selected range, and you can use
|
|
|
|
|
`<leader>pap` to format a paragraph.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-format)*
|
|
|
|
|
|
|
|
|
|
Format the whole buffer by invoke |CocAction('format')|, normally you
|
|
|
|
|
would like to use a command like: >
|
|
|
|
|
|
|
|
|
|
command! -nargs=0 Format :call CocAction('format')
|
|
|
|
|
<
|
|
|
|
|
to format current buffer.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-rename)* Rename symbol under cursor to a new word by invoke
|
|
|
|
|
|CocAction('rename')|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-refactor)* Open refactor window for refactor of current symbol by
|
|
|
|
|
invoke |CocAction('refactor')|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-command-repeat)* Repeat latest |CocCommand|.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-codeaction)* Get and run code action(s) for current file, use
|
|
|
|
|
|coc-codeaction-cursor| for same behavior as VSCode.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-codeaction-line)* Get and run code action(s) for current line.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-codeaction-cursor)* Get and run code action(s) using empty range
|
|
|
|
|
at current cursor.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-codeaction-selected)* Get and run code action(s) with the selected
|
|
|
|
|
region. Works on both |visual-mode| and |normal-mode|.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-openlink)* Open link under cursor.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-codelens-action)* Do command from codeLens of current line.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-fix-current)* Try first quickfix action for diagnostics of current
|
|
|
|
|
line.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-float-hide)* Hide all float windows/popups created by coc.nvim.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-float-jump)* Jump to first float window (neovim only), use
|
|
|
|
|
|CTRL-W_p| for jump to previous window.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-range-select)*
|
|
|
|
|
|
|
|
|
|
Select next selection range.
|
|
|
|
|
Works on both |visual-mode| and |normal-mode|.
|
|
|
|
|
|
|
|
|
|
Note: requires selection ranges feature of language server.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-funcobj-i)*
|
|
|
|
|
|
|
|
|
|
Select inside function. Recommend mapping:
|
|
|
|
|
Works on both |visual-mode| and |normal-mode|.
|
|
|
|
|
>
|
|
|
|
|
xmap if <Plug>(coc-funcobj-i)
|
|
|
|
|
omap if <Plug>(coc-funcobj-i)
|
|
|
|
|
<
|
|
|
|
|
Note: Requires 'textDocument.documentSymbol' support from the language
|
|
|
|
|
server.
|
|
|
|
|
|
|
|
|
|
*<Plug>(coc-funcobj-a)*
|
|
|
|
|
|
|
|
|
|
Select around function. Works on both |visual-mode| and
|
|
|
|
|
|normal-mode|. Recommended mapping:
|
|
|
|
|
>
|
|
|
|
|
xmap af <Plug>(coc-funcobj-a)
|
|
|
|
|
omap af <Plug>(coc-funcobj-a)
|
|
|
|
|
<
|
|
|
|
|
Note: Requires 'textDocument.documentSymbol' support from the language
|
|
|
|
|
server.
|
|
|
|
|
|
|
|
|
|
*<Plug>(coc-classobj-i)*
|
|
|
|
|
|
|
|
|
|
Select inside class/struct/interface. Works on both |visual-mode| and
|
|
|
|
|
|normal-mode|. Recommended mapping:
|
|
|
|
|
>
|
|
|
|
|
xmap ic <Plug>(coc-classobj-i)
|
|
|
|
|
omap ic <Plug>(coc-classobj-i)
|
|
|
|
|
<
|
|
|
|
|
Note: Requires 'textDocument.documentSymbol' support from the language
|
|
|
|
|
server.
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-classobj-a)*
|
|
|
|
|
|
|
|
|
|
Select around class/struct/interface. Works on both |visual-mode| and
|
|
|
|
|
|normal-mode|. Recommended mapping:
|
|
|
|
|
>
|
|
|
|
|
xmap ac <Plug>(coc-classobj-a)
|
|
|
|
|
omap ac <Plug>(coc-classobj-a)
|
|
|
|
|
<
|
|
|
|
|
Note: Requires 'textDocument.documentSymbol' support from the language
|
|
|
|
|
server.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-cursors-operator)* Add text to cursors session by motion object.
|
|
|
|
|
|
|
|
|
|
*<Plug>(coc-cursors-word)* Add current word to cursors session.
|
|
|
|
|
|
|
|
|
|
*<Plug>(coc-cursors-position)* Add current position as empty range to cursors
|
|
|
|
|
session.
|
|
|
|
|
|
|
|
|
|
Visual mode key-mappings:~
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-range-select-backward)*
|
|
|
|
|
|
|
|
|
|
Select previous selection range.
|
|
|
|
|
|
|
|
|
|
Note: requires selection ranges feature of language server, like:
|
|
|
|
|
coc-tsserver, coc-python
|
|
|
|
|
|
|
|
|
|
*<plug>(coc-cursors-range)* Add selection to cursors session.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
VARIABLES *coc-variables*
|
|
|
|
|
|
|
|
|
|
User defined variables:~
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Buffer variables *coc-buffer-variables*
|
|
|
|
|
|
|
|
|
|
b:coc_enabled *b:coc_enabled*
|
|
|
|
|
|
|
|
|
|
Set to `0` on buffer create if you don't want coc.nvim receive content
|
|
|
|
|
from buffer. Normally used with |BufAdd| autocmd, example:
|
|
|
|
|
>
|
|
|
|
|
" Disable file with size > 1MB
|
|
|
|
|
autocmd BufAdd * if getfsize(expand('<afile>')) > 1024*1024 |
|
|
|
|
|
\ let b:coc_enabled=0 |
|
|
|
|
|
\ endif
|
|
|
|
|
<
|
|
|
|
|
b:coc_root_patterns *b:coc_root_patterns*
|
|
|
|
|
|
|
|
|
|
Root patterns used for resolving workspaceFolder for
|
|
|
|
|
the current file, will be used instead of
|
|
|
|
|
`"coc.preferences.rootPatterns"` setting. Example: >
|
|
|
|
|
|
|
|
|
|
autocmd FileType python let b:coc_root_patterns =
|
|
|
|
|
\ ['.git', '.env']
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
b:coc_suggest_disable *b:coc_suggest_disable*
|
|
|
|
|
|
|
|
|
|
Disable completion support of current buffer. Example: >
|
|
|
|
|
|
|
|
|
|
" Disable completion for python
|
|
|
|
|
autocmd FileType python let b:coc_suggest_disable = 1
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
b:coc_disabled_sources *b:coc_disabled_sources*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Disabled completion sources of current buffer. Example:
|
|
|
|
|
>
|
|
|
|
|
let b:coc_disabled_sources = ['around', 'buffer', 'file']
|
|
|
|
|
<
|
|
|
|
|
b:coc_diagnostic_disable *b:coc_diagnostic_disable*
|
|
|
|
|
|
|
|
|
|
Disable diagnostic support of current buffer.
|
|
|
|
|
|
|
|
|
|
b:coc_suggest_blacklist *b:coc_suggest_blacklist*
|
|
|
|
|
|
|
|
|
|
List of input words for which completion should not be triggered.
|
|
|
|
|
Example: >
|
|
|
|
|
|
|
|
|
|
" Disable completion for 'end' in lua files
|
|
|
|
|
autocmd FileType lua let b:coc_suggest_blacklist = ["end"]
|
|
|
|
|
|
|
|
|
|
b:coc_additional_keywords *b:coc_additional_keywords*
|
|
|
|
|
|
|
|
|
|
Addition keyword characters for generate keywords. Example: >
|
|
|
|
|
|
|
|
|
|
" Add keyword characters for css
|
|
|
|
|
autocmd FileType css let b:coc_additional_keywords = ["-"]
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
b:coc_trim_trailing_whitespace *b:coc_trim_trailing_whitespace*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Trim trailing whitespace on a line, default `0`.
|
|
|
|
|
Use by "FormattingOptions" send to the server.
|
|
|
|
|
|
|
|
|
|
b:coc_trim_final_newlines *b:coc_trim_final_newlines*
|
|
|
|
|
|
|
|
|
|
Trim all newlines after the final newline at the end of the file.
|
|
|
|
|
Use by "FormattingOptions" send to the server.
|
|
|
|
|
|
|
|
|
|
Other buffer options that affect document format: 'eol', 'shiftwidth'
|
|
|
|
|
and 'expandtab'.
|
|
|
|
|
|
|
|
|
|
Note: language server may not respect format options.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Global variables *coc-global-variables*
|
|
|
|
|
|
|
|
|
|
g:coc_disable_startup_warning *g:coc_disable_startup_warning*
|
|
|
|
|
|
|
|
|
|
Disable possible warning on startup for old vim/node version.
|
|
|
|
|
|
|
|
|
|
Default: 0
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
g:coc_disable_uncaught_error *g:coc_disable_uncaught_error*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Disable uncaught error messages from node process of coc.nvim.
|
|
|
|
|
|
|
|
|
|
Default: 0
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
g:coc_text_prop_offset *g:coc_text_prop_offset*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Start |textprop| id offset of highlight namespaces on vim, change to
|
|
|
|
|
other value to avoid conflict.
|
|
|
|
|
|
|
|
|
|
Default: 1000
|
|
|
|
|
|
|
|
|
|
g:coc_channel_timeout *g:coc_channel_timeout*
|
|
|
|
|
|
|
|
|
|
Channel timeout in seconds for request to node client.
|
|
|
|
|
|
|
|
|
|
Default: 30
|
|
|
|
|
|
|
|
|
|
g:coc_disable_transparent_cursor *g:coc_disable_transparent_cursor*
|
|
|
|
|
|
|
|
|
|
Disable transparent cursor when CocList is activated.
|
|
|
|
|
Set it to `1` if you have issue with transparent
|
|
|
|
|
cursor.
|
|
|
|
|
|
|
|
|
|
Default: 0
|
|
|
|
|
|
|
|
|
|
g:coc_start_at_startup *g:coc_start_at_startup*
|
|
|
|
|
|
|
|
|
|
Start coc service on startup, use |CocStart| to start server when you
|
|
|
|
|
set it to 0.
|
|
|
|
|
|
|
|
|
|
Default: 1
|
|
|
|
|
|
|
|
|
|
g:coc_global_extensions *g:coc_global_extensions*
|
|
|
|
|
|
|
|
|
|
Global extension names to install when they aren't installed.
|
|
|
|
|
>
|
|
|
|
|
let g:coc_global_extensions = ['coc-json', 'coc-git']
|
|
|
|
|
<
|
|
|
|
|
Note: coc.nvim will try to install extensions that are not installed
|
|
|
|
|
in this list after initialization.
|
|
|
|
|
|
|
|
|
|
g:coc_uri_prefix_replace_patterns *g:coc_uri_prefix_replace_patterns*
|
|
|
|
|
|
|
|
|
|
This map defines URI prefix replacements. This is useful in the case
|
|
|
|
|
that an LSP requires code to adhere to a particular directory
|
|
|
|
|
structure. For example, `/Users/myUser/workspace` can be mapped to
|
|
|
|
|
`/home/myUser/workspace`.
|
|
|
|
|
>
|
|
|
|
|
let g:coc_uri_prefix_replace_patterns = {'/Users': '/home'}
|
|
|
|
|
<
|
|
|
|
|
g:coc_enable_locationlist *g:coc_enable_locationlist*
|
|
|
|
|
|
|
|
|
|
Use location list of |CocList| when jump to locations.
|
|
|
|
|
|
|
|
|
|
Set it to 0 when you need customize behavior of location jump by use
|
|
|
|
|
|CocLocationsChange| and |g:coc_jump_locations|
|
|
|
|
|
|
|
|
|
|
If you want use vim's quickfix list instead, add
|
|
|
|
|
`"coc.preferences.useQuickfixForLocations": true` in your
|
|
|
|
|
configuration file, this configuration would be ignored and no autocmd
|
|
|
|
|
triggered.
|
|
|
|
|
|
|
|
|
|
Default: 1
|
|
|
|
|
|
|
|
|
|
g:coc_snippet_next *g:coc_snippet_next*
|
|
|
|
|
|
|
|
|
|
Trigger key for going to the next snippet position, applied in insert
|
|
|
|
|
and select mode.
|
|
|
|
|
|
|
|
|
|
Only works when snippet session is activated.
|
|
|
|
|
|
|
|
|
|
Default: <C-j>
|
|
|
|
|
|
|
|
|
|
g:coc_snippet_prev *g:coc_snippet_prev*
|
|
|
|
|
|
|
|
|
|
Trigger key for going to the previous snippet position, applied in
|
|
|
|
|
insert and select mode.
|
|
|
|
|
|
|
|
|
|
Only works when snippet session is activated.
|
|
|
|
|
|
|
|
|
|
Default: <C-k>
|
|
|
|
|
|
|
|
|
|
g:coc_filetype_map *g:coc_filetype_map*
|
|
|
|
|
|
|
|
|
|
Map for document filetypes so the server could handle current document
|
|
|
|
|
as another filetype, example: >
|
|
|
|
|
|
|
|
|
|
let g:coc_filetype_map = {
|
|
|
|
|
\ 'html.swig': 'html',
|
|
|
|
|
\ 'wxss': 'css',
|
|
|
|
|
\ }
|
|
|
|
|
<
|
|
|
|
|
Default: {}
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
See |coc-document-filetype| for details.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
g:coc_selectmode_mapping *g:coc_selectmode_mapping*
|
|
|
|
|
|
|
|
|
|
Add key mappings for making snippet select mode easier. >
|
|
|
|
|
|
|
|
|
|
snoremap <silent> <BS> <c-g>c
|
|
|
|
|
snoremap <silent> <DEL> <c-g>c
|
|
|
|
|
snoremap <silent> <c-h> <c-g>c
|
|
|
|
|
snoremap <c-r> <c-g>"_c<c-r>
|
|
|
|
|
<
|
|
|
|
|
Default: 1
|
|
|
|
|
|
|
|
|
|
g:coc_node_path *g:coc_node_path*
|
|
|
|
|
|
|
|
|
|
Path to node executable to start coc service, example: >
|
|
|
|
|
|
|
|
|
|
let g:coc_node_path = '/usr/local/opt/node@12/bin/node'
|
|
|
|
|
<
|
|
|
|
|
Use this when coc has problems with your system node,
|
|
|
|
|
|
|
|
|
|
Note: you can use `~` as home directory.
|
|
|
|
|
|
|
|
|
|
g:coc_node_args *g:coc_node_args*
|
|
|
|
|
|
|
|
|
|
Arguments passed to node when starting coc service from source code.
|
|
|
|
|
|
|
|
|
|
Useful for starting coc in debug mode, example: >
|
|
|
|
|
>
|
|
|
|
|
let g:coc_node_args = ['--nolazy', '--inspect-brk=6045']
|
|
|
|
|
<
|
|
|
|
|
Default: []
|
|
|
|
|
|
|
|
|
|
g:coc_status_error_sign *g:coc_status_error_sign*
|
|
|
|
|
|
|
|
|
|
Error character used for statusline, default: `E`
|
|
|
|
|
|
|
|
|
|
g:coc_status_warning_sign *g:coc_status_warning_sign*
|
|
|
|
|
|
|
|
|
|
Warning character used for statusline, default: `W`
|
|
|
|
|
|
|
|
|
|
g:coc_quickfix_open_command *g:coc_quickfix_open_command*
|
|
|
|
|
|
|
|
|
|
Command used for open quickfix list. To jump fist position after
|
|
|
|
|
quickfix list opend, you can use:
|
|
|
|
|
>
|
|
|
|
|
let g:coc_quickfix_open_command = 'copen|cfirst'
|
|
|
|
|
<
|
|
|
|
|
Default: |copen|
|
|
|
|
|
|
|
|
|
|
g:node_client_debug *g:node_client_debug*
|
|
|
|
|
|
|
|
|
|
Enable debug mode of node client for check rpc messages between vim
|
|
|
|
|
and coc.nvim. Use environment variable $NODE_CLIENT_LOG_FILE to set
|
|
|
|
|
the log file or get the log file after coc.nvim started.
|
|
|
|
|
To open the log file, use command: >
|
|
|
|
|
|
|
|
|
|
:call coc#client#open_log()
|
|
|
|
|
<
|
|
|
|
|
Default: `0`
|
|
|
|
|
|
|
|
|
|
g:coc_config_home *g:coc_config_home*
|
|
|
|
|
|
|
|
|
|
Configure the directory which will be used to look for
|
|
|
|
|
user's `coc-settings.json`, default:
|
|
|
|
|
|
|
|
|
|
Windows: `~/AppData/Local/nvim`
|
|
|
|
|
Other: `~/.config/nvim`
|
|
|
|
|
|
|
|
|
|
g:coc_data_home *g:coc_data_home*
|
|
|
|
|
|
|
|
|
|
Configure the directory which will be used to for data
|
|
|
|
|
files(extensions, mru and so on), default:
|
|
|
|
|
|
|
|
|
|
Windows: `~/AppData/Local/coc`
|
|
|
|
|
Other: `~/.config/coc`
|
|
|
|
|
|
|
|
|
|
g:coc_terminal_height *g:coc_terminal_height*
|
|
|
|
|
|
|
|
|
|
Height of terminal window, default `8`.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
g:coc_markdown_disabled_languages *g:coc_markdown_disabled_languages*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Filetype list that should be disabled for highlight in markdown block,
|
|
|
|
|
Example: >
|
|
|
|
|
|
|
|
|
|
let g:coc_markdown_disabled_languages = ['html']
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
g:coc_highlight_maximum_count *g:coc_highlight_maximum_count*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
When highlight items exceed maximum count, highlight items will be
|
|
|
|
|
grouped and added by using |timer_start| for better user experience.
|
|
|
|
|
|
|
|
|
|
Default `100`
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
g:coc_default_semantic_highlight_groups *g:coc_default_semantic_highlight_groups*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Create default semantic highlight groups for |coc-semantic-highlights|
|
|
|
|
|
|
|
|
|
|
Default: `1`
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
g:coc_max_treeview_width *g:coc_max_treeview_width*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Maximum width of tree view when adjusted by auto width.
|
|
|
|
|
|
|
|
|
|
Default: `40`
|
|
|
|
|
|
|
|
|
|
g:coc_borderchars *g:coc_borderchars*
|
|
|
|
|
|
|
|
|
|
Border characters used by border window, default to:
|
|
|
|
|
>
|
|
|
|
|
['─', '│', '─', '│', '┌', '┐', '┘', '└']
|
|
|
|
|
<
|
|
|
|
|
Note: you may need special font like Nerd font to show them.
|
|
|
|
|
|
|
|
|
|
g:coc_border_joinchars *g:coc_border_joinchars*
|
|
|
|
|
|
|
|
|
|
Border join characters used by float window/popup, default to:
|
|
|
|
|
>
|
|
|
|
|
['┬', '┤', '┴', '├']
|
|
|
|
|
<
|
|
|
|
|
Note: you may need special font like Nerd font to show them.
|
|
|
|
|
|
|
|
|
|
g:coc_prompt_win_width *g:coc_prompt_win_width*
|
|
|
|
|
|
|
|
|
|
Width of input prompt window, default `32`.
|
|
|
|
|
|
|
|
|
|
*g:coc_notify*
|
|
|
|
|
g:coc_notify_error_icon *g:coc_notify_error_icon*
|
|
|
|
|
|
|
|
|
|
Error icon for notification, default to:
|
|
|
|
|
|
|
|
|
|
g:coc_notify_warning_icon *g:coc_notify_warning_icon*
|
|
|
|
|
|
|
|
|
|
Warning icon for notification, default to: ⚠
|
|
|
|
|
|
|
|
|
|
g:coc_notify_info_icon *g:coc_notify_info_icon*
|
|
|
|
|
|
|
|
|
|
Info icon for notification, default to:
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Some variables are provided by coc.nvim.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g:WorkspaceFolders *g:WorkspaceFolders*
|
|
|
|
|
|
|
|
|
|
Current workspace folders, used for restoring from a session file, add
|
|
|
|
|
`set sessionoptions+=globals` to vimrc for restoring globals on
|
|
|
|
|
session load.
|
|
|
|
|
|
|
|
|
|
g:coc_jump_locations *g:coc_jump_locations*
|
|
|
|
|
|
|
|
|
|
This variable would be set to jump locations when the
|
|
|
|
|
|CocLocationsChange| autocmd is fired.
|
|
|
|
|
|
|
|
|
|
Each location item contains:
|
|
|
|
|
|
|
|
|
|
'filename': full file path.
|
|
|
|
|
'lnum': line number (1 based).
|
|
|
|
|
'col': column number(1 based).
|
|
|
|
|
'text': line content of location.
|
|
|
|
|
|
|
|
|
|
g:coc_process_pid *g:coc_process_pid*
|
|
|
|
|
|
|
|
|
|
Process pid of coc.nvim service. If your vim doesn't kill coc.nvim
|
|
|
|
|
process on exit, use:
|
|
|
|
|
>
|
|
|
|
|
autocmd VimLeavePre * if get(g:, 'coc_process_pid', 0)
|
|
|
|
|
\ | call system('kill -9 '.g:coc_process_pid) | endif
|
|
|
|
|
<
|
|
|
|
|
in your vimrc.
|
|
|
|
|
|
2022-05-19 10:14:37 -04:00
|
|
|
|
g:coc_service_initialized *g:coc_service_initialized*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Is `1` when coc.nvim initialized, used with autocmd |CocNvimInit|.
|
|
|
|
|
|
|
|
|
|
g:coc_status *g:coc_status*
|
|
|
|
|
|
|
|
|
|
Status string contributed by coc.nvim and extensions, used for status
|
|
|
|
|
line.
|
|
|
|
|
|
|
|
|
|
g:coc_last_float_win *g:coc_last_float_win*
|
|
|
|
|
|
|
|
|
|
Window id of latest created float/popup window.
|
|
|
|
|
|
|
|
|
|
g:coc_last_hover_message *g:coc_last_hover_message*
|
|
|
|
|
|
|
|
|
|
Last message echoed from `doHover`, can be used in statusline.
|
|
|
|
|
|
|
|
|
|
Note: not used when floating or preview window used for `doHover`.
|
|
|
|
|
|
|
|
|
|
b:coc_snippet_active *b:coc_snippet_active*
|
|
|
|
|
|
|
|
|
|
Is `1` when snippet session is activated, use |coc#jumpable| to check
|
|
|
|
|
if it's possible to jump placeholder.
|
|
|
|
|
|
|
|
|
|
b:coc_diagnostic_info *b:coc_diagnostic_info*
|
|
|
|
|
|
|
|
|
|
Diagnostic information of current buffer, the format would look like:
|
|
|
|
|
|
|
|
|
|
`{'error': 0, 'warning': 0, 'information': 0, 'hint':0}`
|
|
|
|
|
|
|
|
|
|
can be used to customize statusline. See |coc-status|.
|
|
|
|
|
|
|
|
|
|
b:coc_current_function *b:coc_current_function*
|
|
|
|
|
|
|
|
|
|
Function string that current cursor in.
|
|
|
|
|
|
|
|
|
|
Set `"coc.preferences.currentFunctionSymbolAutoUpdate": true`
|
|
|
|
|
in coc-settings.json to update it on CursorHold.
|
|
|
|
|
|
|
|
|
|
b:coc_cursors_activated *b:coc_cursors_activated*
|
|
|
|
|
|
|
|
|
|
Use expression `get(b:, 'coc_cursors_activated',0)` to check if
|
|
|
|
|
cursors session is activated for current buffer.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
FUNCTIONS *coc-functions*
|
|
|
|
|
|
|
|
|
|
Coc functions are normally used by user defined command/keymap or other
|
|
|
|
|
plugins.
|
|
|
|
|
|
|
|
|
|
Note: some functions only work after the coc service has been initialized.
|
|
|
|
|
|
|
|
|
|
To run a function on startup, use an autocmd like: >
|
|
|
|
|
|
|
|
|
|
autocmd User CocNvimInit call CocAction('runCommand',
|
|
|
|
|
\ 'tsserver.watchBuild')
|
|
|
|
|
<
|
|
|
|
|
coc#start([{option}]) *coc#start()*
|
|
|
|
|
|
|
|
|
|
Start completion with optional {option}. Option could contains:
|
|
|
|
|
|
|
|
|
|
- `source` specific completion source name.
|
|
|
|
|
|
|
|
|
|
Example: >
|
|
|
|
|
|
|
|
|
|
inoremap <silent> <C-w> <C-R>=coc#start({'source': 'word'})<CR>
|
|
|
|
|
<
|
|
|
|
|
Use `:CocList sources` to get available sources.
|
|
|
|
|
|
|
|
|
|
coc#config({section}, {value}) *coc#config()*
|
|
|
|
|
|
|
|
|
|
Change user configuration by Vim script, no changes would be made to
|
|
|
|
|
user configuration file. Example: >
|
|
|
|
|
|
|
|
|
|
call coc#config('coc.preferences', {
|
|
|
|
|
\ 'timeout': 1000,
|
|
|
|
|
\})
|
|
|
|
|
call coc#config('languageserver', {
|
|
|
|
|
\ 'ccls': {
|
|
|
|
|
\ "command": "ccls",
|
|
|
|
|
\ "trace.server": "verbose",
|
|
|
|
|
\ "filetypes": ["c", "cpp", "objc", "objcpp"]
|
|
|
|
|
\ }
|
|
|
|
|
\})
|
|
|
|
|
<
|
|
|
|
|
|
|
|
|
|
Note: this function can be called multiple times.
|
|
|
|
|
|
|
|
|
|
Note: this function can be called before the service has been
|
|
|
|
|
initialized.
|
|
|
|
|
|
|
|
|
|
Note: this function can work alongside the user configuration file,
|
|
|
|
|
but it's not recommended to use both.
|
|
|
|
|
|
|
|
|
|
coc#add_extension({name}, ...) *coc#add_extension()*
|
|
|
|
|
|
|
|
|
|
Deprecated function for install extensions not exists.
|
|
|
|
|
Use |g:coc_global_extensions| variable instead.
|
|
|
|
|
|
|
|
|
|
Example: >
|
|
|
|
|
|
|
|
|
|
call coc#add_extension('coc-json', 'coc-tsserver', 'coc-rls')
|
|
|
|
|
<
|
|
|
|
|
This function can be called before service initialized.
|
|
|
|
|
This function can be called multiple times.
|
|
|
|
|
|
|
|
|
|
coc#add_command({id}, {command}, [{title}]) *coc#add_command()*
|
|
|
|
|
|
|
|
|
|
Add custom Vim command to commands list opened by
|
|
|
|
|
`:CocList commands` .
|
|
|
|
|
|
|
|
|
|
Example: >
|
|
|
|
|
|
|
|
|
|
call coc#add_command('mundoToggle', 'MundoToggle',
|
|
|
|
|
\ 'toggle mundo window')
|
|
|
|
|
<
|
|
|
|
|
coc#refresh() *coc#refresh()*
|
|
|
|
|
|
|
|
|
|
Start or refresh completion at current cursor position, bind this to
|
|
|
|
|
'imap' to trigger completion, example: >
|
|
|
|
|
|
|
|
|
|
inoremap <silent><expr> <c-space> coc#refresh()
|
|
|
|
|
<
|
|
|
|
|
coc#expandable() *coc#expandable()*
|
|
|
|
|
|
|
|
|
|
Check if a snippet is expandable at the current position.
|
|
|
|
|
Requires `coc-snippets` extension installed.
|
|
|
|
|
|
|
|
|
|
coc#jumpable() *coc#jumpable()*
|
|
|
|
|
|
|
|
|
|
Check if a snippet is jumpable at the current position.
|
|
|
|
|
|
|
|
|
|
coc#expandableOrJumpable() *coc#expandableOrJumpable()*
|
|
|
|
|
|
|
|
|
|
Check if a snippet is expandable or jumpable at the current position.
|
|
|
|
|
Requires `coc-snippets` extension installed.
|
|
|
|
|
|
|
|
|
|
coc#on_enter() *coc#on_enter()*
|
|
|
|
|
|
|
|
|
|
Notify coc.nvim that `<enter>` has been pressed.
|
|
|
|
|
|
|
|
|
|
Used for the format on type and improvement of brackets, example: >
|
|
|
|
|
|
|
|
|
|
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
|
|
|
|
|
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
|
|
|
|
|
<
|
|
|
|
|
Note:to enable formatOnType, add ` "coc.preferences.formatOnType": true`
|
|
|
|
|
in your settings file.
|
|
|
|
|
|
|
|
|
|
coc#status() *coc#status()*
|
|
|
|
|
|
|
|
|
|
Return a status string that can be used in the status line, the status
|
|
|
|
|
includes diagnostic information from `b:coc_diagnostic_info` and
|
|
|
|
|
extension contributed statuses from `g:coc_status`. For statusline
|
|
|
|
|
integration, see |coc-status|
|
|
|
|
|
|
|
|
|
|
coc#_select_confirm() *coc#_select_confirm()*
|
|
|
|
|
|
|
|
|
|
Select first completion item if no completion item is selected, then
|
|
|
|
|
confirm the completion.
|
|
|
|
|
|
|
|
|
|
Note: for this function to work as expected, either |CompleteChanged|
|
|
|
|
|
autocmd should exist or only <C-n> and <C-p> should be used to select
|
|
|
|
|
a completion item.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
coc#util#api_version() *coc#util#api_version()*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Get coc.nvim's vim api version number, start from `1`.
|
|
|
|
|
|
|
|
|
|
coc#util#job_command() *coc#util#job_command()*
|
|
|
|
|
|
|
|
|
|
Get the job command used for starting the coc service.
|
|
|
|
|
|
|
|
|
|
coc#util#get_config_home() *coc#util#get_config_home()*
|
|
|
|
|
|
|
|
|
|
Get the config directory that contains the user's coc-settings.json.
|
|
|
|
|
|
|
|
|
|
coc#util#get_data_home() *coc#util#get_data_home()*
|
|
|
|
|
|
|
|
|
|
Get `coc` data directory.
|
|
|
|
|
|
|
|
|
|
coc#util#extension_root() *coc#util#extension_root()*
|
|
|
|
|
|
|
|
|
|
Return extensions root of coc.nvim.
|
|
|
|
|
|
|
|
|
|
coc#util#rebuild() *coc#util#rebuild()*
|
|
|
|
|
|
|
|
|
|
Run `npm rebuild` for all coc extensions.
|
|
|
|
|
|
|
|
|
|
coc#util#root_patterns() *coc#util#root_patterns()*
|
|
|
|
|
|
|
|
|
|
Get root patterns used for current document.
|
|
|
|
|
|
|
|
|
|
Result could be something like: >
|
|
|
|
|
|
|
|
|
|
{'global': ['.git', '.hg', '.projections.json'], 'buffer': [], 'server': v:null}
|
|
|
|
|
<
|
|
|
|
|
coc#util#get_config({key}) *coc#util#get_config()*
|
|
|
|
|
|
|
|
|
|
Get configuration (mostly defined in coc-settings.json) by {key},
|
|
|
|
|
example: >
|
|
|
|
|
|
|
|
|
|
:echo coc#util#get_config('coc.preferences')
|
|
|
|
|
|
|
|
|
|
coc#snippet#next() *coc#snippet#next()*
|
|
|
|
|
|
|
|
|
|
Jump to next placeholder, does nothing when |coc#jumpable| is 0.
|
|
|
|
|
|
|
|
|
|
coc#snippet#prev() *coc#snippet#prev()*
|
|
|
|
|
|
|
|
|
|
Jump to previous placeholder, does nothing when |coc#jumpable| is 0.
|
|
|
|
|
|
|
|
|
|
coc#float#has_float([{all}]) *coc#float#has_float()*
|
|
|
|
|
|
|
|
|
|
Check if float window/popup exists, check coc.nvim's float
|
|
|
|
|
window/popup by default.
|
|
|
|
|
|
|
|
|
|
coc#float#close_all([{all}]) *coc#float#close_all()*
|
|
|
|
|
|
|
|
|
|
Close all float windows/popups created by coc.nvim, set {all} to `1`
|
|
|
|
|
for all float window/popups.
|
|
|
|
|
|
|
|
|
|
coc#float#close({winid}) *coc#float#close()*
|
|
|
|
|
|
|
|
|
|
Close float window/popup with {winid}.
|
|
|
|
|
|
|
|
|
|
coc#float#has_scroll() *coc#float#has_scroll()*
|
|
|
|
|
|
|
|
|
|
Return `1` when there is scrollable float window/popup created by
|
|
|
|
|
coc.nvim.
|
|
|
|
|
|
|
|
|
|
Example key-mappings:
|
|
|
|
|
>
|
|
|
|
|
if has('nvim-0.4.0') || has('patch-8.2.0750')
|
|
|
|
|
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
|
|
|
|
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
|
|
|
|
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
|
|
|
|
|
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
|
|
|
|
|
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
|
|
|
|
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
|
|
|
|
endif
|
|
|
|
|
<
|
2022-05-27 03:57:56 -04:00
|
|
|
|
coc#float#scroll({forward}, [{amount}]) *coc#float#scroll()*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Scroll all scrollable float windows/popups, scroll backward when
|
|
|
|
|
{forward} is not `1`. {amount} could be number or full page when
|
|
|
|
|
omitted.
|
|
|
|
|
|
|
|
|
|
Note: this function requires nvim >= 0.4.0 or vim >= 8.2.750 to work.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CocRequest({id}, {method}, [{params}]) *CocRequest()*
|
|
|
|
|
|
|
|
|
|
Send a request to language client of {id} with {method} and optional
|
|
|
|
|
{params}. Example: >
|
|
|
|
|
|
|
|
|
|
call CocRequest('tslint', 'textDocument/tslint/allFixes',
|
|
|
|
|
\ {'textDocument': {'uri': 'file:///tmp'}})
|
|
|
|
|
<
|
|
|
|
|
Vim error will be raised if the response contains an error.
|
|
|
|
|
|
|
|
|
|
*CocRequestAsync()*
|
|
|
|
|
|
|
|
|
|
CocRequestAsync({id}, {method}, [{params}, [{callback}]])
|
|
|
|
|
|
|
|
|
|
Send async request to remote language server.
|
|
|
|
|
{callback} function is called with error and response.
|
|
|
|
|
|
|
|
|
|
CocNotify({id}, {method}, [{params}]) *CocNotify()*
|
|
|
|
|
|
|
|
|
|
Send notification to remote language server, example:
|
|
|
|
|
>
|
|
|
|
|
call CocNotify('ccls', '$ccls/reload')
|
|
|
|
|
<
|
|
|
|
|
*CocRegistNotification()*
|
|
|
|
|
|
|
|
|
|
CocRegistNotification({id}, {method}, {callback})
|
|
|
|
|
|
|
|
|
|
Register notification callback for specified client {id} and {method},
|
|
|
|
|
example: >
|
|
|
|
|
|
|
|
|
|
autocmd User CocNvimInit call CocRegistNotification('ccls',
|
|
|
|
|
\ '$ccls/publishSemanticHighlight', function('s:Handler'))
|
|
|
|
|
<
|
|
|
|
|
{callback} is called with single param as notification result.
|
|
|
|
|
|
|
|
|
|
Note: when register notification with same {id} and {method}, only the
|
|
|
|
|
later registered would work.
|
|
|
|
|
|
|
|
|
|
*CocLocations()*
|
|
|
|
|
|
|
|
|
|
CocLocations({id}, {method}, [{params}, {openCommand}])
|
|
|
|
|
|
|
|
|
|
Send location request to language client of {id} with
|
|
|
|
|
{method} and optional {params}. eg: >
|
|
|
|
|
|
|
|
|
|
call CocLocations('ccls', '$ccls/call', {'callee': v:true})
|
|
|
|
|
|
|
|
|
|
call CocLocations('ccls', '$ccls/call', {}, 'vsplit')
|
|
|
|
|
<
|
|
|
|
|
{openCommand}: optional command to open buffer, default to
|
|
|
|
|
`coc.preferences.jumpCommand` , |:edit| by default. When it's
|
|
|
|
|
`v:false` locations list would always used.
|
|
|
|
|
|
|
|
|
|
*CocLocationsAsync()*
|
|
|
|
|
|
|
|
|
|
CocLocationsAsync({id}, {method}, [{params}, {openCommand}])
|
|
|
|
|
|
|
|
|
|
Same as |CocLocations()|, but send notification to server instead
|
|
|
|
|
of request.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CocAction({action}, [...{args}]) *CocAction()*
|
|
|
|
|
|
|
|
|
|
Run {action} of coc with optional extra {args}.
|
|
|
|
|
|
|
|
|
|
Checkout |coc-actions| for available actions.
|
|
|
|
|
|
|
|
|
|
Note: it's recommended to use |CocActionAsync()| unless you need
|
|
|
|
|
result from |CocAction()|.
|
|
|
|
|
|
|
|
|
|
*CocActionAsync()*
|
|
|
|
|
|
|
|
|
|
CocActionAsync({action}, [...{args}, [{callback}]])
|
|
|
|
|
|
|
|
|
|
Call CocAction by send notification to server of coc.nvim.
|
|
|
|
|
|
|
|
|
|
Optional callback is called with `error` as the first argument and
|
|
|
|
|
`response` as the second argument.
|
|
|
|
|
|
|
|
|
|
Checkout |coc-actions| for available actions.
|
|
|
|
|
|
|
|
|
|
CocHasProvider({feature}) *CocHasProvider()*
|
|
|
|
|
|
|
|
|
|
Check if provider exists for specified feature of current buffer.
|
|
|
|
|
Supported features:
|
|
|
|
|
|
|
|
|
|
`rename` `onTypeEdit` `documentLink` `documentColor` `foldingRange`
|
|
|
|
|
`format` `codeAction` `workspaceSymbols` `formatRange` `hover`
|
|
|
|
|
`signature` `documentSymbol` `documentHighlight` `definition`
|
|
|
|
|
`declaration` `typeDefinition` `reference` `implementation` `codeLens`
|
|
|
|
|
`selectionRange`
|
|
|
|
|
|
|
|
|
|
CocTagFunc({pattern}, {flags}, {info}) *CocTagFunc()*
|
|
|
|
|
|
|
|
|
|
Used for vim's 'tagfunc' option, to make tag search by |CTRL-]| use
|
|
|
|
|
coc.nvim as provider, tag search would be performed when no result
|
|
|
|
|
from coc.nvim.
|
|
|
|
|
|
|
|
|
|
Make sure your vim support 'tagfunc' by
|
|
|
|
|
>
|
|
|
|
|
:echo exists('&tagfunc')
|
|
|
|
|
<
|
|
|
|
|
*coc#notify*
|
|
|
|
|
coc#notify#close_all() *coc#notify#close_all()*
|
|
|
|
|
|
|
|
|
|
Close all notification windows.
|
|
|
|
|
|
|
|
|
|
coc#notify#do_action([{winid}]) *coc#notify#do_action()*
|
|
|
|
|
|
|
|
|
|
Invoke action for all notification windows, or particular window with
|
|
|
|
|
winid.
|
|
|
|
|
|
|
|
|
|
Use `"notification.preferMenuPicker": true` if you would like to
|
|
|
|
|
choose action on notification shown.
|
|
|
|
|
|
|
|
|
|
coc#notify#copy() *coc#notify#copy()*
|
|
|
|
|
|
|
|
|
|
Copy all content from notifications to system clipboard.
|
|
|
|
|
|
|
|
|
|
coc#notify#show_sources() *coc#notify#show_sources()*
|
|
|
|
|
|
|
|
|
|
Show source name (extension name) in notification windows.
|
|
|
|
|
|
|
|
|
|
coc#notify#keep() *coc#notify#keep()*
|
|
|
|
|
|
|
|
|
|
Stop auto hide timer of notification windows.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
*coc-actions*
|
|
|
|
|
Available Actions ~
|
|
|
|
|
|
|
|
|
|
Acceptable {action} names for |CocAction()| and |CocActionAsync|.
|
|
|
|
|
|
|
|
|
|
"ensureDocument" *CocAction('ensureDocument')*
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Ensure current document is attached to coc.nvim
|
|
|
|
|
|coc-document-attached|, should be used when you need invoke action of
|
|
|
|
|
current document on buffer create.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Return |v:false| when document can't be attached.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
"diagnosticList" *CocAction('diagnosticList')*
|
|
|
|
|
|
|
|
|
|
Get all diagnostic items of the current Neovim session.
|
|
|
|
|
|
|
|
|
|
"diagnosticInfo" *CocAction('diagnosticInfo')*
|
|
|
|
|
|
|
|
|
|
Show diagnostic message at the current position, do not truncate.
|
|
|
|
|
|
|
|
|
|
"diagnosticToggle" [{enable}] *CocAction('diagnosticToggle')*
|
|
|
|
|
|
|
|
|
|
Enable/disable diagnostics on the fly, not work when `displayByAle` is
|
|
|
|
|
enabled. You can toggle by specifying {enable}. {enable} can be 0 or 1
|
|
|
|
|
|
|
|
|
|
"diagnosticPreview" *CocAction('diagnosticPreview')*
|
|
|
|
|
|
|
|
|
|
Show diagnostics under current cursor in preview window.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"diagnosticRefresh" [{bufnr}] *CocAction('diagnosticRefresh')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Force refresh diagnostics for special buffer with {bufnr} or all buffers
|
|
|
|
|
when {bufnr} doesn't exist, returns `v:null` before diagnostics are shown.
|
|
|
|
|
|
|
|
|
|
NOTE: Will refresh in any mode.
|
|
|
|
|
|
|
|
|
|
Useful when `diagnostic.autoRefresh` is `false`.
|
|
|
|
|
|
|
|
|
|
"refreshSource" [{source}] *CocAction('refreshSource')*
|
|
|
|
|
|
|
|
|
|
refresh all sources or a source with a name of {source}.
|
|
|
|
|
|
|
|
|
|
"sourceStat" *CocAction('sourceStat')*
|
|
|
|
|
|
|
|
|
|
get the list of completion source stats for the current buffer.
|
|
|
|
|
|
|
|
|
|
"toggleSource" {source} *CocAction('toggleSource')*
|
|
|
|
|
|
|
|
|
|
enable/disable {source}.
|
|
|
|
|
|
|
|
|
|
"jumpDefinition" [{openCommand}] *CocAction('jumpDefinition')*
|
|
|
|
|
|
|
|
|
|
jump to definition position of the current symbol.
|
|
|
|
|
Return `v:false` when location not found.
|
|
|
|
|
|
|
|
|
|
|coc-list-location| is used when more than one position is available,
|
|
|
|
|
for custom location list, use variable: |g:coc_enable_locationlist|.
|
|
|
|
|
|
|
|
|
|
To always use |coc-list-location|| for locations, use `v:false` for
|
|
|
|
|
{openCommand}.
|
|
|
|
|
|
|
|
|
|
{openCommand}: optional command to open buffer, default to
|
|
|
|
|
`coc.preferences.jumpCommand` in `coc-settings.json`
|
|
|
|
|
|
|
|
|
|
"jumpDeclaration" [{openCommand}] *CocAction('jumpDeclaration')*
|
|
|
|
|
|
|
|
|
|
jump to declaration position of the current symbol.
|
|
|
|
|
Return `v:false` when location not found.
|
|
|
|
|
|
|
|
|
|
same behavior as "jumpDefinition".
|
|
|
|
|
|
|
|
|
|
When {openCommand} is `v:false`, location list would be always used.
|
|
|
|
|
|
|
|
|
|
"jumpImplementation" [{openCommand}] *CocAction('jumpImplementation')*
|
|
|
|
|
|
|
|
|
|
Jump to implementation position of the current symbol.
|
|
|
|
|
Return `v:false` when location not found.
|
|
|
|
|
|
|
|
|
|
same behavior as "jumpDefinition"
|
|
|
|
|
|
|
|
|
|
"jumpTypeDefinition" [{openCommand}] *CocAction('jumpTypeDefinition')*
|
|
|
|
|
|
|
|
|
|
Jump to type definition position of the current symbol.
|
|
|
|
|
Return `v:false` when location not found.
|
|
|
|
|
|
|
|
|
|
same behavior as "jumpDefinition"
|
|
|
|
|
|
|
|
|
|
"jumpReferences" [{openCommand}] *CocAction('jumpReferences')*
|
|
|
|
|
|
|
|
|
|
Jump to references position of the current symbol.
|
|
|
|
|
Return `v:false` when location not found.
|
|
|
|
|
|
|
|
|
|
same behavior as "jumpDefinition"
|
|
|
|
|
|
|
|
|
|
"getHover" *CocAction('getHover')*
|
|
|
|
|
|
|
|
|
|
Get documentation text array on current position, returns array of
|
|
|
|
|
string.
|
|
|
|
|
|
|
|
|
|
"doHover" [{hoverTarget}] *CocAction('doHover')*
|
|
|
|
|
|
|
|
|
|
Show documentation of current symbol, return `v:false` when hover not
|
|
|
|
|
found.
|
|
|
|
|
|
|
|
|
|
{hoverTarget}: optional specification for where to show hover info,
|
|
|
|
|
defaults to `coc.preferences.hoverTarget` in `coc-settings.json`.
|
|
|
|
|
Valid options: ["preview", "echo", "float"]
|
|
|
|
|
|
|
|
|
|
"definitionHover" [{hoverTarget}] *CocAction('definitionHover')*
|
|
|
|
|
|
|
|
|
|
Same as |CocAction('doHover')|, but includes definition contents from
|
|
|
|
|
definition provider when possible.
|
|
|
|
|
|
|
|
|
|
"references" [{excludeDeclaration}] *CocAction('references')*
|
|
|
|
|
|
|
|
|
|
Get references location list, declaration locations are included by
|
|
|
|
|
default.
|
|
|
|
|
|
|
|
|
|
"showSignatureHelp" *CocAction('showSignatureHelp')*
|
|
|
|
|
|
|
|
|
|
Echo signature help of current function, return `v:false` when
|
|
|
|
|
signature not found. You may want to set up an autocmd like this: >
|
|
|
|
|
|
|
|
|
|
autocmd User CocJumpPlaceholder call
|
|
|
|
|
\ CocActionAsync('showSignatureHelp')
|
|
|
|
|
<
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"getCurrentFunctionSymbol" *CocAction('getCurrentFunctionSymbol')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Return the function string that current cursor in.
|
|
|
|
|
|
|
|
|
|
"documentSymbols" [{bufnr}] *CocAction('documentSymbols')*
|
|
|
|
|
|
|
|
|
|
Get a list of symbols of current buffer or specific {bufnr}.
|
|
|
|
|
|
|
|
|
|
"rename" *CocAction('rename')*
|
|
|
|
|
|
|
|
|
|
Rename the symbol under the cursor position, user will be prompted for
|
|
|
|
|
a new name.
|
|
|
|
|
|
|
|
|
|
Note: coc.nvim supports rename for disk files, but your language server
|
|
|
|
|
may not.
|
|
|
|
|
|
|
|
|
|
"refactor" *CocAction('refactor')*
|
|
|
|
|
|
|
|
|
|
Open refactor windows with current symbol as activated cursor ranges.
|
|
|
|
|
Check |coc-config-cursors| and |coc-config-refactor| for related
|
|
|
|
|
configuration.
|
|
|
|
|
|
|
|
|
|
Use <CR> to open buffer at current position in split window.
|
|
|
|
|
Use <Tab> to show action menu which have tab open and remove actions.
|
|
|
|
|
|
|
|
|
|
"format" *CocAction('format')*
|
|
|
|
|
|
|
|
|
|
Format current buffer using the language server.
|
|
|
|
|
Return `v:false` when format failed.
|
|
|
|
|
|
|
|
|
|
"formatSelected" [{mode}] *CocAction('formatSelected')*
|
|
|
|
|
|
|
|
|
|
Format the selected range, {mode} should be one of visual mode: `v` ,
|
|
|
|
|
`V`, `char`, `line`.
|
|
|
|
|
|
|
|
|
|
When {mode} is omitted, it should be called using |formatexpr|.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"selectionRanges" *CocAction('selectionRanges')*
|
|
|
|
|
|
|
|
|
|
Get selection ranges of current position from language server.
|
|
|
|
|
|
|
|
|
|
"services" *CocAction('services')*
|
|
|
|
|
|
|
|
|
|
Get an information list for all services.
|
|
|
|
|
|
|
|
|
|
"toggleService" {serviceId} *CocAction('toggleService')*
|
|
|
|
|
|
|
|
|
|
Start or stop a service.
|
|
|
|
|
|
|
|
|
|
"codeAction" [{mode}] [{only}] *CocAction('codeAction')*
|
|
|
|
|
|
|
|
|
|
Prompt for a code action and do it.
|
|
|
|
|
|
|
|
|
|
{mode} could be `line` or `cursor` or result of |visualmode()|,
|
|
|
|
|
current buffer range is used when it's empty string.
|
|
|
|
|
|
|
|
|
|
{only} can be title of a codeAction or list of CodeActionKind.
|
|
|
|
|
|
|
|
|
|
"codeActionRange" {start} {end} [{kind}] *CocAction('codeActionRange')*
|
|
|
|
|
|
|
|
|
|
Run code action for range.
|
|
|
|
|
|
|
|
|
|
{start} start line number of range.
|
|
|
|
|
{end} end line number of range.
|
|
|
|
|
{kind} code action kind, see |CocAction('codeActions')| for available
|
|
|
|
|
action kind.
|
|
|
|
|
|
|
|
|
|
"codeLensAction" *CocAction('codeLensAction')*
|
|
|
|
|
|
|
|
|
|
Invoke the command for codeLens of current line (or the line that
|
|
|
|
|
contains codeLens just above). Prompt would be shown when multiple
|
|
|
|
|
actions are available.
|
|
|
|
|
|
|
|
|
|
"commands" *CocAction('commands')*
|
|
|
|
|
|
|
|
|
|
Get a list of available service commands for the current buffer.
|
|
|
|
|
|
|
|
|
|
"runCommand" [{name}] [...{args}] *CocAction('runCommand')*
|
|
|
|
|
|
|
|
|
|
Run a global command provided by the language server. If {name} is not
|
|
|
|
|
provided, a prompt with a list of commands is shown to be selected.
|
|
|
|
|
|
|
|
|
|
{args} are passed as arguments of command.
|
|
|
|
|
|
|
|
|
|
You can bind your custom command like so: >
|
|
|
|
|
|
|
|
|
|
command! -nargs=0 OrganizeImport
|
|
|
|
|
\ :call CocActionAsync('runCommand', 'tsserver.organizeImports')
|
|
|
|
|
|
|
|
|
|
"fold" {{kind}} *CocAction('fold')*
|
|
|
|
|
|
|
|
|
|
Fold the current buffer, optionally use {kind} for filtering folds,
|
|
|
|
|
{kind} could be either 'comment', 'imports' or 'region'
|
|
|
|
|
|
|
|
|
|
Return `v:false` when failed.
|
|
|
|
|
|
|
|
|
|
"highlight" *CocAction('highlight')*
|
|
|
|
|
|
|
|
|
|
Highlight the symbols under the cursor.
|
|
|
|
|
|
|
|
|
|
"openLink" [{command}] *CocAction('openlink')*
|
|
|
|
|
|
|
|
|
|
Open a link under the cursor with {command}.
|
|
|
|
|
{command} default to `edit`.
|
|
|
|
|
|
|
|
|
|
File and URL links are supported, return `v:false` when failed.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Uri under cursor is searched when no link returned from documentLink
|
|
|
|
|
provider.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
"extensionStats" *CocAction('extensionStats')*
|
|
|
|
|
|
|
|
|
|
Get all extension states as a list. Including `id`, `root` and
|
|
|
|
|
`state`.
|
|
|
|
|
|
|
|
|
|
State could be `disabled`, `activated` and `loaded`.
|
|
|
|
|
|
|
|
|
|
"toggleExtension" {id} *CocAction('toggleExtension')*
|
|
|
|
|
|
|
|
|
|
Enable/disable an extension.
|
|
|
|
|
|
|
|
|
|
"uninstallExtension" {id} *CocAction('uninstallExtension')*
|
|
|
|
|
|
|
|
|
|
Uninstall an extension.
|
|
|
|
|
|
|
|
|
|
"reloadExtension" {id} *CocAction('reloadExtension')*
|
|
|
|
|
|
|
|
|
|
Reload an activated extension.
|
|
|
|
|
|
|
|
|
|
"activeExtension" {id} *CocAction('activeExtension')*
|
|
|
|
|
|
|
|
|
|
Activate extension of {id}.
|
|
|
|
|
|
|
|
|
|
"deactivateExtension" {id} *CocAction('deactivateExtension')*
|
|
|
|
|
|
|
|
|
|
Deactivate extension of {id}.
|
|
|
|
|
|
|
|
|
|
"pickColor" *CocAction('pickColor')*
|
|
|
|
|
|
|
|
|
|
Change the color at the current cursor position.
|
|
|
|
|
|
|
|
|
|
Requires language server support for the document color request.
|
|
|
|
|
|
|
|
|
|
Note: only works on mac or when you have python support on Vim and
|
|
|
|
|
have the gtk module installed.
|
|
|
|
|
|
|
|
|
|
"colorPresentation" *CocAction('colorPresentation')*
|
|
|
|
|
|
|
|
|
|
Change the color presentation at the current color position.
|
|
|
|
|
|
|
|
|
|
Requires a language server that supports color representation
|
|
|
|
|
requests.
|
|
|
|
|
|
|
|
|
|
"codeActions" [{mode}] [{only}] *CocAction('codeActions')*
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Get codeActions list of current document.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
{mode} can be result of |visualmode()| for visual selected
|
|
|
|
|
range. When it's falsy value, current file is used as range.
|
|
|
|
|
|
|
|
|
|
{only} can be array of codeActionKind, possible values including:
|
|
|
|
|
- 'refactor': Base kind for refactoring actions
|
|
|
|
|
- 'quickfix': base kind for quickfix actions
|
|
|
|
|
- 'refactor.extract': Base kind for refactoring extraction actions
|
|
|
|
|
- 'refactor.inline': Base kind for refactoring inline actions
|
|
|
|
|
- 'refactor.rewrite': Base kind for refactoring rewrite actions
|
|
|
|
|
- 'source': Base kind for source actions
|
|
|
|
|
- 'source.organizeImports': Base kind for an organize imports source
|
|
|
|
|
action
|
|
|
|
|
- 'source.fixAll': Base kind for auto-fix source actions
|
|
|
|
|
|
|
|
|
|
{only} can also be string, which means filter by tilte of codeAction.
|
|
|
|
|
|
|
|
|
|
"organizeImport" *CocAction('organizeImport')*
|
|
|
|
|
|
|
|
|
|
Run organize import codeAction for current buffer.
|
|
|
|
|
Show warning when codeAction not found.
|
|
|
|
|
|
|
|
|
|
"fixAll" *CocAction('fixAll')*
|
|
|
|
|
|
|
|
|
|
Run fixAll codeAction for current buffer.
|
|
|
|
|
Show warning when codeAction not found.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"quickfixes" [{visualmode}] *CocAction('quickfixes')*
|
|
|
|
|
|
|
|
|
|
Get quickfix codeActions of current buffer.
|
|
|
|
|
|
|
|
|
|
Add {visualmode} as second argument get quickfix actions with range of
|
|
|
|
|
latest |visualmode()|
|
|
|
|
|
|
|
|
|
|
"doCodeAction" {codeAction} *CocAction('doCodeAction')*
|
|
|
|
|
|
|
|
|
|
Do a codeAction.
|
|
|
|
|
|
|
|
|
|
"doQuickfix" *CocAction('doQuickfix')*
|
|
|
|
|
|
|
|
|
|
Do the first preferred quickfix action on current line.
|
|
|
|
|
|
|
|
|
|
Throw error when no quickfix action found.
|
|
|
|
|
|
|
|
|
|
"addRanges" {ranges} *CocAction('addRanges')*
|
|
|
|
|
|
|
|
|
|
Ranges must be provided as array of range type: https://git.io/fjiEG
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"getWordEdit" *CocAction('getWordEdit')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Get workspaceEdit of current word, language server used when possible,
|
|
|
|
|
extract word from current buffer as fallback.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"getWorkspaceSymbols" {input} *CocAction('getWorkspaceSymbols')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Get workspace symbols from {input}.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"resolveWorkspaceSymbol" {symbol} *CocAction('resolveWorkspaceSymbol')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Resolve location for workspace {symbol}.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"diagnosticToggleBuffer" [{bufnr}] [{enable}] *CocAction('diagnosticToggleBuffer')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Toggle diagnostics for specific buffer, current buffer is used when
|
|
|
|
|
{bufnr} not provided. 0 for current buffer
|
|
|
|
|
You can toggle by specifying {enable}. {enable} can be 0 or 1
|
|
|
|
|
|
|
|
|
|
Note: this will only affect diagnostics shown in the UI, list of all
|
|
|
|
|
diagnostics won't change.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"showOutline" [{keep}] *CocAction('showOutline')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Show |coc-outline| for current buffer. Does nothing when outline
|
|
|
|
|
window already shown for current buffer.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
{keep} override `"outline.keepWindow"` configuration when specified.
|
|
|
|
|
Could be 0 or 1.
|
|
|
|
|
|
|
|
|
|
Returns after window is shown (document symbol request is still in
|
|
|
|
|
progress).
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"hideOutline" *CocAction('hideOutline')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Close |coc-outline| on current tab. Throws vim error when it can't
|
2022-05-18 13:29:28 -04:00
|
|
|
|
be closed by vim.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"incomingCalls" [{CallHierarchyItem}] *CocAction('incomingCalls')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Retrieve incoming calls from {CallHierarchyItem} or current position
|
|
|
|
|
when not provided.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"outgoingCalls" [{CallHierarchyItem}] *CocAction('outgoingCalls')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Retrieve outgoing calls from {CallHierarchyItem} or current position
|
|
|
|
|
when not provided.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"showIncomingCalls" *CocAction('showIncomingCalls')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
Show incoming calls of current function with |coc-tree|, see
|
|
|
|
|
|coc-callHierarchy|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"showOutgoingCalls" *CocAction('showOutgoingCalls')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Show outgoing calls of current function with |coc-tree|.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"semanticHighlight" *CocAction('semanticHighlight')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Request semantic tokens highlight for current buffer.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
"inspectSemanticToken" *CocAction('inspectSemanticToken')*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Inspect semantic token information at cursor position.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
COMMANDS *coc-commands*
|
|
|
|
|
|
|
|
|
|
:CocStart *:CocStart*
|
|
|
|
|
|
|
|
|
|
Start the coc.nvim server, do nothing if it's already started.
|
|
|
|
|
|
|
|
|
|
:CocRestart *:CocRestart*
|
|
|
|
|
|
|
|
|
|
Restart coc.nvim service.
|
|
|
|
|
|
|
|
|
|
Use this command when you want coc to start all over again.
|
|
|
|
|
|
|
|
|
|
:CocDisable *:CocDisable*
|
|
|
|
|
|
|
|
|
|
Disable handling vim events.
|
|
|
|
|
|
|
|
|
|
:CocEnable *:CocEnable*
|
|
|
|
|
|
|
|
|
|
Enable handling vim events.
|
|
|
|
|
|
|
|
|
|
:CocConfig *:CocConfig*
|
|
|
|
|
|
|
|
|
|
Edit the user config file `.vim/coc-settings.json` in
|
|
|
|
|
|coc#util#get_config_home()|
|
|
|
|
|
|
|
|
|
|
:CocLocalConfig *:CocLocalConfig*
|
|
|
|
|
|
|
|
|
|
Edit or create `.vim/coc-settings.json` in current workspace folder.
|
|
|
|
|
|
|
|
|
|
:CocInstall [{option}] {name} ... *:CocInstall*
|
|
|
|
|
|
|
|
|
|
Install one or more coc extensions.
|
|
|
|
|
|
|
|
|
|
{option}: could be `-sync` for use blocked process to download instead
|
|
|
|
|
of terminal.
|
|
|
|
|
|
|
|
|
|
Examples: >
|
|
|
|
|
|
|
|
|
|
" Install latest coc-omni
|
|
|
|
|
:CocInstall coc-omni
|
|
|
|
|
" Install coc-omni 1.0.0
|
|
|
|
|
:CocInstall coc-omni@1.0.0
|
|
|
|
|
" Install snippet extension from github
|
|
|
|
|
:CocInstall https://github.com/dsznajder/vscode-es7-javascript-react-snippets
|
|
|
|
|
>
|
|
|
|
|
:CocUninstall {name} *:CocUninstall*
|
|
|
|
|
|
|
|
|
|
Uninstall an extension, use <tab> to complete the extension
|
|
|
|
|
name.
|
|
|
|
|
|
|
|
|
|
:CocUpdate *:CocUpdate*
|
|
|
|
|
|
|
|
|
|
Update all coc extensions to the latest version.
|
|
|
|
|
|
|
|
|
|
:CocUpdateSync *:CocUpdateSync*
|
|
|
|
|
|
|
|
|
|
Block version of update coc extensions.
|
|
|
|
|
|
|
|
|
|
:CocRebuild *:CocRebuild*
|
|
|
|
|
|
|
|
|
|
Run `npm rebuild` for coc extensions.
|
|
|
|
|
|
|
|
|
|
May be required when environment nodejs get upgraded.
|
|
|
|
|
|
|
|
|
|
:CocCommand {name} [{args}] ... *:CocCommand*
|
|
|
|
|
|
|
|
|
|
Run a command contributed by extensions, use `<tab>` for name
|
|
|
|
|
completion.
|
|
|
|
|
|
|
|
|
|
:CocOpenLog *:CocOpenLog*
|
|
|
|
|
|
|
|
|
|
Open log file of coc.nvim.
|
|
|
|
|
|
|
|
|
|
Use environmental variable `NVIM_COC_LOG_FILE` for fixed log file.
|
|
|
|
|
Note: the log would be cleared when coc.nvim started.
|
|
|
|
|
|
|
|
|
|
Use environment variable `NVIM_COC_LOG_LEVEL` to change log level
|
|
|
|
|
(default 'info', could be 'all', 'trace', 'debug', 'info',
|
|
|
|
|
'warn', 'error', 'off').
|
|
|
|
|
Use shell command: >
|
|
|
|
|
|
|
|
|
|
export NVIM_COC_LOG_LEVEL=debug
|
|
|
|
|
<
|
|
|
|
|
or add: >
|
|
|
|
|
|
|
|
|
|
let $NVIM_COC_LOG_LEVEL='debug'
|
|
|
|
|
<
|
|
|
|
|
to the beginning of your `.vimrc`
|
|
|
|
|
|
|
|
|
|
:CocInfo *:CocInfo*
|
|
|
|
|
|
|
|
|
|
Show version and log information in a split window, useful for
|
|
|
|
|
submitting a bug report.
|
|
|
|
|
|
|
|
|
|
:CocDiagnostics [height] *:CocDiagnostics*
|
|
|
|
|
|
|
|
|
|
Open vim's |location-list| with diagnostics of current buffer.
|
|
|
|
|
|
|
|
|
|
:CocSearch *:CocSearch*
|
|
|
|
|
|
|
|
|
|
Perform search by ripgrep https://github.com/BurntSushi/ripgrep,
|
|
|
|
|
refactor window would be opened.
|
|
|
|
|
|
|
|
|
|
Note: the search is performed on your files, so normally you should
|
|
|
|
|
save your buffers before invoke this command.
|
|
|
|
|
|
|
|
|
|
Common arguments for ripgrep:~
|
|
|
|
|
|
|
|
|
|
`-e` `--regexp`: treat search pattern as regexp.
|
|
|
|
|
`-F` `--fixed-strings`: treat search pattern as fixed string.
|
|
|
|
|
`-L` `--follow`: follow symbolic links while traversing directories.
|
|
|
|
|
`-g` `--glob` {GLOB}: Include or exclude files and directories for
|
|
|
|
|
searching that match the given glob.
|
|
|
|
|
`--hidden`: Search hidden files and directories.
|
|
|
|
|
`--no-ignore-vcs`: Don't respect version control ignore files
|
|
|
|
|
(.gitignore, etc.).
|
|
|
|
|
`--no-ignore`: Don't respect ignore files (.gitignore, .ignore, etc.).
|
|
|
|
|
`-w` `--word-regexp`: Only show matches surrounded by word boundaries.
|
|
|
|
|
`-S` `--smart-case`: Searches case insensitively if the pattern is all
|
|
|
|
|
lowercase. Search case sensitively otherwise.
|
|
|
|
|
`--no-config`: Never read configuration files.
|
|
|
|
|
`-x` `--line-regexp`: Only show matches surrounded by line boundaries.
|
|
|
|
|
|
|
|
|
|
Use `:man 1 rg` in your terminal for more details.
|
|
|
|
|
|
|
|
|
|
Note: By default, hidden files and directories are skipped.
|
|
|
|
|
|
|
|
|
|
Note: By default, vcs ignore files including `.gitignore` and
|
|
|
|
|
`.ignore` are respected
|
|
|
|
|
|
|
|
|
|
Escape arguments:~
|
|
|
|
|
|
|
|
|
|
|<f-args>| is used to convert command line arguments to arguments of
|
|
|
|
|
rg, which means you have to escape space for single argument. For
|
|
|
|
|
example, if you want to search `import { Neovim` , you have to use:
|
|
|
|
|
>
|
|
|
|
|
:CocSearch import\ \{\ Neovim
|
|
|
|
|
<
|
|
|
|
|
The escape for `{` is required because rg use regexp be default, or:
|
|
|
|
|
>
|
|
|
|
|
:CocSearch -F import\ {\ Neovim
|
|
|
|
|
<
|
|
|
|
|
for strict match.
|
|
|
|
|
|
|
|
|
|
Change and save:~
|
|
|
|
|
|
|
|
|
|
Refactor session is started with searched patterns highlighted, just
|
|
|
|
|
change the text and save refactor buffer to make changes across all
|
|
|
|
|
related files. You can make any kind of changes, including add lines
|
|
|
|
|
and remove lines.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
:CocWatch [extension] *:CocWatch*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Watch loaded [extension] for reload on file change, use <tab> for
|
|
|
|
|
complete extension id.
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
:CocOutline *:CocOutline*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Invoke |CocAction('showOutline')| by notification.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
AUTOCMD *coc-autocmds*
|
|
|
|
|
|
|
|
|
|
*CocLocationsChange*
|
|
|
|
|
|
|
|
|
|
:autocmd User CocLocationsChange {command}
|
|
|
|
|
|
|
|
|
|
For building a custom view of locations, set
|
|
|
|
|
|g:coc_enable_locationlist| to 0 and use this autocmd with with
|
|
|
|
|
|g:coc_jump_locations|
|
|
|
|
|
|
|
|
|
|
For example, to disable auto preview of location list, use:
|
|
|
|
|
>
|
|
|
|
|
let g:coc_enable_locationlist = 0
|
|
|
|
|
autocmd User CocLocationsChange CocList --normal location
|
|
|
|
|
<
|
|
|
|
|
*CocNvimInit*
|
|
|
|
|
:autocmd User CocNvimInit {command}
|
|
|
|
|
|
|
|
|
|
Triggered after the coc services have started.
|
|
|
|
|
|
|
|
|
|
If you want to trigger an action of coc after Vim has started, this
|
|
|
|
|
autocmd should be used because coc is always started asynchronously.
|
|
|
|
|
|
|
|
|
|
*CocStatusChange*
|
|
|
|
|
|
|
|
|
|
:autocmd User CocStatusChange {command}
|
|
|
|
|
|
|
|
|
|
Triggered after `g:coc_status` changed, can be used for refresh
|
|
|
|
|
stautsline.
|
|
|
|
|
|
|
|
|
|
*CocDiagnosticChange*
|
|
|
|
|
|
|
|
|
|
:autocmd User CocDiagnosticChange {command}
|
|
|
|
|
|
|
|
|
|
Triggered after the diagnostic status has changed.
|
|
|
|
|
|
|
|
|
|
Could be used for updating the statusline.
|
|
|
|
|
|
|
|
|
|
*CocJumpPlaceholder*
|
|
|
|
|
|
|
|
|
|
:autocmd User CocJumpPlaceholder {command}
|
|
|
|
|
|
|
|
|
|
Triggered after a jump to a placeholder. Can be used for
|
|
|
|
|
showing signature help like: >
|
|
|
|
|
|
|
|
|
|
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
|
|
|
|
|
<
|
|
|
|
|
*CocOpenFloat*
|
|
|
|
|
|
|
|
|
|
:autocmd User CocOpenFloat {command}
|
|
|
|
|
|
|
|
|
|
Triggered when a floating window is opened. The window is not
|
|
|
|
|
focused, use |g:coc_last_float_win| to get window id.
|
|
|
|
|
|
|
|
|
|
*CocOpenFloatPrompt*
|
|
|
|
|
|
|
|
|
|
:autocmd User CocOpenFloatPrompt {command}
|
|
|
|
|
|
|
|
|
|
Triggered when a floating prompt window is opened (triggered after
|
|
|
|
|
CocOpenFloat).
|
|
|
|
|
|
|
|
|
|
*CocTerminalOpen*
|
|
|
|
|
:autocmd User CocTerminalOpen {command}
|
|
|
|
|
|
|
|
|
|
Triggered when the terminal is shown, can be used for adjusting the
|
|
|
|
|
window height.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
HIGHLIGHTS *coc-highlights*
|
|
|
|
|
|
|
|
|
|
To customize a highlight, simply use |:highlight| command in your vimrc, like:
|
|
|
|
|
>
|
|
|
|
|
" make error texts have a red color
|
|
|
|
|
highlight CocErrorHighlight ctermfg=Red guifg=#ff0000
|
|
|
|
|
<
|
|
|
|
|
Type |:highlight| command with group name to check current highlight.
|
|
|
|
|
|
|
|
|
|
Note: don't use `:hi default` for overwriting the highlights.
|
|
|
|
|
|
|
|
|
|
Note: user defined highlight commands should appear after the |:colorscheme|
|
|
|
|
|
command and use |ColorScheme| autocmd to make sure customized highlights works
|
|
|
|
|
after color scheme change.
|
|
|
|
|
|
|
|
|
|
Markdown related~
|
|
|
|
|
|
|
|
|
|
*CocBold* for bold text.
|
|
|
|
|
*CocItalic* for italic text.
|
|
|
|
|
*CocUnderline* for underlined text.
|
|
|
|
|
*CocStrikeThrough* for strikethrough text, like usage of deprecated API.
|
|
|
|
|
*CocMarkdownCode* for inline code in markdown content.
|
|
|
|
|
*CocMarkdownHeader* for markdown header in floating window/popup.
|
|
|
|
|
*CocMarkdownLink* for markdown link text in floating window/popup.
|
|
|
|
|
|
|
|
|
|
Diagnostics related~
|
2022-05-27 03:57:56 -04:00
|
|
|
|
*coc-highlights-diagnostics*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
*CocFadeOut* for faded out text, such as for highlighting unnecessary code.
|
|
|
|
|
*CocErrorSign* for error signs.
|
|
|
|
|
*CocWarningSign* for warning signs.
|
|
|
|
|
*CocInfoSign* for information signs.
|
|
|
|
|
*CocHintSign* for hint signs.
|
|
|
|
|
*CocErrorVirtualText* for error virtual text.
|
|
|
|
|
*CocWarningVirtualText* for warning virtual text.
|
|
|
|
|
*CocInfoVirtualText* for information virtual text.
|
|
|
|
|
*CocHintVirtualText* for hint virtual text.
|
|
|
|
|
*CocErrorHighlight* for error code range.
|
|
|
|
|
*CocWarningHighlight* for warning code range.
|
|
|
|
|
*CocInfoHighlight* for information code range.
|
|
|
|
|
*CocHintHighlight* for hint code range.
|
|
|
|
|
*CocDeprecatedHighlight* for deprecated code range, links to
|
|
|
|
|
|CocStrikeThrough| by default.
|
|
|
|
|
*CocUnusedHighlight* for unnecessary code range, links to |CocFadeOut| by
|
|
|
|
|
default.
|
|
|
|
|
*CocErrorLine* line highlight of sign which contains error.
|
|
|
|
|
*CocWarningLine* line highlight of sign which contains warning.
|
|
|
|
|
*CocInfoLine* line highlight of sign which information.
|
|
|
|
|
*CocHintLine* line highlight of sign which contains hint.
|
|
|
|
|
|
|
|
|
|
Document highlight related~
|
2022-05-27 03:57:56 -04:00
|
|
|
|
*coc-highlights-document*
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
Highlights used for highlighting same symbols in the buffer at the current
|
|
|
|
|
cursor position.
|
|
|
|
|
|
|
|
|
|
*CocHighlightText* default symbol highlight.
|
|
|
|
|
*CocHighlightRead* for `Read` kind of document symbol.
|
|
|
|
|
*CocHighlightWrite* for `Write` kind of document symbol.
|
|
|
|
|
|
|
|
|
|
Float window/popup related~
|
|
|
|
|
|
|
|
|
|
*CocFloating* default highlight group of floating windows/popups.
|
|
|
|
|
Default link to |NormalFloat| on neovim and|`Pmenu| on vim.
|
|
|
|
|
*CocErrorFloat* for errors in floating windows/popups.
|
|
|
|
|
*CocWarningFloat* for warnings in floating windows/popups.
|
|
|
|
|
*CocInfoFloat* for infos in floating windows/popups.
|
|
|
|
|
*CocHintFloat* for hints in floating windows/popups.
|
|
|
|
|
|
|
|
|
|
Notification window/popup related~
|
|
|
|
|
|
|
|
|
|
CocNotification *CocNotification*
|
|
|
|
|
|
|
|
|
|
*CocNotificationProgress* for progress line in progress notification.
|
|
|
|
|
*CocNotificationButton* for action buttons in notification window.
|
|
|
|
|
*CocNotificationError* for highlight border of error notification.
|
|
|
|
|
*CocNotificationWarning* for highlight border of warning notification.
|
|
|
|
|
*CocNotificationInfo* for highlight border of info notification.
|
|
|
|
|
|
|
|
|
|
List related~
|
|
|
|
|
|
|
|
|
|
*CocSelectedText* for sign text of selected lines.
|
|
|
|
|
*CocSelectedLine* for line highlight of selected lines.
|
|
|
|
|
*CocListMode* for mode in statusline of CocList.
|
|
|
|
|
*CocListPath* for current cwd in statusline of CocList.
|
|
|
|
|
|
|
|
|
|
Tree view related~
|
|
|
|
|
|
|
|
|
|
CocTree *CocTree*
|
|
|
|
|
|
|
|
|
|
*CocTreeTitle* for title in tree view.
|
|
|
|
|
*CocTreeDescription* for description beside label.
|
|
|
|
|
*CocTreeOpenClose* for open and close icon in tree view.
|
|
|
|
|
*CocTreeSelected* for highlight lines contains selected node.
|
|
|
|
|
|
|
|
|
|
Symbol icons~
|
|
|
|
|
|
|
|
|
|
CocSymbol *CocSymbol*
|
|
|
|
|
|
|
|
|
|
Highlight groups for symbol icons, including:
|
|
|
|
|
|
|
|
|
|
*CocSymbolFile*
|
|
|
|
|
*CocSymbolModule*
|
|
|
|
|
*CocSymbolNamespace*
|
|
|
|
|
*CocSymbolPackage*
|
|
|
|
|
*CocSymbolClass*
|
|
|
|
|
*CocSymbolMethod*
|
|
|
|
|
*CocSymbolProperty*
|
|
|
|
|
*CocSymbolField*
|
|
|
|
|
*CocSymbolConstructor*
|
|
|
|
|
*CocSymbolEnum*
|
|
|
|
|
*CocSymbolInterface*
|
|
|
|
|
*CocSymbolFunction*
|
|
|
|
|
*CocSymbolVariable*
|
|
|
|
|
*CocSymbolConstant*
|
|
|
|
|
*CocSymbolString*
|
|
|
|
|
*CocSymbolNumber*
|
|
|
|
|
*CocSymbolBoolean*
|
|
|
|
|
*CocSymbolArray*
|
|
|
|
|
*CocSymbolObject*
|
|
|
|
|
*CocSymbolKey*
|
|
|
|
|
*CocSymbolNull*
|
|
|
|
|
*CocSymbolEnumMember*
|
|
|
|
|
*CocSymbolStruct*
|
|
|
|
|
*CocSymbolEvent*
|
|
|
|
|
*CocSymbolOperator*
|
|
|
|
|
*CocSymbolTypeParameter*
|
|
|
|
|
*CocSymbolDefault*
|
|
|
|
|
|
|
|
|
|
Note: Use configuration `suggest.completionItemKindLabels` for customized icon
|
|
|
|
|
characters.
|
|
|
|
|
|
|
|
|
|
Others~
|
|
|
|
|
|
2022-05-19 10:14:37 -04:00
|
|
|
|
*CocSearch* highlight group for matched characters in list.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
*CocDisabled* highlight for disabled items, eg: menu item.
|
|
|
|
|
*CocCodeLens* for virtual text of codeLens.
|
|
|
|
|
*CocCursorRange* for highlight of activated cursors ranges.
|
|
|
|
|
*CocLinkedEditing* for highlight of activated linked editing ranges.
|
|
|
|
|
*CocHoverRange* for range of current hovered symbol.
|
2022-05-19 10:14:37 -04:00
|
|
|
|
*CocMenuSel* for current menu item in menu dialog.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
*CocSelectedRange* for highlight ranges of outgoing calls.
|
|
|
|
|
*CocSnippetVisual* for highlight snippet placeholders.
|
|
|
|
|
*CocInlayHint* for highlight inlay hint virtual text block, default linked to
|
|
|
|
|
|CocHintSign|
|
|
|
|
|
|
|
|
|
|
*CocSem*
|
|
|
|
|
|
|
|
|
|
Semantic highlight groups are starts with 'CocSem' which links to related
|
|
|
|
|
|nvim-treesitter| highlight groups when possible and fallback to builtin
|
|
|
|
|
highlight groups, use variable |g:coc_default_semantic_highlight_groups| to
|
|
|
|
|
disable creation of these highlight groups.
|
|
|
|
|
|
|
|
|
|
Currently only semantic tokens types and `deprecated` modifier have default
|
2022-05-27 03:57:56 -04:00
|
|
|
|
highlight groups.
|
|
|
|
|
|
|
|
|
|
You need create highlight groups for highlight other modifiers and/or specific
|
|
|
|
|
modifier with type, for example:
|
2022-05-18 13:29:28 -04:00
|
|
|
|
>
|
|
|
|
|
" Add highlights for defaultLibrary modifier
|
|
|
|
|
hi link CocSemDefaultLibrary TSOtherDefaultLibrary
|
|
|
|
|
hi link CocSemDefaultLibraryClass TSTypeDefaultLibrary
|
|
|
|
|
hi link CocSemDefaultLibraryInterface TSTypeDefaultLibrary
|
|
|
|
|
hi link CocSemDefaultLibraryEnum TSTypeDefaultLibrary
|
|
|
|
|
hi link CocSemDefaultLibraryType TSTypeDefaultLibrary
|
|
|
|
|
hi link CocSemDefaultLibraryNamespace TSTypeDefaultLibrary
|
|
|
|
|
|
|
|
|
|
" Add highlights for declaration modifier
|
|
|
|
|
hi link CocSemDeclaration TSOtherDeclaration
|
|
|
|
|
hi link CocSemDeclarationClass TSTypeDeclaration
|
|
|
|
|
hi link CocSemDeclarationInterface TSTypeDeclaration
|
|
|
|
|
hi link CocSemDeclarationEnum TSTypeDeclaration
|
|
|
|
|
hi link CocSemDeclarationType TSTypeDeclaration
|
|
|
|
|
hi link CocSemDeclarationNamespace TSTypeDeclaration
|
|
|
|
|
<
|
|
|
|
|
The modifier highlight groups have higher priority.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
TREE SUPPORT *coc-tree*
|
|
|
|
|
|
|
|
|
|
Tree view is used for render outline and call hierarchy, following features
|
|
|
|
|
are supported:
|
|
|
|
|
|
|
|
|
|
- Data update while keep tree node open/close state.
|
|
|
|
|
- Auto refresh on load error.
|
|
|
|
|
- Click open/close icon to toggle collapse state.
|
|
|
|
|
- Click node to invoke default command.
|
|
|
|
|
- Show tooltip in float window on |CursorHold| when possible.
|
|
|
|
|
- Key-mappings support |coc-tree-mappings|
|
|
|
|
|
- Optional multiple selection.
|
|
|
|
|
- Optional node reveal support.
|
|
|
|
|
- Optional fuzzy filter support.
|
|
|
|
|
- Provide api `window.createTreeView` for extensions.
|
|
|
|
|
|
|
|
|
|
Check |coc-config-tree| for related configurations.
|
|
|
|
|
|
|
|
|
|
The filetype is `'coctree'`, which can be used to overwrite buffer and window
|
|
|
|
|
options.
|
|
|
|
|
|
|
|
|
|
Use variable |w:cocViewId| to detect the kind of tree.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
TREE KEY MAPPINGS *coc-tree-mappings*
|
|
|
|
|
|
|
|
|
|
Default key-mappings are provided for 'coctree' buffer, which can be changed
|
|
|
|
|
by configuration |coc-config-tree|.
|
|
|
|
|
|
|
|
|
|
<space> - Select/unselect item, configured by `"tree.key.toggleSelection"`.
|
|
|
|
|
<tab> - Invoke actions of current item, configured by `"tree.key.actions"`.
|
|
|
|
|
<esc> - Close tree window, configured by `"tree.key.close"`.
|
|
|
|
|
<cr> - Invoke command of current item, configured by `"tree.key.invoke"`.
|
|
|
|
|
<C-o> - Move cursor to original window.
|
|
|
|
|
f - Activate filter, configured by `"tree.key.activeFilter"`.
|
|
|
|
|
t - Trigger key to toggle expand state of tree node, configured by
|
|
|
|
|
`tree.key.toggle`.
|
|
|
|
|
M - Collapse all tree node, configured by `"tree.key.collapseAll"`.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
TREE FILTER *coc-tree-filter*
|
|
|
|
|
|
|
|
|
|
Filter mode is used for search for specific node by fuzzy filter, invoke the
|
|
|
|
|
key configured by `"tree.key.activeFilter"` to activate filter mode.
|
|
|
|
|
|
|
|
|
|
Note: some tree views not have filter mode supported.
|
|
|
|
|
|
|
|
|
|
When filter mode is activated, type normal character to insert filter input
|
|
|
|
|
and following special keys are supported:
|
|
|
|
|
|
|
|
|
|
<bs> - Delete last filter character when possible.
|
|
|
|
|
<C-h> - Delete last filter character when possible.
|
|
|
|
|
<C-u> - Clean up filter text.
|
|
|
|
|
<C-p> - Navigate to previous filter text (stored on command invoke).
|
|
|
|
|
<C-n> - Navigate to next filter text (stored on command invoke).
|
|
|
|
|
<esc> - exit filter mode.
|
|
|
|
|
<C-o> - exit filter mode.
|
|
|
|
|
<up> or `"tree.key.selectPrevious"` - Select previous node.
|
|
|
|
|
<down> or `"tree.key.selectNext"` - Select next node.
|
|
|
|
|
<cr> or `"key.key.invoke"` - Invoke command of selected node.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
LIST SUPPORT *coc-list*
|
|
|
|
|
|
|
|
|
|
Built-in list support to make working with lists of items easier.
|
|
|
|
|
|
|
|
|
|
The following features are supported:
|
|
|
|
|
|
|
|
|
|
- Insert & normal mode.
|
|
|
|
|
- Default key-mappings for insert & normal mode.
|
|
|
|
|
- Customize key-mappings for insert & normal mode.
|
|
|
|
|
- Commands for reopening & doing actions with a previous list.
|
|
|
|
|
- Different match modes.
|
|
|
|
|
- Interactive mode.
|
|
|
|
|
- Auto preview on cursor move.
|
|
|
|
|
- Number select support.
|
|
|
|
|
- Built-in actions for locations.
|
|
|
|
|
- Parse ANSI code.
|
|
|
|
|
- Mouse support.
|
|
|
|
|
- Select actions using <tab>.
|
|
|
|
|
- Multiple selections using <space> in normal mode.
|
|
|
|
|
- Select lines by visual selection.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
LIST COMMAND *coc-list-command*
|
|
|
|
|
|
|
|
|
|
:CocList [{...options}] [{source}] [{...args}] *:CocList*
|
|
|
|
|
|
|
|
|
|
Open coc list of {source}, example: >
|
|
|
|
|
|
|
|
|
|
:CocList --normal location
|
|
|
|
|
<
|
|
|
|
|
For current jump locations.
|
|
|
|
|
|
|
|
|
|
See |coc-list-options| for available list options,
|
|
|
|
|
|
|
|
|
|
Also check |coc-config-list| for list configuration.
|
|
|
|
|
|
|
|
|
|
{args} are sent to source during the fetching of list.
|
|
|
|
|
Press `?` on normal mode to get supported {args} of current
|
|
|
|
|
list.
|
|
|
|
|
|
|
|
|
|
When {source} is empty, lists source is used.
|
|
|
|
|
|
|
|
|
|
:CocListResume [{name}] *:CocListResume*
|
|
|
|
|
|
|
|
|
|
Reopen last opened list, input and cursor position will be preserved.
|
|
|
|
|
|
|
|
|
|
:CocListCancel *:CocListCancel*
|
|
|
|
|
|
|
|
|
|
Close list, useful when the list is not the current window.
|
|
|
|
|
|
|
|
|
|
:CocPrev [{name}] *:CocPrev*
|
|
|
|
|
|
|
|
|
|
Invoke default action for the previous item in the last {name} list.
|
|
|
|
|
|
|
|
|
|
Doesn't open the list window if it's closed.
|
|
|
|
|
|
|
|
|
|
:CocNext [{name}] *:CocNext*
|
|
|
|
|
|
|
|
|
|
Invoke the default action for the next item in the last {name} list.
|
|
|
|
|
|
|
|
|
|
Doesn't open the list window if it's closed.
|
|
|
|
|
|
|
|
|
|
:CocFirst [{name}] *:CocFirst*
|
|
|
|
|
|
|
|
|
|
Invoke default action for first item in the last {name} list.
|
|
|
|
|
|
|
|
|
|
:CocLast [{name}] *:CocLast*
|
|
|
|
|
|
|
|
|
|
Invoke default action for last item in the last {name} list.
|
|
|
|
|
|
|
|
|
|
*coc-list-options*
|
|
|
|
|
Options of CocList command~
|
|
|
|
|
|
|
|
|
|
--top
|
|
|
|
|
Show list as top window.
|
|
|
|
|
|
|
|
|
|
--tab
|
|
|
|
|
Open list in new tabpage.
|
|
|
|
|
|
|
|
|
|
--normal
|
|
|
|
|
|
|
|
|
|
Start list in normal mode, recommended for short list.
|
|
|
|
|
|
|
|
|
|
--no-sort
|
|
|
|
|
Disable sort made by fuzzy score or most recently used, use it when
|
|
|
|
|
it's already sorted.
|
|
|
|
|
|
|
|
|
|
--input={input}
|
|
|
|
|
|
|
|
|
|
Specify the input on session start.
|
|
|
|
|
|
|
|
|
|
--strict
|
|
|
|
|
-S
|
|
|
|
|
Use strict matching instead of fuzzy matching.
|
|
|
|
|
|
|
|
|
|
--regex
|
|
|
|
|
-R
|
|
|
|
|
Use regex matching instead of fuzzy matching.
|
|
|
|
|
|
|
|
|
|
--ignore-case
|
|
|
|
|
|
|
|
|
|
Ignore case when using strict matching or regex matching.
|
|
|
|
|
|
|
|
|
|
--number-select
|
|
|
|
|
-N
|
|
|
|
|
Type a line number to select an item and invoke the default action on
|
|
|
|
|
insert mode. Type `0` to select the 10th line.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--interactive
|
|
|
|
|
-I
|
|
|
|
|
Use interactive mode, list items would be reloaded on input
|
|
|
|
|
change, filter and sort would be done by list implementation.
|
|
|
|
|
|
|
|
|
|
Note: filtering and sorting would be done by underlying task, which
|
|
|
|
|
means options including `--strict`, `--no-sort`, `--regex`,
|
|
|
|
|
`--ignore-case` would not work at all.
|
|
|
|
|
|
|
|
|
|
Note: it requires list implementation have support for interactive
|
|
|
|
|
mode.
|
|
|
|
|
|
|
|
|
|
--auto-preview
|
|
|
|
|
-A
|
|
|
|
|
|
|
|
|
|
Start a preview for the current item on the visible list.
|
|
|
|
|
|
|
|
|
|
--no-quit
|
|
|
|
|
|
|
|
|
|
Not quit list session after do action.
|
|
|
|
|
|
|
|
|
|
Note: you may need to refresh the list for current state.
|
|
|
|
|
|
|
|
|
|
--first
|
|
|
|
|
|
|
|
|
|
Invoke default action for first list item on list open.
|
|
|
|
|
Nothing happens when the list is empty.
|
|
|
|
|
|
|
|
|
|
--reverse
|
|
|
|
|
|
|
|
|
|
Reverse lines order of list.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
LIST CONFIGURATION *coc-list-configuration*
|
|
|
|
|
|
|
|
|
|
Use `coc-settings.json` for configuration of lists.
|
|
|
|
|
|
|
|
|
|
The general configuration of list starts with 'list.'.
|
|
|
|
|
|
|
|
|
|
Checkout |coc-config-list| or type `list.` in your settings file to get completion
|
|
|
|
|
list (requires coc-json installed).
|
|
|
|
|
|
|
|
|
|
For configuration of a specified list, use section that starts with:
|
|
|
|
|
`list.source.{name}`, where `{name}` is the name of list.
|
|
|
|
|
|
|
|
|
|
Change default action:~
|
|
|
|
|
|
|
|
|
|
If you want to use `tabe` as default action of symbols list, you can use:
|
|
|
|
|
>
|
|
|
|
|
// change default action of symbols
|
|
|
|
|
"list.source.symbols.defaultAction": "tabe"
|
|
|
|
|
<
|
|
|
|
|
in your coc-settings.json
|
|
|
|
|
|
|
|
|
|
Change default options:~
|
|
|
|
|
|
|
|
|
|
Use `list.source.{name}.defaultOptions` setting like: >
|
|
|
|
|
|
|
|
|
|
// make symbols list use normal mode and interactive by default
|
|
|
|
|
"list.source.symbols.defaultOptions": ["--interactive", "--number-select"],
|
|
|
|
|
<
|
|
|
|
|
Note: some list like symbols only work in interactive mode, you must
|
|
|
|
|
include `--interactive` in `defaultOptions`.
|
|
|
|
|
|
|
|
|
|
Note: default options will not be used when there're options passed
|
|
|
|
|
with |:CocList| command.
|
|
|
|
|
|
|
|
|
|
Change default arguments:~
|
|
|
|
|
|
|
|
|
|
Use `list.source.{name}.defaultArgs` setting like: >
|
|
|
|
|
|
|
|
|
|
// use regex match for grep source
|
|
|
|
|
"list.source.grep.defaultArgs": ["-regex"],
|
|
|
|
|
|
|
|
|
|
Note: default arguments used only when arguments from |:CocList| command is
|
|
|
|
|
empty.
|
|
|
|
|
|
|
|
|
|
Note: Type `?` on normal mode to get supported arguments of current list.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
LIST MAPPINGS *coc-list-mappings*
|
|
|
|
|
|
|
|
|
|
Default mappings on insert mode:
|
|
|
|
|
|
|
|
|
|
<Esc> - Cancel list session.
|
|
|
|
|
<CR> - Do default action with selected items or current item.
|
|
|
|
|
<C-c> - Stop loading task.
|
|
|
|
|
<C-v> - Paste text from system clipboard.
|
|
|
|
|
<C-l> - Reload list.
|
|
|
|
|
<C-o> - Change to normal mode.
|
|
|
|
|
<Down> - Select next line.
|
|
|
|
|
<Up> - Select previous line.
|
|
|
|
|
<Left> - Move cursor left.
|
|
|
|
|
<Right> - Move cursor right.
|
|
|
|
|
<End> - Move cursor to end of prompt.
|
|
|
|
|
<C-e> - Same as <End>.
|
|
|
|
|
<Home> - Move cursor to start of prompt.
|
|
|
|
|
<C-a> - Same as <Home>.
|
|
|
|
|
<C-f> - Scroll window forward.
|
|
|
|
|
<C-b> - Scroll window backward.
|
|
|
|
|
<Backspace> - Remove previous character of cursor.
|
|
|
|
|
<C-h> - Remove previous character of cursor.
|
|
|
|
|
<C-w> - Remove previous word of cursor.
|
|
|
|
|
<C-u> - Remove characters before cursor.
|
|
|
|
|
<C-n> - Navigate to next input in history.
|
|
|
|
|
<C-p> - Navigate to previous input in history.
|
|
|
|
|
<C-s> - Switch matcher for filter items.
|
|
|
|
|
<C-r> - Insert content from vim's register.
|
|
|
|
|
<Tab> - Select action.
|
|
|
|
|
|
|
|
|
|
Default mappings on normal mode:
|
|
|
|
|
|
|
|
|
|
<Esc> - Cancel list session.
|
|
|
|
|
<CR> - Do default action with selected items or current item.
|
|
|
|
|
<C-c> - Stop source from fetching more items.
|
|
|
|
|
<C-l> - Reload list.
|
|
|
|
|
<C-a> - Mark all visible items selected.
|
|
|
|
|
<C-o> - Jump to original window on list create.
|
|
|
|
|
<Tab> - Select action.
|
|
|
|
|
<C-e> - Scroll preview window down.
|
|
|
|
|
<C-y> - Scroll preview window up.
|
|
|
|
|
<Space> - Toggle select of current item.
|
|
|
|
|
i,I,o,O,a,A - Change to insert mode.
|
|
|
|
|
p - Preview action.
|
|
|
|
|
: - Cancel list session without closing window.
|
|
|
|
|
? - Show help of current list.
|
|
|
|
|
t - Do 'tabe' action.
|
|
|
|
|
d - Do 'drop' action.
|
|
|
|
|
s - Do 'split' action.
|
|
|
|
|
|
|
|
|
|
Use |coc-list-mappings-custom| to override default mappings.
|
|
|
|
|
|
|
|
|
|
*coc-list-mappings-custom*
|
|
|
|
|
|
|
|
|
|
Configurations `"list.normalMappings"` and `"list.insertMappings"` are used
|
|
|
|
|
for customizing the list key-mappings, example: >
|
|
|
|
|
|
|
|
|
|
"list.insertMappings": {
|
|
|
|
|
"<C-r>": "do:refresh",
|
|
|
|
|
"<C-f>": "feedkeys:\\<C-f>",
|
|
|
|
|
"<C-b>": "feedkeys:\\<C-b>",
|
|
|
|
|
"<C-n>": "normal:j",
|
|
|
|
|
"<C-p>": "normal:k",
|
|
|
|
|
"<C-t>": "action:tabe",
|
|
|
|
|
"<C-x>": "call:MyFunc",
|
|
|
|
|
// paste yanked text to prompt
|
|
|
|
|
"<C-v>": "eval:@@"
|
|
|
|
|
}
|
|
|
|
|
"list.normalMappings": {
|
|
|
|
|
"c": "expr:MyExprFunc"
|
|
|
|
|
"d": "action:delete"
|
|
|
|
|
}
|
|
|
|
|
<
|
|
|
|
|
Note: you should only use mappings that start with `<C-` or `<A-` for insert
|
|
|
|
|
mappings.
|
|
|
|
|
|
|
|
|
|
Note: <Esc> can't be remapped for other actions.
|
|
|
|
|
|
|
|
|
|
The mapping expression should be `command:arguments`, available commands:
|
|
|
|
|
|
|
|
|
|
'do' - special actions provided by coc list, including:
|
|
|
|
|
'refresh' - reload list.
|
|
|
|
|
'selectall' - mark all visible items selected.
|
|
|
|
|
'switch' - switch matcher used for filter items.
|
|
|
|
|
'exit' - exit list session.
|
|
|
|
|
'stop' - stop loading task.
|
|
|
|
|
'cancel' - cancel list session but leave list window open.
|
|
|
|
|
'toggle' - toggle selection of current item.
|
|
|
|
|
'togglemode' - toggle between insert and normal mode.
|
|
|
|
|
'previous' - move cursor to previous item.
|
|
|
|
|
'next' - move cursor to next item.
|
|
|
|
|
'defaultaction' - do default action for selected item(s).
|
|
|
|
|
'chooseaction' - choose action for selected item(s).
|
|
|
|
|
'jumpback' - stop prompt and jump back to original window.
|
|
|
|
|
'previewtoggle' - toggle preview window, requires preview action exists.
|
|
|
|
|
'previewup' - scroll preview window up.
|
|
|
|
|
'previewdown' - scroll preview window down.
|
|
|
|
|
'help' - show help.
|
|
|
|
|
'prompt' - do prompt action, including:
|
|
|
|
|
'previous' - change to previous input in history.
|
|
|
|
|
'next' - change to next input in history.
|
|
|
|
|
'start' - move cursor to start.
|
|
|
|
|
'end' - move cursor to end.
|
|
|
|
|
'left' - move cursor left.
|
|
|
|
|
'right' - move cursor right.
|
|
|
|
|
'deleteforward' - remove previous character.
|
|
|
|
|
'deletebackward' - remove next character.
|
|
|
|
|
'removetail' - remove characters afterwards.
|
|
|
|
|
'removeahead' - remove character ahead.
|
|
|
|
|
'removeword' - remove word before cursor.
|
|
|
|
|
'insertregister' - insert content from Vim register.
|
|
|
|
|
'paste' - append text from system clipboard to prompt.
|
|
|
|
|
'eval' - append text to prompt from result of VimL expression.
|
|
|
|
|
'action' - execute action of list, use <tab> to find available actions.
|
|
|
|
|
'feedkeys' - feedkeys to list window, use `\\` in JSON to escape special
|
|
|
|
|
characters.
|
|
|
|
|
'normal' - execute normal command in list window.
|
|
|
|
|
'normal!' - execute normal command without remap.
|
|
|
|
|
'command' - execute command.
|
|
|
|
|
'call' - call Vim function with |coc-list-context| as only argument.
|
|
|
|
|
'expr' - same as 'call' but expect the function return action name.
|
|
|
|
|
|
|
|
|
|
*coc-list-context*
|
|
|
|
|
|
|
|
|
|
Context argument contains the following properties:
|
|
|
|
|
|
|
|
|
|
'name' - name of the list, example: `'location'`.
|
|
|
|
|
'args' - arguments of the list.
|
|
|
|
|
'input' - current input of prompt.
|
|
|
|
|
'winid' - window id on list activated.
|
|
|
|
|
'bufnr' - buffer number on list activated.
|
|
|
|
|
'targets' - list of selected targets, checkout |coc-list-target| for properties.
|
|
|
|
|
|
|
|
|
|
*coc-list-target*
|
|
|
|
|
|
|
|
|
|
Target contains the following properties:
|
|
|
|
|
|
|
|
|
|
'label' - mandatory property that is shown in the buffer.
|
|
|
|
|
'filtertext' - optional filter text used for filtering items.
|
|
|
|
|
'location' - optional location of item, check out https://bit.ly/2Rtb6Bo
|
|
|
|
|
'data' - optional additional properties.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
LIST SOURCES *coc-list-sources*
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
location *coc-list-location*
|
|
|
|
|
|
|
|
|
|
Last jump locations.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- 'preview' : preview location in preview window.
|
|
|
|
|
- 'open': open location by use
|
|
|
|
|
`"coc.preferences.jumpCommand"`, default action
|
|
|
|
|
- 'tabe': Use |:tabe| to open location.
|
|
|
|
|
- 'drop': Use |:drop| to open location.
|
|
|
|
|
- 'vsplit': Use |:vsplit| to open location.
|
|
|
|
|
- 'split': Use |:split| to open location.
|
|
|
|
|
- 'quickfix': Add selected items to Vim's quickfix.
|
|
|
|
|
|
|
|
|
|
extensions *coc-list-extensions*
|
|
|
|
|
|
|
|
|
|
Manage coc.nvim extensions.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- 'toggle' activate/deactivate extension, default action.
|
|
|
|
|
- 'disable' disable extension.
|
|
|
|
|
- 'enable' enable extension.
|
|
|
|
|
- 'lock' lock/unlock extension to current version.
|
|
|
|
|
- 'doc' view extension's README doc.
|
|
|
|
|
- 'fix' fix dependencies in terminal buffer.
|
|
|
|
|
- 'reload' reload extension.
|
|
|
|
|
- 'uninstall' uninstall extension.
|
|
|
|
|
|
|
|
|
|
diagnostics *coc-list-diagnostics*
|
|
|
|
|
|
|
|
|
|
All diagnostics for the workspace.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- Same as |coc-list-location|
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
folders *coc-list-folders*
|
|
|
|
|
|
|
|
|
|
Manage current workspace folders of coc.nvim.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- 'edit' change the directory of workspace folder.
|
|
|
|
|
- 'delete' remove selected workspace folder.
|
|
|
|
|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
outline *coc-list-outline*
|
|
|
|
|
|
|
|
|
|
Symbols in the current document.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- Same as |coc-list-location|
|
|
|
|
|
|
|
|
|
|
symbols *coc-list-symbols*
|
|
|
|
|
|
|
|
|
|
Search workspace symbols.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- Same as |coc-list-location|
|
|
|
|
|
|
|
|
|
|
services *coc-list-services*
|
|
|
|
|
|
|
|
|
|
Manage registered services.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- 'toggle': toggle service state, default action.
|
|
|
|
|
|
|
|
|
|
commands *coc-list-commands*
|
|
|
|
|
|
|
|
|
|
Workspace commands.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- 'run': run selected command, default action.
|
|
|
|
|
|
|
|
|
|
links *coc-list-links*
|
|
|
|
|
|
|
|
|
|
Links in the current document.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- 'open': open the link, default action.
|
|
|
|
|
- 'jump': jump to link definition.
|
|
|
|
|
|
|
|
|
|
sources *coc-list-completion-sources*
|
|
|
|
|
|
|
|
|
|
Available completion sources.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- 'toggle': activate/deactivate source, default action.
|
|
|
|
|
- 'refresh': refresh source.
|
|
|
|
|
- 'open': open the file where source defined.
|
|
|
|
|
|
|
|
|
|
lists *coc-list-lists*
|
|
|
|
|
|
|
|
|
|
Get available lists.
|
|
|
|
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
|
|
|
|
- 'open': open selected list, default action.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
|
|
|
|
DIALOG SUPPORT *coc-dialog*
|
|
|
|
|
|
|
|
|
|
Dialog is special float window/popup that could response to user actions,
|
|
|
|
|
dialog have close button, border, title (optional), bottom buttons(optional).
|
|
|
|
|
|
|
|
|
|
Note bottom buttons work different on neovim and vim, on neovim you can
|
|
|
|
|
click the button since neovim allows focus of window, on vim you have to type
|
|
|
|
|
highlighted character to trigger button callback.
|
|
|
|
|
|
|
|
|
|
Note dialog feature requires neovim >= 0.4.0 or vim >= 8.2.0750 to work.
|
|
|
|
|
|
|
|
|
|
See |coc-config-dialog| for available configurations.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*coc-dialog-basic*
|
|
|
|
|
|
|
|
|
|
A basic dialog is create by javascript api `window.showDialog` , which is just
|
|
|
|
|
some texts with optional buttons.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*coc-dialog-confirm*
|
|
|
|
|
|
|
|
|
|
A confirm dialog is used for user to confirm an action, normally created by
|
|
|
|
|
`window.showPrompt()` Confirm dialog uses filter feature on vim8 and
|
|
|
|
|
|getchar()| on neoivm.
|
|
|
|
|
|
|
|
|
|
The difference is you can operate vim on vim8, but not on neovim.
|
|
|
|
|
|
|
|
|
|
Supported key-mappings:
|
|
|
|
|
|
|
|
|
|
<C-c> - force cancel, return -1 for callback.
|
|
|
|
|
<esc>, n, N - reject the action, return 0 for callback.
|
|
|
|
|
y,Y - accept the action, return 1 for callback.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*coc-dialog-input*
|
|
|
|
|
|
2022-05-27 03:57:56 -04:00
|
|
|
|
An input dialog request user input with optional default value, normally
|
2022-05-18 13:29:28 -04:00
|
|
|
|
created by `window.requestInput`, when `"coc.preferences.promptInput"` is
|
|
|
|
|
false, vim's commandline input prompt is used instead.
|
|
|
|
|
|
2022-05-19 10:14:37 -04:00
|
|
|
|
On neovim, it uses float window, on vim8, it opens terminal in popup.
|
|
|
|
|
|
2022-05-18 13:29:28 -04:00
|
|
|
|
Supported key-mappings:
|
|
|
|
|
|
2022-05-19 10:14:37 -04:00
|
|
|
|
<C-a> - move cursor to first col.
|
|
|
|
|
<C-e> - move cursor to last col.
|
|
|
|
|
<esc> - cancel input, null is received by callback.
|
|
|
|
|
<cr> - accept current input selection of current item.
|
|
|
|
|
|
|
|
|
|
QuickPick related (available when created by |coc-dialog-quickpick|).
|
|
|
|
|
|
|
|
|
|
<C-f> - scroll forward quickpick list.
|
|
|
|
|
<C-b> - scroll backward quickpick list.
|
|
|
|
|
<C-j> <C-n> <down> - move to next item in quickpick list.
|
|
|
|
|
<C-k> <C-p> <up> - move to previous item in quickpick list.
|
|
|
|
|
<C-space> - toggle selection of current item in quickpick list when
|
|
|
|
|
canSelectMany is supported.
|
|
|
|
|
|
|
|
|
|
Note on neovim, other insert mode key-mappings could work.
|
|
|
|
|
|
|
|
|
|
Note not possible to configure key-mappings on vim8, to customize key-mappings
|
|
|
|
|
on neovim, use |CocOpenFloatPrompt| with current buffer.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*coc-dialog-quickpick*
|
|
|
|
|
|
|
|
|
|
A quickpick is a input dialog in the middle with a float window/popup contains
|
|
|
|
|
filtred list items.
|
|
|
|
|
|
|
|
|
|
A simple fuzzy filter is used by default.
|
|
|
|
|
|
|
|
|
|
See |coc-config-dialog| for available configurations.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
2022-05-19 10:14:37 -04:00
|
|
|
|
See |coc-dialog-input| for available key-mappings.
|
2022-05-18 13:29:28 -04:00
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*coc-dialog-menu*
|
|
|
|
|
|
|
|
|
|
A menu dialog is shown aside current cursor position for pick a single item
|
2022-05-27 03:57:56 -04:00
|
|
|
|
from list of items, extensions could use `window.showMenuPicker` to create menu
|
2022-05-18 13:29:28 -04:00
|
|
|
|
dialog.
|
|
|
|
|
|
|
|
|
|
Supported key-mappings:
|
|
|
|
|
|
|
|
|
|
<Esc> <C-c> - cancel selection.
|
|
|
|
|
<cr> - confirm selection of current item, use
|
|
|
|
|
|dialog.confirmKey| to override.
|
|
|
|
|
1-9 - select item with 1 based index.
|
|
|
|
|
g - move to first item.
|
|
|
|
|
G - move to last item.
|
|
|
|
|
j <tab> <down> <C-n> - move to next item.
|
|
|
|
|
k <s-tab> <up> <C-p> - move to previous item.
|
|
|
|
|
<C-f> - scroll forward.
|
|
|
|
|
<C-b> - scroll backward.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*coc-dialog-picker*
|
|
|
|
|
|
|
|
|
|
A picker dialog is used for multiple selection. On neovim, it's possible to
|
|
|
|
|
toggle selection by mouse click inside the bracket. Extensions could use
|
|
|
|
|
`window.showPickerDialog` to create picker dialog.
|
|
|
|
|
|
|
|
|
|
Supported key-mappings:
|
|
|
|
|
|
|
|
|
|
<Esc> <C-c> - cancel selection.
|
|
|
|
|
<cr> - confirm selection of current item, use
|
|
|
|
|
|dialog.confirmKey| to override.
|
|
|
|
|
<space> - toggle selection of current item.
|
|
|
|
|
g - move to first item.
|
|
|
|
|
G - move to last item.
|
|
|
|
|
j <tab> <down> <C-n> - move to next item.
|
|
|
|
|
k <s-tab> <up> <C-p> - move to previous item.
|
|
|
|
|
<C-f> - scroll forward.
|
|
|
|
|
<C-b> - scroll backward.
|
|
|
|
|
|
|
|
|
|
Note when close button is clicked, the selection is canceled with undefined
|
|
|
|
|
result (same as <esc>).
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
|
|
|
|
NOTIFICATION SUPPORT *coc-notification*
|
|
|
|
|
|
|
|
|
|
Notification windows are shown from bottom right of the screen. Notifications
|
|
|
|
|
behavior like notifications on VSCode.
|
|
|
|
|
|
|
|
|
|
Notifications are created by javascript APIs: `window.showErrorMessage()`,
|
|
|
|
|
`window.showWarningMessage()`, `window.showInformationMessage()`,
|
|
|
|
|
`window.showNotification()` and `window.withProgress()`.
|
|
|
|
|
|
|
|
|
|
Possible kind of notifications: 'error', 'warning', 'info' and 'progress'.
|
|
|
|
|
|
|
|
|
|
Message notifications (not progress) requires
|
|
|
|
|
|coc-preferences-enableMessageDialog| to be `true`. Message notifications
|
|
|
|
|
without actions would be automatically closed after milliseconds specified by
|
|
|
|
|
|coc-config-notification-timeout|.
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Animated position and 'winblend' on show and hide.
|
|
|
|
|
- Reposition current tab notification windows when notification dismissed.
|
|
|
|
|
- Notification with same options will be replaced to avoid duplicated windows.
|
|
|
|
|
- Percent and message update for progress notification.
|
|
|
|
|
- Click the button (neovim only) or use |coc#notify#do_action()| to invoke
|
|
|
|
|
actions.
|
|
|
|
|
- Click the window would cancel auto close (on neovim and focusable is true).
|
|
|
|
|
- For customize icons, see |g:coc_notify|.
|
|
|
|
|
- For customize highlights, see |CocNotification|.
|
|
|
|
|
- For customize other behaviors, see |coc-config-notification|.
|
|
|
|
|
- For available user actions (ex: "close_all", "do_action" "show_sources"), see
|
|
|
|
|
|coc#notify|.
|
|
|
|
|
|
|
|
|
|
Note notification feature requires neovim >= 0.4.0 or vim >= 8.2.0750 to work.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
|
|
|
|
STATUSLINE SUPPORT *coc-status*
|
|
|
|
|
|
|
|
|
|
Diagnostics info and other status info contributed by extensions could be
|
|
|
|
|
shown in statusline.
|
|
|
|
|
|
|
|
|
|
The easiest way is add `%{coc#status()}` to your 'statusline' option. Example: >
|
|
|
|
|
|
|
|
|
|
set statusline^=%{coc#status()}
|
|
|
|
|
>
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*coc-status-manual*
|
|
|
|
|
|
|
|
|
|
Create function:
|
|
|
|
|
>
|
|
|
|
|
function! StatusDiagnostic() abort
|
|
|
|
|
let info = get(b:, 'coc_diagnostic_info', {})
|
|
|
|
|
if empty(info) | return '' | endif
|
|
|
|
|
let msgs = []
|
|
|
|
|
if get(info, 'error', 0)
|
|
|
|
|
call add(msgs, 'E' . info['error'])
|
|
|
|
|
endif
|
|
|
|
|
if get(info, 'warning', 0)
|
|
|
|
|
call add(msgs, 'W' . info['warning'])
|
|
|
|
|
endif
|
|
|
|
|
return join(msgs, ' ') . ' ' . get(g:, 'coc_status', '')
|
|
|
|
|
endfunction
|
|
|
|
|
<
|
|
|
|
|
Add `%{StatusDiagnostic()}` to your 'statusline' option.
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
*coc-status-airline*
|
|
|
|
|
|
|
|
|
|
With vim-airline: https://github.com/vim-airline/vim-airline
|
|
|
|
|
|
|
|
|
|
Error and warning display should work in vim-airline out of box.
|
|
|
|
|
|
|
|
|
|
Disable vim-airline integration:
|
|
|
|
|
>
|
|
|
|
|
let g:airline#extensions#coc#enabled = 0
|
|
|
|
|
<
|
|
|
|
|
Change error symbol:
|
|
|
|
|
>
|
|
|
|
|
let airline#extensions#coc#error_symbol = 'Error:'
|
|
|
|
|
<
|
|
|
|
|
Change warning symbol:
|
|
|
|
|
>
|
|
|
|
|
let airline#extensions#coc#warning_symbol = 'Warning:'
|
|
|
|
|
<
|
|
|
|
|
Change error format:
|
|
|
|
|
>
|
|
|
|
|
let airline#extensions#coc#stl_format_err = '%E{[%e(#%fe)]}'
|
|
|
|
|
<
|
|
|
|
|
Change warning format:
|
|
|
|
|
>
|
|
|
|
|
let airline#extensions#coc#stl_format_warn = '%W{[%w(#%fw)]}'
|
|
|
|
|
<
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
*coc-status-lightline*
|
|
|
|
|
|
|
|
|
|
With lightline.vim: https://github.com/itchyny/lightline.vim
|
|
|
|
|
|
|
|
|
|
Use configuration like: >
|
|
|
|
|
|
|
|
|
|
let g:lightline = {
|
|
|
|
|
\ 'colorscheme': 'wombat',
|
|
|
|
|
\ 'active': {
|
|
|
|
|
\ 'left': [ [ 'mode', 'paste' ],
|
|
|
|
|
\ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ]
|
|
|
|
|
\ },
|
|
|
|
|
\ 'component_function': {
|
|
|
|
|
\ 'cocstatus': 'coc#status'
|
|
|
|
|
\ },
|
|
|
|
|
\ }
|
|
|
|
|
|
|
|
|
|
" Use autocmd to force lightline update.
|
|
|
|
|
autocmd User CocStatusChange,CocDiagnosticChange call lightline#update()
|
|
|
|
|
<
|
|
|
|
|
==============================================================================
|
|
|
|
|
CUSTOM SOURCE *coc-custom-source*
|
|
|
|
|
|
|
|
|
|
Creating a custom source in VimL is supported.
|
|
|
|
|
|
|
|
|
|
Check out https://github.com/neoclide/coc.nvim/wiki/Create-custom-source
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
FAQ *coc-faq*
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Check out https://github.com/neoclide/coc.nvim/wiki/F.A.Q
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
2022-05-27 03:57:56 -04:00
|
|
|
|
CHANGELOG *coc-changelog*
|
|
|
|
|
|
|
|
|
|
See history.md under project root.
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
vim:tw=78:nosta:noet:ts=8:sts=0:ft=help:noet:fen:
|