coq.nvim is a completion engine for Neovim that prioritizes speed through native C data structures and concurrent scheduling.
The tool addresses the need for responsive code completion by combining several performance optimizations: native C in-memory B-trees for fast lookups, SQLite virtual machine interrupts, a coroutine-based scheduler that processes completions incrementally and can be interrupted, and TCP-style flow control. Results appear on every keystroke without throttling. The fuzzy search algorithm uses typo resistance with recency and proximity bonuses, applying weighted ensemble metrics to rank candidates. The tool integrates with Neovim's LSP client to provide incremental completion with client-side caching, supports multiple language servers simultaneously, handles multiple text encodings, and includes snippet expansion with linked regions. TreeSitter integration shows code context through partial document parsing that automatically disables on large files. A built-in snippet library covers most LSP and Vim grammar patterns, and users can define custom snippets with a live REPL. CTags support provides LSP-like incremental background compilation.
The tool suits developers who want completion results without perceptible latency and who value fuzzy matching that tolerates typos. It works well in projects using Neovim's native LSP client, particularly those combining multiple language servers. The README emphasizes performance as its distinguishing characteristic, noting that results appear faster than the demonstration videos suggest due to compression.
Development shows sustained focus on performance optimization, with detailed documentation of the scheduler architecture and fuzzy search metrics. The project maintains comprehensive built-in snippet coverage and actively supports multiple completion sources including LSP, TreeSitter, and CTags. Documentation addresses configuration of preview window placement, keybindings, and display options, indicating attention to user customization needs.