3.4 KiB
3.4 KiB
coc-clangd
This extension connects coc.nvim to the clangd language server.
Quick Start
- install Node.js.
coc.nvim
andcoc-clangd
run on Node.js. - install
coc.nvim
. Instructions usingvim-plug
(check out coc.nvim Wiki other options):- add to
.vimrc
:vim Plug 'neoclide/coc.nvim', {'branch': 'release'}
- in vim, run
:PlugInstall
- add to
- in vim, run
:CocInstall coc-clangd
coc-clangd
will try to findclangd
from your$PATH
, if not found, you can run:CocCommand clangd.install
to install the latest release from GitHub- follow Project setup to generate
compile_commands.json
for your project
Note
: If you've configured
clangd
as a languageServer incoc-settings.json
, you should remove it to avoid running clangd twice!
Protocol extensions
clangd
supports some extensions that are not in the official Language Server Protocol specification.
coc-clangd
adds support for:
- Switching between header and implementation file:
:CocCommand clangd.switchSourceHeader
- File status monitor, shows on NeoVim statusline
- Describe symbol under the cursor:
:CocCommand clangd.symbolInfo
- Completions that adjust text near the cursor (e.g. correcting
.
to->
)
Configurations
:CocConfig
opens your global coc-settings.json
, or :CocLocalConfig
opens local configuration in your project .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.compilationDatabasePath | specifies the directory containing the compilation database | '' |
clangd.fallbackFlags | extra clang flags used to parse files when no compilation database is found | [] |
clangd.path | path to clangd executable |
clangd |
clangd.semanticHighlighting | enable semantic highlighting, requires jackguo380/vim-lsp-cxx-highlight to work | false |
clangd.serverCompletionRanking | always rank compilation items on the server as you type | true |
Commands
clangd.switchSourceHeader
: switch between source/header filesclangd.symbolInfo
: resolve symbol info under the cursorclangd.install
: install latest clangd release from GitHubclangd.update
: check for updates to clangd from GitHub
License
Apache 2.0 with LLVM Exception
This is the standard LLVM license.
This extension is created by create-coc-extension