Features
-
Load LSP configuration from
initializationOptions
(#84), for clients
withoutworkspace/configuration
support. -
Use semantic token type
boolean
fortrue
andfalse
. (#52) This makes it
possible to distinguish them fromnull
which has the token typeconstant
. -
nil diagnostics
exists 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/configuration
only if the client supports it (#85) -
Only show references of
with
when 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
autoArchive
config (#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_LOG
set. -
Delay link resolution in
textDocument/documentLink
.
This reduces the time oftextDocument/documentLink
from ~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/documentHighlight
as
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.