blink.cmp is a completion plugin with support for LSPs, cmdline, signature help and snippets. It uses an optional custom fuzzy matcher for typo resistance. It provides extensibility via pluggable sources (LSP, buffer, snippets, etc), component based rendering and scripting for the configuration.
blink-cmp-demo.mp4
- 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 (0.11+ only! No source for shell completions exists yet, contributions welcome!)
- Comparison with built-in completion
- 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 and maintainer
- @soifou Maintainer
- @lopi-py Windowing code
- @scottmckendry CI and prebuilt binaries
- @balssh + @konradmalik Nix flake, nixpkg and nixvim
- @abeldekat mini.snippets source
- @wurli Terminal completions
- @mikavilpas + @xzbdmw Dot-repeat (
.
) - @FerretDetective
complete_func
source - @krovuxdev Community moderation and help