github oxalica/nil 2023-08-09
Snapshot release 2023-08-09

latest release: 2024-08-06
16 months ago

Features

  • Load LSP configuration from initializationOptions (#84), for clients
    without workspace/configuration support.

  • Use semantic token type boolean for true and false. (#52) This makes it
    possible to distinguish them from null which has the token type constant.

  • 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 on with.

  • 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 envvar NIL_LOG set.

  • Delay link resolution in textDocument/documentLink.
    This reduces the time of textDocument/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.

Don't miss a new nil release

NewReleases is sending notifications on new releases.