diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 0ab9c54e..29cbf50a 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,3 +1,12 @@ +### 7.20.2 - 17.06.2024 + +* Update to FSAC 0.73.2. This release splits out the settings for `FSharp.FSIExtraParameters` into two groups: + * `FSharp.FSIExtraInteractiveParameters`, used when actually launching FSI instances in VSCode + * `FSharp.FSIExtraSharedParameters` used when doing IDE analysis of scripts. + * Options like `--consolecolors` would go in `FSharp.FSIExtraInteractiveParameters`, while options like `--debug` would go in `FSharp.FSIExtraSharedParameters`. This should help prevent issues where FSI is launched with options that are not supported by the IDE analysis. +* FSAC 0.73.2 also includes fixes for tooltip rendering of optional parameters and generic type parameters. +* Bumped the F# textmate grammar to get [several](https://github.com/ionide/ionide-fsgrammar/pull/211) [really](https://github.com/ionide/ionide-fsgrammar/pull/212) [awesome](https://github.com/ionide/ionide-fsgrammar/pull/214) [fixes](https://github.com/ionide/ionide-fsgrammar/pull/215) from @brianrourkeboll + ### 7.20.1 - 17.05.2024 * Fixed: The .NET 8 build of FsAutoComplete wasn't being included in the build. Now it is! diff --git a/build/build.fsproj b/build/build.fsproj index 9f1f4095..2e3bdeef 100644 --- a/build/build.fsproj +++ b/build/build.fsproj @@ -2,7 +2,7 @@ Exe - net7.0 + net8.0 diff --git a/global.json b/global.json index 90aa1840..33021c04 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,5 @@ { "sdk": { - "version": "7.0.200", - "rollForward": "latestFeature" + "version": "8.0.100" } -} +} \ No newline at end of file diff --git a/paket.dependencies b/paket.dependencies index c342b735..127411da 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -27,7 +27,7 @@ group fsac group build source https://api.nuget.org/v3/index.json storage: none - framework: net7.0 + framework: net8.0 nuget Fake.Core.Target nuget Fake.Core.Process diff --git a/paket.lock b/paket.lock index 65b72db9..3e643b9d 100644 --- a/paket.lock +++ b/paket.lock @@ -38,7 +38,7 @@ NUGET FSharp.Core (>= 4.7.2) GIT remote: https://github.com/ionide/ionide-fsgrammar.git - (7d029a46f17637228b2ee85dd02e511c3e8039b3) + (0100f551f6c32598a58aba97344bf828673fec7a) GITHUB remote: ionide/ionide-vscode-helpers src/Fable.Import.Showdown.fs (8e81bc03f11f07b8e0811b3d4598eadc78f32f2f) @@ -47,7 +47,7 @@ GITHUB src/Helpers.fs (8e81bc03f11f07b8e0811b3d4598eadc78f32f2f) GROUP build STORAGE: NONE -RESTRICTION: == net7.0 +RESTRICTION: == net8.0 NUGET remote: https://api.nuget.org/v3/index.json BlackFox.VsWhere (1.1) @@ -56,122 +56,122 @@ NUGET Fake.Api.GitHub (5.20.4) FSharp.Core (>= 4.7.2) Octokit (>= 0.48) - Fake.Core.CommandLineParsing (5.23.1) + Fake.Core.CommandLineParsing (6.0) FParsec (>= 1.1.1) - FSharp.Core (>= 6.0) - Fake.Core.Context (5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.Environment (5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.FakeVar (5.23.1) - Fake.Core.Context (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.Process (5.23.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.FakeVar (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.Core.Trace (>= 5.23.1) - Fake.IO.FileSystem (>= 5.23.1) - FSharp.Core (>= 6.0) - System.Collections.Immutable (>= 5.0) - Fake.Core.ReleaseNotes (5.23.1) - Fake.Core.SemVer (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.SemVer (5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.String (5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.Target (5.23.1) - Fake.Core.CommandLineParsing (>= 5.23.1) - Fake.Core.Context (>= 5.23.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.FakeVar (>= 5.23.1) - Fake.Core.Process (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.Core.Trace (>= 5.23.1) + FSharp.Core (>= 6.0.3) + Fake.Core.Context (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Environment (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.FakeVar (6.0) + Fake.Core.Context (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Process (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.FakeVar (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + System.Collections.Immutable (>= 6.0) + Fake.Core.ReleaseNotes (6.0) + Fake.Core.SemVer (>= 6.0) + Fake.Core.String (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.SemVer (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.String (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Target (6.0) + Fake.Core.CommandLineParsing (>= 6.0) + Fake.Core.Context (>= 6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.FakeVar (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) FSharp.Control.Reactive (>= 5.0.2) - FSharp.Core (>= 6.0) - Fake.Core.Tasks (5.23.1) - Fake.Core.Trace (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.Trace (5.23.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.FakeVar (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.UserInput (5.23.1) - FSharp.Core (>= 6.0) - Fake.Core.Xml (5.23.1) - Fake.Core.String (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.DotNet.AssemblyInfoFile (5.23.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.Core.Trace (>= 5.23.1) - Fake.IO.FileSystem (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.DotNet.Cli (5.23.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.Process (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.Core.Trace (>= 5.23.1) - Fake.DotNet.MSBuild (>= 5.23.1) - Fake.DotNet.NuGet (>= 5.23.1) - Fake.IO.FileSystem (>= 5.23.1) - FSharp.Core (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Tasks (6.0) + Fake.Core.Trace (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Trace (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.FakeVar (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.UserInput (6.0) + FSharp.Core (>= 6.0.3) + Fake.Core.Xml (6.0) + Fake.Core.String (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.DotNet.AssemblyInfoFile (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.DotNet.Cli (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.DotNet.MSBuild (>= 6.0) + Fake.DotNet.NuGet (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) Mono.Posix.NETStandard (>= 1.0) Newtonsoft.Json (>= 13.0.1) - Fake.DotNet.MSBuild (5.23.1) + Fake.DotNet.MSBuild (6.0) BlackFox.VsWhere (>= 1.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.Process (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.Core.Trace (>= 5.23.1) - Fake.IO.FileSystem (>= 5.23.1) - FSharp.Core (>= 6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) MSBuild.StructuredLogger (>= 2.1.545) - Fake.DotNet.NuGet (5.23.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.Process (>= 5.23.1) - Fake.Core.SemVer (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.Core.Tasks (>= 5.23.1) - Fake.Core.Trace (>= 5.23.1) - Fake.Core.Xml (>= 5.23.1) - Fake.IO.FileSystem (>= 5.23.1) - Fake.Net.Http (>= 5.23.1) - FSharp.Core (>= 6.0) + Fake.DotNet.NuGet (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.SemVer (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Tasks (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.Core.Xml (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + Fake.Net.Http (>= 6.0) + FSharp.Core (>= 6.0.3) Newtonsoft.Json (>= 13.0.1) - NuGet.Protocol (>= 5.11) - Fake.DotNet.Paket (5.23.1) - Fake.Core.Process (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.Core.Trace (>= 5.23.1) - Fake.DotNet.Cli (>= 5.23.1) - Fake.IO.FileSystem (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.IO.FileSystem (5.23.1) - Fake.Core.String (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.IO.Zip (5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.IO.FileSystem (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.JavaScript.Yarn (5.23.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.Process (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.Net.Http (5.23.1) - Fake.Core.Trace (>= 5.23.1) - FSharp.Core (>= 6.0) - Fake.Tools.Git (5.23.1) - Fake.Core.Environment (>= 5.23.1) - Fake.Core.Process (>= 5.23.1) - Fake.Core.SemVer (>= 5.23.1) - Fake.Core.String (>= 5.23.1) - Fake.Core.Trace (>= 5.23.1) - Fake.IO.FileSystem (>= 5.23.1) - FSharp.Core (>= 6.0) + NuGet.Protocol (>= 6.0) + Fake.DotNet.Paket (6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.DotNet.Cli (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.IO.FileSystem (6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.IO.Zip (6.0) + Fake.Core.String (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.JavaScript.Yarn (6.0) + Fake.Core.Process (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Net.Http (6.0) + Fake.Core.Trace (>= 6.0) + FSharp.Core (>= 6.0.3) + Fake.Tools.Git (6.0) + Fake.Core.Environment (>= 6.0) + Fake.Core.Process (>= 6.0) + Fake.Core.SemVer (>= 6.0) + Fake.Core.String (>= 6.0) + Fake.Core.Trace (>= 6.0) + Fake.IO.FileSystem (>= 6.0) + FSharp.Core (>= 6.0.3) FParsec (1.1.1) FSharp.Core (>= 4.3.4) FSharp.Control.Reactive (5.0.5) @@ -194,7 +194,7 @@ NUGET System.Security.Principal.Windows (>= 5.0) Microsoft.Win32.SystemEvents (7.0) Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.2.206) + MSBuild.StructuredLogger (2.2.243) Microsoft.Build.Framework (>= 17.5) Microsoft.Build.Utilities.Core (>= 17.5) Newtonsoft.Json (13.0.2) @@ -241,4 +241,4 @@ STORAGE: PACKAGES RESTRICTION: == netstandard2.0 NUGET remote: https://api.nuget.org/v3/index.json - fsautocomplete (0.73) + fsautocomplete (0.73.2) diff --git a/release/CHANGELOG.md b/release/CHANGELOG.md index 0ab9c54e..4e49bc4b 100644 --- a/release/CHANGELOG.md +++ b/release/CHANGELOG.md @@ -1,3 +1,12 @@ +### 7.20.2 - 17.06.2024 + +* Update to FSAC 0.73.1. This release splits out the settings for `FSharp.FSIExtraParameters` into two groups: + * `FSharp.FSIExtraInteractiveParameters`, used when actually launching FSI instances in VSCode + * `FSharp.FSIExtraSharedParameters` used when doing IDE analysis of scripts. + * Options like `--consolecolors` would go in `FSharp.FSIExtraInteractiveParameters`, while options like `--debug` would go in `FSharp.FSIExtraSharedParameters`. This should help prevent issues where FSI is launched with options that are not supported by the IDE analysis. +* FSAC 0.73.1 also includes fixes for tooltip rendering of optional parameters and generic type parameters. +* Bumped the F# textmate grammar to get [several](https://github.com/ionide/ionide-fsgrammar/pull/211) [really](https://github.com/ionide/ionide-fsgrammar/pull/212) [awesome](https://github.com/ionide/ionide-fsgrammar/pull/214) [fixes](https://github.com/ionide/ionide-fsgrammar/pull/215) from @brianrourkeboll + ### 7.20.1 - 17.05.2024 * Fixed: The .NET 8 build of FsAutoComplete wasn't being included in the build. Now it is! diff --git a/release/package.json b/release/package.json index 31f8847d..c75506ab 100644 --- a/release/package.json +++ b/release/package.json @@ -252,10 +252,6 @@ }, "title": "Show project status" }, - { - "command": "fsharp.explorer.renameFile", - "title": "Rename file" - }, { "command": "fsharp.explorer.addProjecRef", "title": "Add project reference" @@ -638,8 +634,16 @@ "type": "array" }, "FSharp.fsiExtraParameters": { - "default": [], "markdownDescription": "An array of additional command line parameters to pass to FSI when it is started. See [the Microsoft documentation](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/fsharp-interactive-options) for an exhaustive list.", + "type": "array", + "markdownDeprecationMessage": "This setting can lead to errors when providing both FSI-CLI-only and script-typechecking-related parameters. Please use \u0060#FSharp.FSIExtraInteractiveParameters#\u0060 for FSI-CLI-specific parameters, and \u0060#FSharp.FSIExtraSharedParameters#\u0060 for typechecking-related parameters." + }, + "FSharp.FSIExtraSharedParameters": { + "markdownDescription": "An array of additional command line parameters to pass to the compiler to use when checking FSI scripts. See [the Microsoft documentation](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/fsharp-interactive-options) for an exhaustive list. If both this and \u0060#FSharp.fsiExtraParameters#\u0060 are used, only \u0060#FSharp.fsiExtraParameters#\u0060 will be used.", + "type": "array" + }, + "FSharp.FSIExtraInteractiveParameters": { + "markdownDescription": "An array of additional command line parameters to pass to FSI when it is launched. See [the Microsoft documentation](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/fsharp-interactive-options) for an exhaustive list. If both this and \u0060#FSharp.fsiExtraParameters#\u0060 are used, both sets of arguments will be passed to the launched FSI.", "type": "array" }, "FSharp.fsiSdkFilePath": { @@ -1808,5 +1812,5 @@ "type": "git", "url": "https://github.com/ionide/ionide-vscode-fsharp.git" }, - "version": "7.20.1" + "version": "7.20.2" } \ No newline at end of file diff --git a/src/Components/Fsi.fs b/src/Components/Fsi.fs index 6857aab5..9d773246 100644 --- a/src/Components/Fsi.fs +++ b/src/Components/Fsi.fs @@ -357,11 +357,12 @@ module Fsi = let fsiBinaryAndParameters () = let addWatcher = "FSharp.addFsiWatcher" |> Configuration.get false - let parms = + let parms: string array = let fsiParams = - "FSharp.fsiExtraParameters" - |> Configuration.get Array.empty - |> List.ofArray + Array.append + (Configuration.get None "FSharp.fsiExtraParameters" |> Option.toArray) + (Configuration.get None "FSharp.FSIExtraInteractiveParameters" |> Option.toArray) + |> Array.toList let p = node.path.join (VSCodeExtension.ionidePluginPath (), "watcher", "watcher.fsx")