2.0.2
First Release of the new frontend. libnixf
This project no longer uses official nix parser.
Breaking Changes
- Configuration file schema is not backward compatible. Please remove your
.nixd.json
files as they will not take any effect. - "Eval" section is completely deleted as considering performance impact. Now values are lazily evaluated and stay immutable during workspace updates.
Screen Shots
https://discourse.nixos.org/t/nixd-2-0-2-released/43891
What's Changed
New Features
- nixd: support hover by @inclyc in #318
- libnixf/Parse: parse expr_select by @inclyc in #329
- nixd: support
textDocument/documentHighlight
by @inclyc in #403 - nixd: support
textDocument/rename
,textDocument/prepareRename
by @inclyc in #405 - nixd: support
textDocument/documentSymbol
by @inclyc in #406 - nixd: support
textDocument/semanticTokens/full
by @inclyc in #408 - nixd: support
textDocument/completion
(static) by @inclyc in #410 - nixd: complete nixpkgs by @inclyc in #411
- nixd: support
textDocument/inlayHint
by @inclyc in #414 - nixd: basic work-done progress support by @inclyc in #416
- nixd: options completion by @inclyc in #415
- nixd: support workspace configuration by @inclyc in #424
- nixd: support formatting by @inclyc in #425
- nixd: provide trigger character "." by @inclyc in #428
- nixd: support
textDocument/documentLink
by @inclyc in #429 - nixd: provide package information on hover request by @inclyc in #430
- nixd: goto-def for nixpkgs packages by @inclyc in #432
- nixd: goto definition(declaration) for nixos options by @inclyc in #433
- libnixf: introduce dots vector by @inclyc in #442
Bug Fixes
- libnixf: fix node range of
Binding
&ExprAttrs
by @inclyc in #319 - libnixf/Parse: fix range for AttrName (String/Expr) by @inclyc in #332
- libnixf/Sema: fix misplaced nested liveness diagnostic by @inclyc in #382
- lspserver: stop connection while the client process died. by @inclyc in #437
- libnixf/Sema: dfs formal default arg if it exists by @inclyc in #439
- nixd/attrs-eval: set offset from zero by @inclyc in #441
- libnixf: fix out-of-bounds access in
Lexer::consumeManyOf
by @xokdvium in #443 - libnixf: fix crash for large integers by @inclyc in #445
Documentation
- docs/editor-setup: extend Emacs setup to include Eglot by @cmacrae in #341
- docs: link toward official wiki by @a-kenji in #427
- docs: update for nixd-next by @inclyc in #435
Other Changes
- vendor: update default.nix for new architecure by @inclyc in #313
- libnixf: parse ExprAttrs (basic, without
inherit
support) by @inclyc in #314 - libnixf: parse variable by @inclyc in #315
- libnixf: use sync tokens for creating unknown nodes (error recovery) by @inclyc in #316
- libnixf: add
descend()
, with boost's small_vector by @inclyc in #320 - libnixf: parse
inherit
binding by @inclyc in #321 - ci: enable -Werror by @inclyc in #324
- libnixf: use unique_ptr by @inclyc in #326
- libnixf: add semantic analysis for
AttrSet
s by @inclyc in #323 - libnixf/Parse: create a class for Parser, expose testing API by @inclyc in #328
- libnixf: parse expr_app by @inclyc in #330
- libnixf: parse list_expr by @inclyc in #331
- libnixf/Parse: create dedicated interpolation by @inclyc in #334
- nixd: add relatedInformation to Diagnostics by @inclyc in #335
- libnixf/Sema: lowering inherit by @inclyc in #333
- nixd: support diagnostic tags by @inclyc in #337
- libnixf: parse lambda_arg by @inclyc in #338
- libnixf: parse lambda_expr by @inclyc in #339
- libnixf/Sema: semantic lowering for lambda formals by @inclyc in #340
- libnixf/test/Parse: refactor parser tests by @inclyc in #343
- libnixf/Parse: remove unexpected for binds by @inclyc in #344
- libnixf/Parse: exit early if missing
=
for binding by @inclyc in #345 - libnixf/Parse: split parsers by @inclyc in #346
- libnixf/Parse: parse expr_op by @inclyc in #347
- libnixf/Basic: split basic nodes headers by @inclyc in #348
- libnixf/Parse: parse expr_if by @inclyc in #349
- libnixf/Parse: parse expr_assert by @inclyc in #350
- libnixf/Parse: parse expr_let by @inclyc in #351
- libnixf/Parse: fix nullptr while parsing expr_op by @inclyc in #352
- libnixf/Parse: parse
expr ? attrpath
by @inclyc in #353 - libnixf/Parse: parse expr_with by @inclyc in #354
- nixd-next: switch to nixd-next by @inclyc in #327
- nixd: refactor files of nixd implementation by @inclyc in #355
- flake: update the lock by @inclyc in #359
- nixd/eval: init by @inclyc in #356
- libbc: install by @inclyc in #363
- lspserver: add close() for actively close the connection by @inclyc in #364
- libnixf: towards immutable lowering by @inclyc in #368
- nixd/librpc: use lspserver framework by @inclyc in #365
- nixd: threaded RPC by @inclyc in #367
- libnixf: return non-owned references for
Attribute
by @inclyc in #371 - libnixf: lowering
let .. in ...
binds by @inclyc in #370 - libnixf: fix various missing child node cases by @inclyc in #373
- libnixf: variable lookups by @inclyc in #372
- libnixf/Sema: fix crashing on null dynamic binding by @inclyc in #375
- libnixf: fix various #include misuses by @inclyc in #376
- nixd: fix various misuses of #includes by @inclyc in #377
- libnixf: add AST serialization by @inclyc in #379
- libnixt: eval dirty flake (by flake-compat) by @inclyc in #381
- nixd: publish variable lookup diagnostics by @inclyc in #383
- libnixt: hack eval cache instead of parse cache by @inclyc in #384
- libnixt: add AST deserialization by @inclyc in #380
- ci: enable ASAN for gcc by @inclyc in #385
- libnixf/{Parse,Sema}: deduplicate lambda arg with it's formals by @inclyc in #386
- libnixt: allow eval decoded expression by @inclyc in #388
- libnixt: add Value library by @inclyc in #389
- libnixf: add parent map by @inclyc in #391
- libnixf: support SPath () by @inclyc in #392
- nixd: install nix-node-eval into libexec by @inclyc in #393
- libnixf/Sema: set attrrange to it's key for var lookup by @inclyc in #396
- libnixf/Sema: fix const correctness for VLA by @inclyc in #399
- libnixf/Sema: fix builtin asserts by @inclyc in #398
- libnixf/Sema: reduce range of with def by @inclyc in #397
- nixd: add basic goto-def support via libnixf (no eval) by @inclyc in #400
- nixd: support find references by @inclyc in #402
- libnixf/Sema: record AST node -> Definition map by @inclyc in #401
- nixd: support goto def for inherit-ed attrs by @inclyc in #404
- libnixf: add Default node to ExprSelect by @inclyc in #407
- libnixf/Sema: record env for later references by @inclyc in #395
- libnixt: add attr selecting library by @inclyc in #412
- nixd: introduce attrset provider by @inclyc in #394
- nixd: disable some definition features by libnixf definition context by @inclyc in #426
- nixd: use orphan nixpkgs, nixos default in lit-test mode by @inclyc in #431
- nixd: cleanup AST findAttrPath by @inclyc in #434
- flake: update the lock by @inclyc in #444
- libnixf/Parse: parse expr_select by @inclyc in #329
New Contributors
- @cmacrae made their first contribution in #341
- @a-kenji made their first contribution in #427
- @xokdvium made their first contribution in #443
Full Changelog: 1.2.3...2.0.2