Releases: MagnusOpera/FScript
Releases · MagnusOpera/FScript
0.45.0
- Fixed parser/LSP false "Block cannot end with a let binding" errors for block-scoped
letvalues that contain multiline expression continuations (for example list literals with multiline record items).
Full Changelog: 0.44.0...0.45.0
0.44.0
- Added
samples/quicksort.fsswith 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
- 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=debugsupport 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/logMessageentries whenfscript.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 surfacenameofusages 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
- 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
letdestructuring names).
Full Changelog: 0.41.0...0.42.0
0.41.0
- Added
Int/Float/Boolconversion helpers in stdlib-style builtins (*.tryParseand*.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
- Fixed VS Code/LSP analysis to inject a default
Envbinding so scripts usingEnvno longer show unbound-variable diagnostics in the editor. - Fixed VS Code/LSP type navigation so
EnvandEnvironmentresolve to the stdlibEnvironmenttype definition. - Added CLI script argument forwarding with
--and injectedEnvmetadata (ScriptName,Arguments) for file, stdin, and REPL execution modes, withEnvironmentnow defined in stdlib for LSP/type visibility.
Full Changelog: 0.39.0...0.40.0
0.39.0
- 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 tofscripton PATH. - Fixed VS Code REPL script/selection sending to dedent multiline snippets and wrap non-
letsnippets in an innerletvalue block, avoiding premature line-by-line execution and indentation/parser errors for selected inner content while keeping atomic execution and persisting only pure single-letselections.
Full Changelog: 0.38.3...0.39.0
0.38.3
- 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
- Fixed
release-preparechangelog 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
- 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.