This extension connects coc.nvim to the clangd language server.
coc.nvim
and coc-clangd
run on Node.js.coc.nvim
. Instructions using vim-plug
(check out coc.nvim Wiki other options):
.vimrc
: vim Plug 'neoclide/coc.nvim', {'branch': 'release'}
:PlugInstall
:CocInstall coc-clangd
coc-clangd
will try to find clangd
from your $PATH
, if not found, you can run :CocCommand clangd.install
to install the latest release from GitHubcompile_commands.json
for your projectNote: If you've configured
clangd
as a languageServer incoc-settings.json
, you should remove it to avoid running clangd twice!
clangd
supports some extensions that are not in the official Language Server Protocol specification.
coc-clangd
adds support for:
:CocCommand clangd.switchSourceHeader
:CocCommand clangd.switchSourceHeader vsplit
:CocCommand clangd.symbolInfo
.
to ->
):CocConfig
opens your global coc-settings.json
. :CocLocalConfig
opens local configuration for your project ($PROJECTROOT/.vim/coc-settings.json
)
Configurations | Description | Default |
---|---|---|
clangd.enabled | enable coc-clangd |
true |
clangd.arguments | arguments for clangd server |
[] |
clangd.checkUpdates | check for clangd language server updates on startup | false |
clangd.disableCompletion | disable completion source from clangd | false |
clangd.disableDiagnostics | disable diagnostics from clangd | false |
clangd.disableSnippetCompletion | disable completion snippet from clangd | false |
clangd.disableProgressNotifications | disable indexing progress notifications from clangd | false |
clangd.compilationDatabasePath | specifies the directory containing the compilation database | '' |
clangd.compilationDatabaseCandidates | specifies directories that may contain the compilation database, you can use ${workspaceFolder} variables https://code.visualstudio.com/docs/editor/variables-reference |
[] |
clangd.fallbackFlags | extra clang flags used to parse files when no compilation database is found | [] |
clangd.path | path to clangd executable |
clangd |
Note:
Semantic highlighting is disabled by default in coc.nvim, you can enable it with semanticTokens.enable
.
clangd.switchSourceHeader
: switch between source/header filesclangd.symbolInfo
: resolve symbol info under the cursorclangd.memoryUsage
: show memory usageclangd.ast
: show ASTclangd.install
: install latest clangd release from GitHubclangd.update
: check for updates to clangd from GitHubApache 2.0 with LLVM Exception
This is the standard LLVM license.
This extension is built with create-coc-extension