We’re live on Product Hunt.

Commit

837bf92

I wanted Codeium-level autocomplete back in Neovim. With any model I choose. So I spent a late evening teaching my AI completions to ask the language server first. The problem: LLMs are trained on old snapshots of libraries. In autocomplete, that shows up as invented methods and wrong arguments. Meanwhile, your language server already knows the truth about the version you have installed. What I checked first: Zed's Codestral integration sends a plain fill-in-the-middle request, about 1 KB around the cursor, with no LSP data. Zed's own Zeta 2 model does use type and symbol definitions from the language server. I wanted that idea, but in my editor and with my choice of model. What I built: a small Lua module for Neovim 0.12 that plugs into Minuet (an AI completion plugin that works with any provider) through a prompt placeholder. While I type, it asks gopls or rust-analyzer in the background for: → the signature of the call I'm in, and which argument I'm on → the type of the receiver before the dot → what actually exists after the dot, from the installed library version → errors nearby that existed before I started typing (language server only, not linters) The completion request never waits on the LSP. It just reads a cache. Three lessons: 1. Missing context beats wrong context. Every LSP result is stamped with the buffer version and cursor position, and dropped if I've moved on. 2. Cancelling an LSP request doesn't stop the answer from arriving. Check it's still the latest one. 3. Label your context as documentation. My first version called the method list "completion candidates", and the model happily pasted the whole list as its suggestion. Results so far with Claude Haiku 5.5: about 0.6 s per suggestion, around 50 output tokens, and a method list costs roughly 650 extra input tokens. Gemini Flash-Lite is faster, and swapping models is one line of config. Built with Claude, reviewed by Mistral and ChatGPT, and every review found real bugs. Next: a week of A/B testing (one command toggles the context on and off), then a style block for my dependency-injection conventions, recent edits, and RAG. Code completion isn't fashionable anymore. Everyone's building agents. But it's the AI feature I use hundreds of times a day, so I think it deserves some love. #Neovim #Golang #Rust #DeveloperTools

commit 837bf92

Quick recap for new folks: I built a small Neovim module that makes AI autocomplete ask the language server first. Before every suggestion, the model gets real facts from gopls / rust-analyzer: the signature of the call I'm in, the type before the dot, and what actually exists…