Make your vim/neovim as smart as VSCode.
Coc is an intellisense engine for vim8 & neovim.
It works on
vim >= 8.0 and
neovim >= 0.3.1.
It's a completion framework and language server client which supports extension features of VSCode.
True snippet and additional text editing support
Floating windows require nightly build of neovim or vim >= 8.1.1522, follow steps in the faq.
Check out doc/coc.txt for the vim interface.
🚀Fast: instant increment completion, increment buffer sync using buffer update events.
💎Reliable: typed language, tested with CI.
🌟Featured: full LSP support
❤️Flexible: configured like VSCode, extensions work like in VSCode
Below are the reasons that led coc.nvim to build its own engine:
- Full LSP completion support, especially snippet and
additionalTextEditfeature, you'll understand why it's awesome when you experience it with a coc extension like
- Asynchronous and parallel completion request, unless using vim sources, your vim will never be blocked.
- Does completion resolving on completion item change. The details from completion items are echoed after being selected, this feature requires the
CompleteChangedautocmd to work.
- Incomplete request and cancel request support, only incomplete completion requests would be triggered on filtering completion items and cancellation requests are sent to servers only when necessary.
- Start completion without timer. The completion will start after you type the first letter of a word by default and is filtered with new input after the completion has finished. Other completion engines use a timer to trigger completion so you always have to wait after the typed character.
- Realtime buffer keywords. Coc will generate buffer keywords on buffer change in the background (with debounce), while s