Features
-
Load LSP configuration from
initializationOptions(#84), for clients
withoutworkspace/configurationsupport. -
Use semantic token type
booleanfortrueandfalse. (#52) This makes it
possible to distinguish them fromnullwhich has the token typeconstant. -
nil diagnosticsexists with code 1 only if there is any error. (#90)
Warnings are not counted for exit code now. -
Impl memory limit configuration for flake evaluation, with config key
nil.nix.maxMemoryMB. Only Linux platforms are supported yet. -
Highly experimental SSR (Structural Search & Replace) impl as CLI
nil ssr.
Fixes
-
Send
workspace/configurationonly if the client supports it (#85) -
Only show references of
withwhen the cursor is exactly onwith. -
Also show references of a variable when cursor's on one of them (#86).
-
Fix flake reloading condition on file changes (#92).
-
Fix popup message to mention
autoArchiveconfig (#96). -
Fix build with nix 2.17 (#94).
-
Fix missed diagnostic update on the first open (#89).
-
Fix nondeterminism of diagnostics ordering.
-
Fix parsing of block comments.
-
Fix offset conversion for end of file (#100).
-
Fix many more typos.
Internal
-
Response time and size logging via
NIL_LOG=nil=debug. Useful for debugging.
Log messages >=DEBUG are now included in the release build, though disabled
unless having filter envvarNIL_LOGset. -
Delay link resolution in
textDocument/documentLink.
This reduces the time oftextDocument/documentLinkfrom ~100ms down
to ~20ms for MB-sized files. Editors doing frequent query of links like
coc.nvim can benefit a lot from it. -
Filter out far away spans in
textDocument/documentHighlightas
optimization. They are not displayed anyway. -
Enable LTO for release builds.
-
Bump MSRV to 1.70
-
Drop support for file-backed stdin/stdout in language server mode.
It makes no sense.