Releases: nix-community/nixd
2.4.0
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
- nixd/lspserver: fix typo "handler" by @Freed-Wu in #594
- libnixf: fix typo
Identifer
->Identifier
by @inclyc in #601
New Contributors
- @benjumanji made their first contribution in #586
- @573 made their first contribution in #593
Full Changelog: 2.3.2...2.4.0
2.3.2
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
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 usenixfmt
formatter by default.
New Contributors
- @sebastienhurtel made their first contribution in #569
Full Changelog: 2.3.1...2.3.2
2.3.1
What's Changed
New Features
Add auto-completion code-snippet like this:
with pkgs.vimPlugins; [
|
]
i.e. with a "select" expression.
- 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
- flake: add treefmt-nix by @Aleksanaa in #562
New Contributors
- @Aleksanaa made their first contribution in #561
Full Changelog: 2.3.0...2.3.1
2.3.0
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
with pkgs; [ nixd.over| ]
Enables auto-completion for variables that comes from with
expression and "select" into nested attrs.
e.g.
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
2.2.2
What's Changed
This release mainly includes UX improvements (less chatty, less bothering) and hover options documentation support.
New Features
Special thanks to @Grafcube who implemented this feature! Now you could have options documentation hovering above. See the screenshot:
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.
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
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
New Contributors
- @Grafcube made their first contribution in #526
- @Origami404 made their first contribution in #528
Full Changelog: 2.2.1...2.2.2
2.2.1
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
- @kanashimia made their first contribution in #516
Full Changelog: 2.2.0...2.2.1
2.2.0
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
- nixd: diagnostic control system by @inclyc in #505
- libnixf/Parse: accept url literal by @inclyc in #508
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
- docs/examples: add flake-parts by @Ruixi-rebirth in #488
- libnixf: add README by @inclyc in #484
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
Full Changelog: 2.1.0...2.2.0
2.1.2
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
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