Skip to content

1.2.0

Compare
Choose a tag to compare
@yannham yannham released this 14 Sep 17:40
104881b

Version 1.2

Version 1.2 comes with several improvements on the LSP and other components of the Nickel tooling. The new customize mode of the CLI makes it possible to dynamically turn a configuration into a command-line interface, which you can interact with.

Several related long-standing issues and limitations when typechecking polymorphic functions are also finally fixed.

Core language

  • Make the lexer accept scientific notation by @vkleen in #1456
  • Improve polymorphism handling, bidirectional typechecking and fix unsound generalization by @yannham in #1372
  • Error on serializing very large numbers by @vkleen in #1470
  • Import YAML files containing multiple documents as arrays by @vkleen in #1497
  • Normalize line endings in string literals during parsing (Windows compatiblity) by @vkleen in #1562
  • Implement curried dot operator by @suimong in #1578
  • Statically merge partial record definitions by @vkleen in #1599
  • Disable recursive priorities by @yannham in #1600

Fixes

Tooling

  • Full vscode extension by @szlend and @yannham in (#1405, #1413, #1416)
  • Invalidate importers in NLS (plus a couple other import-related issues) by @jneem in #1426
  • Improve nickel query (and :query in the REPL) interface by @yannham in
    #1447
  • Topiary integration (formatting) as nickel format by @vkleen in #1371
  • LSP: various improvements to completion by @jneem (#1450, #1473)
  • Improve doc extraction capabilities through nickel doc (evaluate terms before extracting documentation) by @vkleen in #1463
  • LSP Fix persistent diagnostics by @jneem in #1478
  • Restore --version for CLI, include git revision by @yannham in #1486
  • Disable the colors when stdout isn't a tty by @thufschmitt in #1508
  • Improve type variables name allocation when reporting type errors by @yannham in #1512
  • LSP formatting without calling the topiary binary by @vkleen in #1526
  • LSP Initial handling of incomplete input by @jneem in #1541
  • LSP resolve imports for incomplete inputs also by @jneem in #1542
  • Add multiline string support for VSCode autoclosing pairs by @deotimedev in #1553
  • Display icon for nickel file in vscode explorer by @suimong in #1556
  • New experimental customize mode CLI to interact with a configuration on the
    command line (see nickel help export) by @Radvendii and @yannham in
    #1475
  • (LSP) Import completion by @deotimedev in #1561
  • Get rid of uninformative generic notes for higher-order contract errors by @yannham in #1564
  • Render hover documentation as Markdown in LSP by @deotimedev in #1559
  • Exit with nonzero exit code on failure by @vkleen in #1576

Stdlib

Documentation

  • manual docs: fix mismatch between input command and its echo in the output by @foo-jin in #1421
  • Add two examples: imports and foreach pattern by @mipmip in #1387
  • Fix some leftover instances of the old enum syntax in the manual by @vkleen in #1548

New Contributors

Full Changelog: 1.1.1...1.2.0