- Notifications
You must be signed in to change notification settings - Fork53
nvim-cmp source for neovim builtin LSP client
License
hrsh7th/cmp-nvim-lsp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
nvim-cmp source for neovim's built-in language server client.
Language servers provide different completion results depending on the capabilities of the client. Neovim's default omnifunc has basic support for serving completion candidates. nvim-cmp supports more types of completion candidates, so users must override the capabilities sent to the server such that it can provide these candidates during a completion request. These capabilities are provided via the helper functionrequire('cmp_nvim_lsp').default_capabilities
As these candidates are sent on each request,adding these capabilities will break the built-in omnifunc support for neovim's language server client.nvim-cmp
provides manually triggered completion that can replace omnifunc. See:help cmp-faq
for more details.
require'cmp'.setup {sources= { {name='nvim_lsp'} }}-- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers..localcapabilities=require('cmp_nvim_lsp').default_capabilities()-- An example for configuring `clangd` LSP to use nvim-cmp as a completion enginerequire('lspconfig').clangd.setup {capabilities=capabilities,...-- other lspconfig configs}
[%LSPCONFIG-NAME%].keyword_pattern
You can override keyword_pattern for specific language-server like this.
cmp.setup {...sources= { {name='nvim_lsp',option= {php= {keyword_pattern=[=[[\%(\$\k*\)\|\k\+]]=], } } } }...}
- There is a Github issue that documentsbreaking changes for cmp-nvim-lsp. Subscribe to the issue to be notified of upcoming breaking changes.
- This is my hobby project. You can support me via GitHub sponsors.
- Bug reports are welcome, but don't expect a fix unless you provide minimal configuration and steps to reproduce your issue.