Skip to content

Releases: MagnusOpera/FScript

0.45.0

20 Feb 07:29

Choose a tag to compare

  • Fixed parser/LSP false "Block cannot end with a let binding" errors for block-scoped let values that contain multiline expression continuations (for example list literals with multiline record items).

Full Changelog: 0.44.0...0.45.0

0.44.0

20 Feb 06:43

Choose a tag to compare

  • Added samples/quicksort.fss with a recursive quicksort example over integer lists.
  • Added let-function return type annotations (let f ... : Type = ...) with parser/type-inference support and updated annotation specifications.

Full Changelog: 0.43.0...0.44.0

0.43.0

18 Feb 22:37

Choose a tag to compare

  • Switched LSP local go-to-definition to lexical AST binding resolution so local symbol usages (including record-field values and edge-of-token clicks) resolve to their exact nearest binder.
  • Added fscript.server.logLevel=debug support to surface detailed definition/references diagnostics and refined definition-follow-up references suppression so declaration clicks still show references while usage clicks navigate reliably.
  • Fixed local match-pattern declaration clicks (for example Some batch) to stop jumping to first usage and preserve references-window behavior.
  • Updated debug logging output to emit LSP window/logMessage entries when fscript.server.logLevel=debug, so logs are visible in editor output.
  • Fixed LSP definition on member-access field names (for example batch.ProjectPaths) to resolve via qualifier type inference (including match-pattern-bound locals).
  • Updated top-level function declaration clicks to preserve references-window behavior by keeping declaration entries in immediate follow-up reference results.
  • Fixed LSP reference indexing to include nameof <symbol> occurrences so top-level declaration clicks surface nameof usages in the references window.
  • Added an independent VS Code/LSP toggle for hover hints so it can be enabled or disabled without disabling the language server.

Full Changelog: 0.42.0...0.43.0

0.42.0

18 Feb 19:48

Choose a tag to compare

  • Added LSP go-to-definition support for local and pattern-bound variable bindings so usages navigate to the nearest in-scope declaration (including function parameters and tuple let destructuring names).

Full Changelog: 0.41.0...0.42.0

0.41.0

16 Feb 22:48

Choose a tag to compare

  • Added Int/Float/Bool conversion helpers in stdlib-style builtins (*.tryParse and *.toString) for safe scalar parsing and string formatting.
  • Added tuple let destructuring (let (a, b) = ...) for top-level, block, and let-expression non-rec bindings.

Full Changelog: 0.40.0...0.41.0

0.40.0

16 Feb 21:16

Choose a tag to compare

  • Fixed VS Code/LSP analysis to inject a default Env binding so scripts using Env no longer show unbound-variable diagnostics in the editor.
  • Fixed VS Code/LSP type navigation so Env and Environment resolve to the stdlib Environment type definition.
  • Added CLI script argument forwarding with -- and injected Env metadata (ScriptName, Arguments) for file, stdin, and REPL execution modes, with Environment now defined in stdlib for LSP/type visibility.

Full Changelog: 0.39.0...0.40.0

0.39.0

16 Feb 20:17

Choose a tag to compare

  • Added VS Code REPL commands to open FScript REPL, send selected code to REPL, and execute the current script in REPL from the editor.
  • Updated VS Code REPL launch to default to auto, preferring local workspace CLI (dotnet run --project src/FScript) before falling back to fscript on PATH.
  • Fixed VS Code REPL script/selection sending to dedent multiline snippets and wrap non-let snippets in an inner let value block, avoiding premature line-by-line execution and indentation/parser errors for selected inner content while keeping atomic execution and persisting only pure single-let selections.

Full Changelog: 0.38.3...0.39.0

0.38.3

15 Feb 22:25

Choose a tag to compare

  • Updated changelog gating and release preparation so release commits can leave ## [Unreleased] empty without placeholder bullets.

Full Changelog: 0.38.2...0.38.3

0.38.2

15 Feb 22:23

Choose a tag to compare

  • Fixed release-prepare changelog rendering so the post-release initialization bullet stays under ## [Unreleased] instead of being appended to the released section.
  • Initialize post-0.38.1 unreleased section.

Full Changelog: 0.38.1...0.38.2

0.38.1

15 Feb 22:18

Choose a tag to compare

  • Fixed release preparation to auto-seed ## [Unreleased] with a post-release initialization bullet so changelog CI checks continue to pass after tagging.
  • Initialize post-0.38.0 unreleased section.

Full Changelog: 0.38.0...0.38.1

  • Initialize post-0.38.1 unreleased section.