How do red squiggles appear instantly after typing a type error?
Per Wikipedia: “LSP diagnostics are push notifications publishDiagnostics that server sends when files change, carrying errors and warnings with ranges.”
Server is proofreader — as you type it marks mistakes and sends sticky notes with line numbers.
- Buffer changes send didChange
- Server re-analyzes file
- Server sends publishDiagnostics
- Client renders virtual text and signs
- User jumps via diagnostic list
- Push not pull — server decides when
- Ranges map to buffer lines
- Clear on fix — server resends empty
vim.diagnostic.config({virtual_text=true})- Built from: Language Server Protocol — diagnostics is protocol method
- Related: LSP Events — diagnostics ride on events
- Related: LSP Server — server produces diagnostics
- Builds into: Vim LSP — vim renders
- Flooding — large file sends many diagnostics throttles UI
- Stale diagnostics after server crash