Skip to content

Releases: nix-community/nixd

2.1.0

27 Apr 03:23
2.1.0
0ecf345
Compare
Choose a tag to compare

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

Other Changes

New Contributors

Full Changelog: 2.0.2...2.1.0

2.0.2

22 Apr 03:05
2.0.2
bc81fca
Compare
Choose a tag to compare

First Release of the new frontend. libnixf

This project no longer uses official nix parser.

Breaking Changes

  1. Configuration file schema is not backward compatible. Please remove your .nixd.json files as they will not take any effect.
  2. "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

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 AttrSets 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...
Read more

2.0.1

21 Apr 06:59
ad3e603
Compare
Choose a tag to compare
2.0.1 Pre-release
Pre-release

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
  • 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 AttrSets 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...
Read more

2.0.0

19 Apr 07:28
2.0.0
36463c9
Compare
Choose a tag to compare
2.0.0 Pre-release
Pre-release

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

  • docs/editor-setup: extend Emacs setup to include Eglot by @cmacrae in #341

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 AttrSets 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...
Read more

1.2.3

02 Feb 10:04
1.2.3
af946bc
Compare
Choose a tag to compare

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::Exprs 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

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 for workspace/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

Full Changelog: 1.2.2...1.2.3

v1.2.2

11 Aug 14:11
Compare
Choose a tag to compare

This is a minor release including:

  • Improved laziness evaluation on completion: #239 (e.g. nixd v1.2.2 will give you good completion list for with pkgs; [ ])
  • Fixes potential dead semaphore (which will block our main controller process): #241

Full Changelog: 1.2.1...1.2.2

v1.2.1

05 Aug 15:01
Compare
Choose a tag to compare

What's Changed

New Features

  • nixd/Server: semantic completion by @inclyc in #225
  • nixd/Server/Hover: truncate the string to improve IPC performance by @inclyc in #236

Bug Fixes

  • docs/readme: fix typo: Proejct -> Project by @yvan-sraka in #228
  • nixd/Parser: fix trailing-slash causing infinite loop in the Lexer by @inclyc in #232
  • nixd/Server: split worker in a dedicated class by @inclyc in #230
  • nixd/Server/Controller: fix potential data race while reading config by @inclyc in #234

Other Changes

New Contributors

Full Changelog: 1.2.0...1.2.1

v1.2.0

12 Jul 17:12
Compare
Choose a tag to compare

What's Changed

New Features

  • nixd/Expr: support static variable binding by @inclyc in #191
  • nixd/Parser: basic error handling by @inclyc in #206
  • nixd/Server: add ASTManager for AST caches & builds by @inclyc in #209

Bug Fixes

  • nixd/option: fix crash on invalid option set by @inclyc in #175
  • nixd/driver: don't write stack dump file by @inclyc in #177
  • nixd/documentLinkProvider: conform closer to spec by @happysalada in #189
  • nixd/Parser: ensure the symbol table & pos table lifetime by @inclyc in #199
  • lspserver: unlock the PendingCallsLock before calling callback by @inclyc in #201
  • nixd/Support: avoid ODR violation: fromJSON(lspserver::Diagnostic) by @inclyc in #210
  • nixd/Server: fix outdated draft version for static analysis by @inclyc in #211

Documentation

Other Changes

  • vendor: fix nixd on darwin by @inclyc in #172
  • nixd/diagnostic: improve for multiple errors on single file by @inclyc in #180
  • nixd/parser: avoid using nix::EvalState in parser by @inclyc in #179
  • nixd/parser: use a vector for error handling by @inclyc in #181
  • nixd/parser: split the parser in header files & #includes by @inclyc in #182
  • nixd/parser: make the parser memory-safe by @inclyc in #184
  • refactor: re-arrange directories by @inclyc in #185
  • nixd-ast-dump: init by @inclyc in #183
  • nixd/Parser: make parsing memory-safe for errors, using RAII by @inclyc in #186
  • nixd: kill child on linux by @inclyc in #188
  • nixd/tools/nixd-ast-dump: add ranges support by @inclyc in #190
  • nixd/AST: split AST.h -> EvalAST.h & ParseAST.h by @inclyc in #195
  • nixd/AST: move static analysis to AST library by @inclyc in #196
  • nixd: avoid namespace nix name pollution by @inclyc in #197
  • nixd/Server: move rename to controller by @inclyc in #200
  • nixd/Parser: add thread_local to lexer.l by @inclyc in #202
  • nixd/Server: move documentLink & documentSymbol to controller process by @inclyc in #203
  • nixd/Server: move static definition by @inclyc in #204
  • nixd/completion: move static completion to controller by @inclyc in #205
  • flake: export $NIX_SRC and $NIX_DEBUG_INFO_DIRS, for gdb by @inclyc in #207
  • nixd/Expr: visit ExprError for RecursiveASTVisitor by @inclyc in #216
  • nixd/Server: use mapOptional for workspace configuration by @inclyc in #217
  • github: add release.yml by @inclyc in #224

New Contributors

Full Changelog: 1.1.0...1.2.0

v1.1.0

20 Jun 15:20
Compare
Choose a tag to compare

🎉 New version of nixd here!

Completely New Features

Goto Definition - Values (e.g. lambdas, attrs)

goto-def

Goto Definition - Derivations

goto-def-2

Document Symbol

symbol

Document Link

Screenshot_20230620_151003

Rename

rename

Static Analysis

Provide static bindings (such as rec) without any evaluation.

Screenshot_20230620_152009

Improvements

Automatic Evaluation

You don't need to manually set "eval depth". Nixd will evaluate where you touched lazily.

Diagnostic

Show nix stack trace (completely consistent with official implementation)

Screenshot_20230620_152318

Option System

The nixpkgs option auto-completion subsystem now will show you example if specified.

Screenshot_20230620_162305


Features

  • nixd: goto definition for derivations (#113)
  • nixd/completion/options: send example field to our user (#115)
  • nixd/definition: goto definition for any evaluated non-pos-discarded values (#117)
  • nixd/AST: lookup values if it is statically binds to some value (#130)
  • nixd/parser: hack upstream parser to support ranges (#131)
  • nixd/AST/range: basic ranges support on nix ASTs (#136)
  • nixd/documentLink: init (#140)
  • nixd/expr: support goto definition for lambdas (#141)
  • nixd/definition: enable ranges for definition (#143)
  • nixd/documentSymbol: init (#148)
  • nixd: override upstream nix::Value::print to get shorter message (#149)
  • nixd/diagnostics: imporve diagnostic position & tracing (#152)
  • nixd/rename: support textDocument/rename (#153)
  • nixd/eval: automatically force value when user requests (#158)
  • nixd/eval: update the workspace version when config updated (#159)
  • nixd/eval: search up envs for more completion items (#160)

Bug Fixes

  • lspserver: remove the named mutex when logger startup (#119)
  • nixd: sanitize "target" field (#129)
  • lspserver/logger: use lowlevel robust lock (#137)
  • nixd: search "ContainMin" instead of "Start" for completion (#139)
  • nixd: fix concurrency-related bugs (#146)
  • nixd/documentSymbol: fix overwrite previous result while traversing ExprAttrs (#155)

1.0.0

08 Jun 14:42
Compare
Choose a tag to compare
vendor: v1.0.0