Releases: nix-community/nixd
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:
![截屏2024-06-24 00 25 30](https://private-user-images.githubusercontent.com/36667224/342089629-2232565f-7394-4ac7-85dd-512670de7b11.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3MDM4NTgsIm5iZiI6MTcxOTcwMzU1OCwicGF0aCI6Ii8zNjY2NzIyNC8zNDIwODk2MjktMjIzMjU2NWYtNzM5NC00YWM3LTg1ZGQtNTEyNjcwZGU3YjExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI5VDIzMjU1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM5OThkYWM3ZDRiMDViYTU2NTlkNjkwZjdjMTcwYmI4MDY5N2QzZjIxN2QzNzg0ZjUxMDJhYzI1ZTY4ODQwNjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.o1pqiYm5ggAmzWhU8jhr26EAte9U1CXuE9f5wAKFcn0)
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](https://private-user-images.githubusercontent.com/36667224/341984659-e90c48a1-172c-460a-856a-e4ff16f3933e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk3MDM4NTgsIm5iZiI6MTcxOTcwMzU1OCwicGF0aCI6Ii8zNjY2NzIyNC8zNDE5ODQ2NTktZTkwYzQ4YTEtMTcyYy00NjBhLTg1NmEtZTRmZjE2ZjM5MzNlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI5VDIzMjU1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI5YzAwMWNmMTNkYzVjOWM0Zjc1NWFmMzg4YTBhZGQyN2Q4YmQwM2YzZDQxMmU4NmE4MWNhZDc1YjNhOGMyODEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.5wUIioYjLoUaD2bh86j6U_8pvKvkjI0n8J_flio27_Q)
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
2.1.0
What's Changed
New Features
- libnixf: diagnose empty inherit by @inclyc in #457
- libnixf: diagnose redundant paren by @inclyc in #448
- libnixf: introduce
nixf-tidy
, perform analysis, lints and emit json by @inclyc in #446 - libnixf: provide linting for escaping
with
by @inclyc in #458 - {libnixt,nixd/Eval}: support
attrsOf submodule
by @inclyc in #465 - nixd: introduce
--semantic-tokens=true/false
to toggle the feature by @inclyc in #470
Bug Fixes
- libnixf: omit pedantic liveness warning on lambda arg by @inclyc in #464
- libnixf: inherit expression should comes from "NewEnv" for recursive … by @inclyc in #467
- libnixf: dispatch lambda formals correctly by @inclyc in #468
Documentation
- docs: optimize the neovim testing environment by @Ruixi-rebirth in #449
- nixd/docs: add hacking guide by @inclyc in #453
- editors/emacs: update document by @Freed-Wu in #455
- docs: improving nvim configuration nixd by @Ruixi-rebirth in #459
Other Changes
- editors/nvim: fix missing example folder issue in remote testing by @Ruixi-rebirth in #450
- flake: set meta.mainProgram to
nixd
by @FedericoSchonborn in #460
New Contributors
- @FedericoSchonborn made their first contribution in #460
Full Changelog: 2.0.2...2.1.0
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 correctn...
2.0.1
What's Changed
New Features
- nixd: support hover by @inclyc in #318
- libnixf/Parse: parse expr_select by @inclyc in #329
- 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: 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
- nixd: support
textDocument/documentHighlight
by @inclyc in #403 - nixd: support
textDocument/rename
,textDocument/prepareRename
by @inclyc in #405 - libnixf: add Default node to ExprSelect by @inclyc in #407
- nixd: support
textDocument/documentSymbol
by @inclyc in #406 - nixd: support
textDocument/semanticTokens/full
by @inclyc in #408 - libnixf/Sema: record env for later references by @inclyc in #395
- nixd: support
textDocument/completion
(static) by @inclyc in #410 - libnixt: add attr selecting library by @inclyc in #412
- nixd: introduce attrset provider by @inclyc in #394
- 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: dis...
2.0.0
First Version of the new frontend.
Please test it with your daily workloads. It is expected to be buggy in this version.
What's Changed
New Features
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
Documentation
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
- nixd: support
textDocument/documentHighlight
by @inclyc in #403 - nixd: support
textDocument/rename
,textDocument/prepareRename
by @inclyc in #405 - libnixf: add Default node to ExprSelect by @inclyc in #407
- nixd: support
textDocument/documentSymbol
by @inclyc in #406 - nixd: support
textDocument/semanticTokens/full
by @inclyc in #408 - libnixf/Sema: record env for later references by @inclyc in #395
- nixd: support
textDocument/completion
(static) by @inclyc in #410 - libnixt: add attr selecting library by @inclyc in #412
- nixd: introduce attrset provider by @inclyc in #394
- 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: disable some definition features by libnixf definition context by @inclyc in #426
- docs: link toward official wiki by @a-kenji in #427
- nixd: provide trigger character "." by @inclyc in #428
- nixd: support
textDocument/documentLink
by @inclyc in #429 - nixd: use orphan nixpkgs, nixos default in lit-test mode by @inclyc in #431
- nixd: provide package information on hover request by @inclyc in https://gi...
1.2.3
Last Release of Legacy nixd
We are migrating to a new frontend, this is release is the last version of legacy codes. The next a few (pre-)releases will be nixd-next.
This generally fixes some workspace issues (e.g. for emacs users), by @jonathanjameswatson(Special thanks!). Other parser/lexer updates are not visible by end-users.
What's Changed
New Features
- nixd/Sema: add CompletionBuilder by @inclyc in #239
- nixd/Server: construct names of nested attr set by @inclyc in #249
- libnixt: add Kinds.h and Kinds.cpp, to descriminate
nix::Expr
s by @inclyc in #285 - libnixt: add Serialize by @inclyc in #276
- libnixf: parse ExprString by @inclyc in #292
- libnixf: parse string interpolation by @inclyc in #294
- libnixf: parse indented string by @inclyc in #295
- libnixf: line column range by @inclyc in #296
- libnixf: parse ExprPath by @inclyc in #297
- nixd-next: init, without any capabilities by @inclyc in #301
- nixd-next: text document synchronization by @inclyc in #303
- libnixf: support multiple fixes by @inclyc in #309
- nixd-next: add diagnostic quick fix (code action) by @inclyc in #310
Bug Fixes
- nixd/Server: fix dead semaphore in
Controller::onCompletion
by @inclyc in #241 - nixd/Sema: filter item prefix for completion builder by @inclyc in #242
- nixd: fix output of --version by @hellodword in #259
- libnixf: fix lexer float trailing
e
args by @inclyc in #306 - libnixf: fix Lexer location indexes by @inclyc in #305
Documentation
- docs: split editors.md from docs/editor-setup by @inclyc in #253
- docs/README: add "Get Started" by @inclyc in #254
- docs: remove surplus code fence by @katexochen in #256
- docs/editor-setup: add Emacs setup information by @jonathanjameswatson in #268
- docs: move docs into nixd/ subfolder by @inclyc in #281
- docs: add nixd worker model by @inclyc in #282
- docs: generate doxygen to gh-pages by @inclyc in #286
- libnixt: fix various doc-comments for doxygen by @inclyc in #287
- docs: remove
$
from installation Markdown code snippets by @peterbecich in #288 - nixd: add a json schema by @Freed-Wu in #304
Other Changes
- nixd: general cleanups by @inclyc in #240
- nixd/AST: static factory method for ASTs by @inclyc in #250
- nixd/Server/configuration: use
.nixd.json
forworkspace/configuration
defaults by @jonathanjameswatson in #261 - nixd/Server/configuration: Log when
workspace/configuration
is[null]
by @jonathanjameswatson in #267 - nixd/Server/format: suppress error popups by @inclyc in #252
- flake: update the lock by @inclyc in #280
- libnixf: add to top-level build by @inclyc in #278
- github/workflows: add update-flake-lock action to bump deps by @inclyc in #284
- libnixf: remove green node design by @inclyc in #291
- libnixf: rename getter for
Token
,getXxx()
->xxx()
by @inclyc in #293 - libnixf: remove fmt dependency by @inclyc in #298
- libnixf: flatten libnixf/lib/meson.build, to a single library by @inclyc in #300
- libnixf: remove
DiagnosticEngine
by @inclyc in #302 - libnixf: parse ExprParen
( expr )
by @inclyc in #308 - libnixf: format diagnostic message by @inclyc in #312
- nixd-next: basic diagnostics support in the Controller by @inclyc in #307
New Contributors
- @katexochen made their first contribution in #256
- @hellodword made their first contribution in #259
- @jonathanjameswatson made their first contribution in #261
- @peterbecich made their first contribution in #288
Full Changelog: 1.2.2...1.2.3