Warning
This plugin is beta quality. Expect breaking changes and many bugs
blink.cmp is a completion plugin with support for LSPs and external sources that updates on every keystroke with minimal overhead (0.5-4ms async). It use a custom fuzzy matcher to easily handle >20k items. It provides extensibility via pluggable sources (LSP, snippets, etc), component based rendering and scripting for the configuration.
blink-cmp-demo.webm
- Works out of the box with no additional configuration
- Updates on every keystroke (0.5-4ms async, single core)
- Typo resistant fuzzy with frecency and proximity bonus
- Extensive LSP support (tracker)
- Snippet support: native
vim.snippet
(includingfriendly-snippets
),LuaSnip
andmini.snippets
- External sources support (community sources and compatibility layer for
nvim-cmp
sources) - Auto-bracket support based on semantic tokens
- Signature help (experimental, opt-in)
- Command line completion
- Terminal completion (Nightly only! No source for shell completions exists yet, contributions welcome!)
- Comparison with nvim-cmp
Head over to the documentation website for installation instructions and configuration options.
- @hrsh7th nvim-cmp used as inspiration and cmp-path/cmp-cmdline implementations modified for path/cmdline sources
- @garymjr nvim-snippets implementation modified for snippets source
- @redxtech Help with design and testing
- @aaditya-sahay Help with rust, design and testing
- @stefanboca Author of blink.compat
- @lopi-py Windowing code
- @scottmckendry CI and prebuilt binaries
- @balssh + @konradmalik Nix flake, nixpkg and nixvim
- @abeldekat mini.snippets source
- @wurli Terminal completions