Skip to content

Releases: nix-community/nixd

2.4.0

28 Sep 00:43
2.4.0
Compare
Choose a tag to compare

What's Changed

New Features

  • libnixf: diagnose non-associative operators by @inclyc in #596
  • libnixf: parse pipe operator by @inclyc in #595

Documentation

  • nixd/docs: add example for non-flakes home-manager options by @benjumanji in #586
  • nixd/docs/editors: add markdown parsers in nvim-lsp by @573 in #593

Other Changes

New Contributors

Full Changelog: 2.3.2...2.4.0

2.3.2

16 Aug 03:02
2.3.2
Compare
Choose a tag to compare

What's Changed

New Features

  • nixd/Controller: allow setting initial configuration via CLI by @inclyc in #579
    Add a CLI flag -config used to set initial configuration. For editor clients which does not support workspace configuration, the flag could be used as a fallback.
  • nixd/Controller: handle UTF-16 code units for locations by @inclyc in #580
截屏2024-08-11 00 02 30

Bug Fixes

  • nixd/Controller: report error on textDocument/definition on builtins by @inclyc in #581
  • libnixf: remove sema-escaping-with because it is too pedantic by @inclyc in #582

Other Changes

  • libnixf: remove nixpkgs-fmt by @inclyc in #577
  • nixd: replace nixpkgs-fmt with nixfmt by @sebastienhurtel in #569
    Now nixd will use nixfmt formatter by default.

New Contributors

Full Changelog: 2.3.1...2.3.2

2.3.1

07 Aug 05:32
2.3.1
Compare
Choose a tag to compare

What's Changed

New Features

  • nixd/Controller: support completion for pkgs.subpackages by @inclyc in #563

Add auto-completion code-snippet like this:

    with pkgs.vimPlugins; [
        |
    ]

i.e. with a "select" expression.

Screenshot_20240731_211203

  • libnixf: split sema-unused-def into let, arg and formal by @Aleksanaa in #565
  • libnixf: change extra-{rec,with} diagnostics to warning by @Aleksanaa in #564

Bug Fixes

  • libnixf/Sema: differentiate lambda argument with and without formals by @Aleksanaa in #561

Other Changes

New Contributors

Full Changelog: 2.3.0...2.3.1

2.3.0

26 Jul 01:43
2.3.0
4e9d406
Compare
Choose a tag to compare

What's Changed

This release prioritizes enhancing the functionality of 'select' expressions within the Nix language. For instance, improvements have been made to lib.mkDefault, pkgs.nixd, and similar components.

Unlike previous configuration-based approach in nixd 1.0, these features will work out of box for you.

New Features

  • nixd: lib + pkgs completion with "select", e.g. lib.gen|, pkgs.stdenv.mkDerivat| by @inclyc in #544

Screenshot_20240716_182427

  • nixd/Controller: support select in nested with expression by @inclyc in #546
with pkgs; [ nixd.over| ]

Enables auto-completion for variables that comes from with expression and "select" into nested attrs.

e.g.

image
  • nixd/Controller: support "goto definition" for select expressions by @inclyc in #549

Add "goto definition" support for select expressions, e.g.

with pkgs; [
  nixVersions.nix
#              ^
]
pkgs.stdenv.mkDerivation
#            ^

These values are now "Ctrl + Click"-able to nixpkgs locations.

Bug Fixes

  • nixd: don't pass NIX_PATH to nixd-attrset-eval unit tests by @inclyc in #542
  • nixd/Controller: fix crashing on empty selector idiom in completion by @inclyc in #553

Other Changes

  • libnixf: generate diagnostic declarations from python by @inclyc in #548
  • nixd/Eval: basic support for value metadata by @inclyc in #545
  • nixd/test/completion: precommit pkgs failing test by @inclyc in #550

Packagers' Note

Please add python312 as nativeBuildInputs.

Full Changelog: 2.2.3...2.3.0

2.2.3

16 Jul 02:03
2.2.3
454f74e
Compare
Choose a tag to compare

What's Changed

Bug Fixes

  • nixd: suppress AST is null error (VSCode pops up) by @inclyc in #531
  • nixd: omit inherited attrs semantic tokens by @inclyc in #534
  • libnixf/Sema: ignore builtin liveness warning by @inclyc in #535

Full Changelog: 2.2.2...2.2.3

2.2.2

23 Jun 16:30
2.2.2
Compare
Choose a tag to compare

What's Changed

This release mainly includes UX improvements (less chatty, less bothering) and hover options documentation support.

New Features

  • nixd/hover: hover documentation for options by @Grafcube in #526

Special thanks to @Grafcube who implemented this feature! Now you could have options documentation hovering above. See the screenshot:

截屏2024-06-24 00 25 30
  • libnixf,nixd: demote livenss warning severity to "hint" by @inclyc in #527

This change means "unused xxx" warnings will only be rendered like a fading text, but no actual warning text will be popped up. I hope this will be less annoying for your UX.

截屏2024-06-23 00 46 39
  • nixd/Controller: default ignore nullptr AST by @inclyc in #529

Sometimes if you open a new file there will be many errors popped up, they won't anymore.

null AST is still emitting errors. Should be fixed in the next release.

Bug Fixes

  • nixd/Controller: fix character number -> 0 by @inclyc in #524

Fixes the position (character) to zero, thus there won't be a rendering issue for some client.

  • libnixf: disable escaping with warning for builtin by @Origami404 in #528

image

New Contributors

Full Changelog: 2.2.1...2.2.2

2.2.1

18 Jun 09:52
2.2.1
6fc32fe
Compare
Choose a tag to compare

What's Changed

Bug Fixes

  • libnixf/Sema: fix attribute source context of inherit (expr) ... by @inclyc in #514
  • nixd: suppress completion if the node is not leaf by @inclyc in #522

Documentation

Other Changes

  • libnixf: clearer diagnostic message for escaping the with expression by @kanashimia in #516
  • libnixt: mangle submodule options to it's declaration by @inclyc in #518

New Contributors

Full Changelog: 2.2.0...2.2.1

2.2.0

24 May 05:42
2.2.0
Compare
Choose a tag to compare

Note for packagers:

  • This repo should be built with three packages, libnixf, libnixt, and nixd. To make "nixf" + "nixd" tools standalone.

What's Changed

New Features

Bug Fixes

  • libnixf/Sema: place with warning only on its keyword by @inclyc in #476
  • libnixt: return concrete value for nixt::selectOptions by @inclyc in #473
  • libnixf/Sema: accept last comma by @inclyc in #481
  • libnixt: stop at concrete options, rather than select into it. by @inclyc in #474
  • libnixf: fix missing visitor for ExprPath by @inclyc in #490
  • libnixf: fix variable lookup not visiting empty let ... in ... expr by @inclyc in #501
  • libnixf: report error if extra token is consumed by @inclyc in #506

Documentation

Other Changes

  • flake: update the lock by @inclyc in #491
  • pkg: add a non-generic description by @srid in #498
  • vendor: remove bytecode libraries, and split the package by @inclyc in #494
  • nixd/Controller: reply shutdown by @inclyc in #502

New Contributors

  • @srid made their first contribution in #498

Full Changelog: 2.1.0...2.2.0

2.1.2

02 May 03:34
1256a5e
Compare
Choose a tag to compare

This is a minor release with bug fixes, including:

  • cffe545 libnixf: fix missing visitor for ExprPath (#490)
  • 7e99a36 libnixt: stop at concrete options, rather than select into it. (#474)
  • 6ed1ae9 libnixf/Sema: accept last comma (#481)
  • 5b2c565 libnixt: return concrete value for nixt::selectOptions (#473)
  • 36b4d06 libnixf/Sema: place with warning only on its keyword (#476)

Special credits to @Libadoxon for patiently testing & bug reports.

Full Changelog: 2.1.0...2.1.2

2.1.1

29 Apr 01:25
a8fdfea
Compare
Choose a tag to compare
2.1.1 Pre-release
Pre-release

This is a minor release with bug fixes, including:

  • 7e99a36 libnixt: stop at concrete options, rather than select into it. (#474)
  • 6ed1ae9 libnixf/Sema: accept last comma (#481)
  • 5b2c565 libnixt: return concrete value for nixt::selectOptions (#473)
  • 36b4d06 libnixf/Sema: place with warning only on its keyword (#476)

Full Changelog: 2.1.0...2.1.1