• Stars
    star
    1,287
  • Rank 36,546 (Top 0.8 %)
  • Language
    Lua
  • License
    MIT License
  • Created over 3 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

nvim-cmp source for neovim builtin LSP client

cmp-nvim-lsp

nvim-cmp source for neovim's built-in language server client.

Capabilities

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 function require('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.

Setup

require'cmp'.setup {
  sources = {
    { name = 'nvim_lsp' }
  }
}

-- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers..
local capabilities = require('cmp_nvim_lsp').default_capabilities()

-- The following example advertise capabilities to `clangd`.
require'lspconfig'.clangd.setup {
  capabilities = capabilities,
}

Option

[%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\+]]=]
        }
      }
    }
  }
  ...
}

Readme!

  1. There is a Github issue that documents breaking changes for cmp-nvim-lsp. Subscribe to the issue to be notified of upcoming breaking changes.
  2. This is my hobby project. You can support me via GitHub sponsors.
  3. Bug reports are welcome, but don't expect a fix unless you provide minimal configuration and steps to reproduce your issue.

More Repositories

1

nvim-cmp

A completion plugin for neovim coded in Lua.
Lua
8,005
star
2

nvim-compe

Auto completion Lua plugin for nvim
Lua
1,282
star
3

vim-vsnip

Snippet plugin for vim/nvim that supports LSP/VSCode's snippet format.
Vim Script
880
star
4

cmp-nvim-lsp-signature-help

cmp-nvim-lsp-signature-help
Lua
630
star
5

cmp-path

nvim-cmp source for path
Lua
625
star
6

cmp-buffer

nvim-cmp source for buffer words
Lua
616
star
7

vscode-langservers-extracted

vscode-langservers bin collection.
Shell
595
star
8

cmp-cmdline

nvim-cmp source for vim's cmdline
Lua
557
star
9

cmp-nvim-lua

nvim-cmp source for nvim lua
Lua
317
star
10

cmp-emoji

nvim-cmp source for emoji
Lua
184
star
11

cmp-nvim-lsp-document-symbol

nvim-cmp source for textDocument/documentSymbol via nvim-lsp.
Lua
182
star
12

nvim-insx

Flexible key mapping manager.
Lua
177
star
13

cmp-calc

nvim-cmp source for math calculation
Lua
152
star
14

cmp-copilot

copilot.vim source for nvim-cmp
Lua
129
star
15

vim-vsnip-integ

vim-vsnip integrations to other plugins.
Vim Script
128
star
16

nvim-pasta

The yank/paste enhancement plugin for neovim.
Lua
107
star
17

cmp-vsnip

nvim-cmp source for vim-vsnip
Lua
93
star
18

vim-searchx

The extended search motion.
Vim Script
77
star
19

vim-eft

enhanced f/t
Vim Script
75
star
20

cmp-omni

nvim-cmp source for omnifunc
Lua
46
star
21

nvim-gtd

LSP's Go to definition plugin for neovim.
Lua
36
star
22

vim-seak

search + seek = seak. The plugin that enhances the `/` and `?`.
Vim Script
35
star
23

js-co-on

co based event emitter handling.
JavaScript
33
star
24

vim-lamp

๐Ÿ’กLanguage Server Protocol client for Vim.
Vim Script
32
star
25

nvim-kit

My personal Lua utilities for neovim.
Lua
29
star
26

nvim-automa

Automatic macro recorder for neovim.
Lua
23
star
27

nvim-dansa

Guess the indent from lines of around.
Lua
19
star
28

vim-vital-vs

Vim Script
18
star
29

denops-popup

https://deno.land/x/denops_popup
Vim Script
17
star
30

vim-gindent

General indentexpr plugin for vim and nvim.
Lua
17
star
31

nvim-lua-rpc-example

Lua
16
star
32

cmp-core-example

Lua
14
star
33

nvim-linkedit

Lua
14
star
34

nvim-automa-poc

POC of plugin that will be called `nvim-automa`
Lua
13
star
35

vim-candle

Candidates listing engine for vim/nvim built on yaegi on golang.
Vim Script
12
star
36

nvim-matcha

A fuzzy finding plugin for neovim (for my personal use)
11
star
37

nvim-lua-rpc-example-with-headless

Use nvim --headless for asynchronous processing
Lua
11
star
38

vim-neco-calc

neocomplcache/neocomplete/deoplete calculates plugin.
Vim Script
10
star
39

vim-versions

useful interface for version control.
Vim Script
9
star
40

vim-compete

Auto completion plugin for vim/nvim that supports fuzzy match.
Vim Script
9
star
41

state-use

Simple state manager for React
TypeScript
8
star
42

deno-json-rpc

Strongly typed json-rpc module for deno.
TypeScript
7
star
43

nvim-plugin-template

Makefile
7
star
44

msw-snapshot

Transparently create an API cache for testing.
TypeScript
6
star
45

srimmer

Srimmer provides simple api to use react and immer.
TypeScript
6
star
46

vim-unmatchparen

highlight unmatch parens.
Vim Script
6
star
47

vim-denite-gitto

denite with vim-gitto
Python
6
star
48

deno-nvim-types

The Nvim API type definition for TypeScript.
TypeScript
5
star
49

completion-snippet

The vim-vsnip snippet collection for completion.
5
star
50

vim-foolish-move

Vim Script
5
star
51

fern-mapping-collapse-or-leave.vim

Vim Script
5
star
52

hrsh7th

My profile.
4
star
53

deoplete-vim-lsc

deoplete source for vim-lsc.
Vim Script
4
star
54

fern-mapping-call-function.vim

Vim Script
4
star
55

vim-minx

Extended insert-mode mapping manager.
Vim Script
3
star
56

vim-aim

This plugin provides motion that similar to /. (experimental)
Vim Script
3
star
57

js-gulp-component-build

gulp plugin to build component.
JavaScript
3
star
58

js-modelis

Modelis javascript modeling support.
JavaScript
2
star
59

vim-lamp-extensions

Vim Script
2
star
60

node-monores

monorepo scripts.
TypeScript
2
star
61

nvim-tuil

nvim plugin utilities that can be embed your plugin.
Lua
2
star
62

frontend-testing-demo

https://hrsh7th.github.io/frontend-testing-demo/main/storybook
TypeScript
2
star
63

vim-compete-lamp

Vim Script
2
star
64

vim-gitto

vim-gitto
Vim Script
2
star
65

vim-feeling-move

Vim Script
1
star
66

vsnip-snippet-plugin-demo

Vim Script
1
star
67

deoplete-lamp

deoplete source for vim-lamp.
Vim Script
1
star
68

denite-converter-prioritize-basename

Python
1
star
69

denops-sandbox

TypeScript
1
star
70

vim-neco-snippets

neocomplcache my snippets.
1
star
71

compe-lamp

vim-lamp source for compe for my personal use.
Vim Script
1
star
72

deoplete-calc

calculates at completion.
Python
1
star
73

nvim-lapi

1
star
74

js-modelis-assurance

assucrance plugin for modelis.
JavaScript
1
star
75

refnew-react

refnew react binding.
TypeScript
1
star
76

deoplete-fname

filename completion for deoplete.nvim.
Python
1
star
77

vim-diffkit

Buffer diff management in VimL. Improve performance for getting buffer's diff.
Vim Script
1
star
78

vim-picka

Vim Script
1
star
79

asyncomplete-lamp

asyncomplete source for vim-lamp.
Vim Script
1
star
80

react-inview-hook

react hooks & intersection-observer
TypeScript
1
star
81

vim-locon

local config in vimrc.
Vim Script
1
star
82

vim-compete-omnifunc

Vim Script
1
star
83

vim-vital-deno

vim x deno (experimental)
1
star
84

diagnostics.nvim

Experimental diagnostics service for neovim.
Vim Script
1
star
85

immer-deps

Auto update dependencies, when immer's produce.
TypeScript
1
star
86

vim-effort-gf

Vim Script
1
star
87

sandbox

Lua
1
star
88

slow-lsp-demo

TypeScript
1
star
89

vim-compete-lsp

vim-lsp source for vim-compete.
Vim Script
1
star
90

xhr-snapshot

TypeScript
1
star
91

refnew

proxy based state management utility.
TypeScript
1
star
92

compe-conjure

compe-nvim source for conjure
Lua
1
star
93

babel-plugin-tree-shakable

good manner cjs files to mjs. this is very very experimental. do not use.
JavaScript
1
star