Skip to main content

Overview

Blink.cmp is a modern completion plugin with native snippet support, fuzzy matching, and intelligent source prioritization. Configuration file: lua/plugins/completions.lua:2

Dependencies

  • folke/lazydev.nvim - Lua development completion
  • nvim-mini/mini.nvim - Mini.nvim utilities

Keymap configuration

Appearance settings

appearance.use_nvim_cmp_as_default
boolean
default:"false"
Uses Blink.cmp’s native appearance instead of nvim-cmp compatibility mode.
appearance.nerd_font_variant
string
default:"mono"
Uses monospaced Nerd Font icons for consistent alignment.

Completion behavior

completion.accept.auto_brackets.enabled
boolean
default:"true"
Automatically inserts brackets () when completing functions and methods.
When you complete a function like myFunction, it will automatically insert myFunction() with the cursor positioned inside the parentheses.
completion.menu.auto_show
boolean
default:"true"
Automatically shows the completion menu while typing.
completion.menu.border
string
default:"rounded"
Uses rounded borders for the completion menu.
completion.menu.scrollbar
boolean
default:"false"
Disables the scrollbar in the completion menu.
completion.menu.scrolloff
number
default:"1"
Minimum number of items to keep visible above/below cursor.
completion.menu.draw.padding
number
default:"1"
Horizontal padding inside the menu.
completion.menu.draw.gap
number
default:"1"
Gap between columns in the menu.
The completion menu displays four columns:
  1. kind_icon - Icon representing the completion type (function, variable, etc.)
  2. label + label_description - The completion text and additional context
  3. kind - Type name (Function, Variable, etc.)
  4. source_name - Source provider (LSP, Buffer, etc.)
completion.ghost_text.enabled
boolean
default:"true"
Shows inline preview of the selected completion.
completion.ghost_text.show_with_menu
boolean
default:"false"
Only shows ghost text when menu is closed.
completion.ghost_text.show_without_selection
boolean
default:"false"
Only shows ghost text when an item is selected.
completion.documentation.auto_show
boolean
default:"true"
Automatically shows documentation for the selected item.
completion.documentation.auto_show_delay_ms
number
default:"200"
Delay in milliseconds before showing documentation.
completion.documentation.treesitter_highlighting
boolean
default:"true"
Enables syntax highlighting in documentation using Tree-sitter.
completion.documentation.window.border
string
default:"rounded"
Border style for the documentation window.
completion.documentation.window.scrollbar
boolean
default:"true"
Shows a scrollbar in the documentation window.
completion.trigger.prefetch_on_insert
boolean
default:"false"
Disables prefetching completions when entering insert mode for better performance.
completion.trigger.show_in_snippet
boolean
default:"true"
Shows completions while navigating snippet placeholders.
completion.trigger.show_on_backspace_in_keyword
boolean
default:"false"
Disables showing completions when backspacing in a keyword.
completion.list.selection.preselect
boolean
default:"true"
Automatically preselects the first completion item.
completion.list.selection.auto_insert
boolean
default:"false"
Prevents automatically inserting completion preview - requires explicit confirmation.
auto_insert is disabled to prevent unwanted text insertion. You must press Tab or Enter to accept a completion.

Command-line completion

cmdline.enabled
boolean
default:"false"
Disabled because mini.cmdline is used instead, which provides better previews.
The configuration uses mini.cmdline for command-line completion with enhanced preview capabilities.

Completion sources

The following sources are enabled by default (in priority order):
  1. lazydev - Lua development for Neovim config (score offset: +100)
  2. lsp - Language Server Protocol completions
  3. path - File system path completions
  4. snippets - Code snippets
  5. buffer - Words from open buffers
sources.per_filetype.sql
string[]
SQL files use: dadbod, snippets, buffer
sources.per_filetype.mysql
string[]
MySQL files use: dadbod, snippets, buffer
sources.per_filetype.plpgsql
string[]
PostgreSQL files use: dadbod, snippets, buffer
sources.providers.lazydev
object
LazyDev provider for Lua development with +100 score offset (highest priority).Module: lazydev.integrations.blink
sources.providers.dadbod
object
Database completion via vim-dadbod integration.Module: vim_dadbod_completion.blink
sources.providers.snippets
object
Snippet provider that searches ~/.config/nvim/after/snippets for custom snippets.
sources.providers.lsp
object
LSP provider with special configuration for markdown_oxide.Custom keyword pattern for Markdown: [\(\k\| \\/\|#\)\+]
sources.providers.cmdline.min_keyword_length
number
default:"2"
Requires at least 2 characters before showing cmdline completions.

Fuzzy matching

fuzzy.implementation
string
default:"prefer_rust_with_warning"
Uses Rust-based fuzzy matching for better performance, with a warning if the binary isn’t available.
The Rust implementation provides significantly faster fuzzy matching, especially for large completion lists.

Signature help

signature.enabled
boolean
default:"true"
Shows function signatures while typing function calls.
signature.window.show_documentation
boolean
default:"true"
Displays documentation in the signature help window.
signature.window.border
string
default:"rounded"
Uses rounded borders for signature help windows.

Version

The configuration uses version 1.* of Blink.cmp, which ensures compatibility with the 1.x release series while receiving bug fixes and minor updates.
Blink.cmp integrates seamlessly with LSP servers configured in lua/plugins/lsp/init.lua and automatically merges LSP capabilities.

Build docs developers (and LLMs) love