Skip to content

Commit da70f14

Browse files
authored
update FSAC and add support for new FSI options (#2016)
1 parent 4586785 commit da70f14

File tree

8 files changed

+150
-128
lines changed

8 files changed

+150
-128
lines changed

RELEASE_NOTES.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
### 7.20.2 - 17.06.2024
2+
3+
* Update to FSAC 0.73.2. This release splits out the settings for `FSharp.FSIExtraParameters` into two groups:
4+
* `FSharp.FSIExtraInteractiveParameters`, used when actually launching FSI instances in VSCode
5+
* `FSharp.FSIExtraSharedParameters` used when doing IDE analysis of scripts.
6+
* 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.
7+
* FSAC 0.73.2 also includes fixes for tooltip rendering of optional parameters and generic type parameters.
8+
* 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
9+
110
### 7.20.1 - 17.05.2024
211

312
* Fixed: The .NET 8 build of FsAutoComplete wasn't being included in the build. Now it is!

build/build.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net7.0</TargetFramework>
5+
<TargetFramework>net8.0</TargetFramework>
66
</PropertyGroup>
77
<ItemGroup>
88
<Compile Include="Program.fs" />

global.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"sdk": {
3-
"version": "7.0.200",
4-
"rollForward": "latestFeature"
3+
"version": "8.0.100"
54
}
6-
}
5+
}

paket.dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ group fsac
2727
group build
2828
source https://api.nuget.org/v3/index.json
2929
storage: none
30-
framework: net7.0
30+
framework: net8.0
3131

3232
nuget Fake.Core.Target
3333
nuget Fake.Core.Process

paket.lock

Lines changed: 113 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ NUGET
3838
FSharp.Core (>= 4.7.2)
3939
GIT
4040
remote: https://github.com/ionide/ionide-fsgrammar.git
41-
(7d029a46f17637228b2ee85dd02e511c3e8039b3)
41+
(0100f551f6c32598a58aba97344bf828673fec7a)
4242
GITHUB
4343
remote: ionide/ionide-vscode-helpers
4444
src/Fable.Import.Showdown.fs (8e81bc03f11f07b8e0811b3d4598eadc78f32f2f)
@@ -47,7 +47,7 @@ GITHUB
4747
src/Helpers.fs (8e81bc03f11f07b8e0811b3d4598eadc78f32f2f)
4848
GROUP build
4949
STORAGE: NONE
50-
RESTRICTION: == net7.0
50+
RESTRICTION: == net8.0
5151
NUGET
5252
remote: https://api.nuget.org/v3/index.json
5353
BlackFox.VsWhere (1.1)
@@ -56,122 +56,122 @@ NUGET
5656
Fake.Api.GitHub (5.20.4)
5757
FSharp.Core (>= 4.7.2)
5858
Octokit (>= 0.48)
59-
Fake.Core.CommandLineParsing (5.23.1)
59+
Fake.Core.CommandLineParsing (6.0)
6060
FParsec (>= 1.1.1)
61-
FSharp.Core (>= 6.0)
62-
Fake.Core.Context (5.23.1)
63-
FSharp.Core (>= 6.0)
64-
Fake.Core.Environment (5.23.1)
65-
FSharp.Core (>= 6.0)
66-
Fake.Core.FakeVar (5.23.1)
67-
Fake.Core.Context (>= 5.23.1)
68-
FSharp.Core (>= 6.0)
69-
Fake.Core.Process (5.23.1)
70-
Fake.Core.Environment (>= 5.23.1)
71-
Fake.Core.FakeVar (>= 5.23.1)
72-
Fake.Core.String (>= 5.23.1)
73-
Fake.Core.Trace (>= 5.23.1)
74-
Fake.IO.FileSystem (>= 5.23.1)
75-
FSharp.Core (>= 6.0)
76-
System.Collections.Immutable (>= 5.0)
77-
Fake.Core.ReleaseNotes (5.23.1)
78-
Fake.Core.SemVer (>= 5.23.1)
79-
Fake.Core.String (>= 5.23.1)
80-
FSharp.Core (>= 6.0)
81-
Fake.Core.SemVer (5.23.1)
82-
FSharp.Core (>= 6.0)
83-
Fake.Core.String (5.23.1)
84-
FSharp.Core (>= 6.0)
85-
Fake.Core.Target (5.23.1)
86-
Fake.Core.CommandLineParsing (>= 5.23.1)
87-
Fake.Core.Context (>= 5.23.1)
88-
Fake.Core.Environment (>= 5.23.1)
89-
Fake.Core.FakeVar (>= 5.23.1)
90-
Fake.Core.Process (>= 5.23.1)
91-
Fake.Core.String (>= 5.23.1)
92-
Fake.Core.Trace (>= 5.23.1)
61+
FSharp.Core (>= 6.0.3)
62+
Fake.Core.Context (6.0)
63+
FSharp.Core (>= 6.0.3)
64+
Fake.Core.Environment (6.0)
65+
FSharp.Core (>= 6.0.3)
66+
Fake.Core.FakeVar (6.0)
67+
Fake.Core.Context (>= 6.0)
68+
FSharp.Core (>= 6.0.3)
69+
Fake.Core.Process (6.0)
70+
Fake.Core.Environment (>= 6.0)
71+
Fake.Core.FakeVar (>= 6.0)
72+
Fake.Core.String (>= 6.0)
73+
Fake.Core.Trace (>= 6.0)
74+
Fake.IO.FileSystem (>= 6.0)
75+
FSharp.Core (>= 6.0.3)
76+
System.Collections.Immutable (>= 6.0)
77+
Fake.Core.ReleaseNotes (6.0)
78+
Fake.Core.SemVer (>= 6.0)
79+
Fake.Core.String (>= 6.0)
80+
FSharp.Core (>= 6.0.3)
81+
Fake.Core.SemVer (6.0)
82+
FSharp.Core (>= 6.0.3)
83+
Fake.Core.String (6.0)
84+
FSharp.Core (>= 6.0.3)
85+
Fake.Core.Target (6.0)
86+
Fake.Core.CommandLineParsing (>= 6.0)
87+
Fake.Core.Context (>= 6.0)
88+
Fake.Core.Environment (>= 6.0)
89+
Fake.Core.FakeVar (>= 6.0)
90+
Fake.Core.Process (>= 6.0)
91+
Fake.Core.String (>= 6.0)
92+
Fake.Core.Trace (>= 6.0)
9393
FSharp.Control.Reactive (>= 5.0.2)
94-
FSharp.Core (>= 6.0)
95-
Fake.Core.Tasks (5.23.1)
96-
Fake.Core.Trace (>= 5.23.1)
97-
FSharp.Core (>= 6.0)
98-
Fake.Core.Trace (5.23.1)
99-
Fake.Core.Environment (>= 5.23.1)
100-
Fake.Core.FakeVar (>= 5.23.1)
101-
FSharp.Core (>= 6.0)
102-
Fake.Core.UserInput (5.23.1)
103-
FSharp.Core (>= 6.0)
104-
Fake.Core.Xml (5.23.1)
105-
Fake.Core.String (>= 5.23.1)
106-
FSharp.Core (>= 6.0)
107-
Fake.DotNet.AssemblyInfoFile (5.23.1)
108-
Fake.Core.Environment (>= 5.23.1)
109-
Fake.Core.String (>= 5.23.1)
110-
Fake.Core.Trace (>= 5.23.1)
111-
Fake.IO.FileSystem (>= 5.23.1)
112-
FSharp.Core (>= 6.0)
113-
Fake.DotNet.Cli (5.23.1)
114-
Fake.Core.Environment (>= 5.23.1)
115-
Fake.Core.Process (>= 5.23.1)
116-
Fake.Core.String (>= 5.23.1)
117-
Fake.Core.Trace (>= 5.23.1)
118-
Fake.DotNet.MSBuild (>= 5.23.1)
119-
Fake.DotNet.NuGet (>= 5.23.1)
120-
Fake.IO.FileSystem (>= 5.23.1)
121-
FSharp.Core (>= 6.0)
94+
FSharp.Core (>= 6.0.3)
95+
Fake.Core.Tasks (6.0)
96+
Fake.Core.Trace (>= 6.0)
97+
FSharp.Core (>= 6.0.3)
98+
Fake.Core.Trace (6.0)
99+
Fake.Core.Environment (>= 6.0)
100+
Fake.Core.FakeVar (>= 6.0)
101+
FSharp.Core (>= 6.0.3)
102+
Fake.Core.UserInput (6.0)
103+
FSharp.Core (>= 6.0.3)
104+
Fake.Core.Xml (6.0)
105+
Fake.Core.String (>= 6.0)
106+
FSharp.Core (>= 6.0.3)
107+
Fake.DotNet.AssemblyInfoFile (6.0)
108+
Fake.Core.Environment (>= 6.0)
109+
Fake.Core.String (>= 6.0)
110+
Fake.Core.Trace (>= 6.0)
111+
Fake.IO.FileSystem (>= 6.0)
112+
FSharp.Core (>= 6.0.3)
113+
Fake.DotNet.Cli (6.0)
114+
Fake.Core.Environment (>= 6.0)
115+
Fake.Core.Process (>= 6.0)
116+
Fake.Core.String (>= 6.0)
117+
Fake.Core.Trace (>= 6.0)
118+
Fake.DotNet.MSBuild (>= 6.0)
119+
Fake.DotNet.NuGet (>= 6.0)
120+
Fake.IO.FileSystem (>= 6.0)
121+
FSharp.Core (>= 6.0.3)
122122
Mono.Posix.NETStandard (>= 1.0)
123123
Newtonsoft.Json (>= 13.0.1)
124-
Fake.DotNet.MSBuild (5.23.1)
124+
Fake.DotNet.MSBuild (6.0)
125125
BlackFox.VsWhere (>= 1.1)
126-
Fake.Core.Environment (>= 5.23.1)
127-
Fake.Core.Process (>= 5.23.1)
128-
Fake.Core.String (>= 5.23.1)
129-
Fake.Core.Trace (>= 5.23.1)
130-
Fake.IO.FileSystem (>= 5.23.1)
131-
FSharp.Core (>= 6.0)
126+
Fake.Core.Environment (>= 6.0)
127+
Fake.Core.Process (>= 6.0)
128+
Fake.Core.String (>= 6.0)
129+
Fake.Core.Trace (>= 6.0)
130+
Fake.IO.FileSystem (>= 6.0)
131+
FSharp.Core (>= 6.0.3)
132132
MSBuild.StructuredLogger (>= 2.1.545)
133-
Fake.DotNet.NuGet (5.23.1)
134-
Fake.Core.Environment (>= 5.23.1)
135-
Fake.Core.Process (>= 5.23.1)
136-
Fake.Core.SemVer (>= 5.23.1)
137-
Fake.Core.String (>= 5.23.1)
138-
Fake.Core.Tasks (>= 5.23.1)
139-
Fake.Core.Trace (>= 5.23.1)
140-
Fake.Core.Xml (>= 5.23.1)
141-
Fake.IO.FileSystem (>= 5.23.1)
142-
Fake.Net.Http (>= 5.23.1)
143-
FSharp.Core (>= 6.0)
133+
Fake.DotNet.NuGet (6.0)
134+
Fake.Core.Environment (>= 6.0)
135+
Fake.Core.Process (>= 6.0)
136+
Fake.Core.SemVer (>= 6.0)
137+
Fake.Core.String (>= 6.0)
138+
Fake.Core.Tasks (>= 6.0)
139+
Fake.Core.Trace (>= 6.0)
140+
Fake.Core.Xml (>= 6.0)
141+
Fake.IO.FileSystem (>= 6.0)
142+
Fake.Net.Http (>= 6.0)
143+
FSharp.Core (>= 6.0.3)
144144
Newtonsoft.Json (>= 13.0.1)
145-
NuGet.Protocol (>= 5.11)
146-
Fake.DotNet.Paket (5.23.1)
147-
Fake.Core.Process (>= 5.23.1)
148-
Fake.Core.String (>= 5.23.1)
149-
Fake.Core.Trace (>= 5.23.1)
150-
Fake.DotNet.Cli (>= 5.23.1)
151-
Fake.IO.FileSystem (>= 5.23.1)
152-
FSharp.Core (>= 6.0)
153-
Fake.IO.FileSystem (5.23.1)
154-
Fake.Core.String (>= 5.23.1)
155-
FSharp.Core (>= 6.0)
156-
Fake.IO.Zip (5.23.1)
157-
Fake.Core.String (>= 5.23.1)
158-
Fake.IO.FileSystem (>= 5.23.1)
159-
FSharp.Core (>= 6.0)
160-
Fake.JavaScript.Yarn (5.23.1)
161-
Fake.Core.Environment (>= 5.23.1)
162-
Fake.Core.Process (>= 5.23.1)
163-
FSharp.Core (>= 6.0)
164-
Fake.Net.Http (5.23.1)
165-
Fake.Core.Trace (>= 5.23.1)
166-
FSharp.Core (>= 6.0)
167-
Fake.Tools.Git (5.23.1)
168-
Fake.Core.Environment (>= 5.23.1)
169-
Fake.Core.Process (>= 5.23.1)
170-
Fake.Core.SemVer (>= 5.23.1)
171-
Fake.Core.String (>= 5.23.1)
172-
Fake.Core.Trace (>= 5.23.1)
173-
Fake.IO.FileSystem (>= 5.23.1)
174-
FSharp.Core (>= 6.0)
145+
NuGet.Protocol (>= 6.0)
146+
Fake.DotNet.Paket (6.0)
147+
Fake.Core.Process (>= 6.0)
148+
Fake.Core.String (>= 6.0)
149+
Fake.Core.Trace (>= 6.0)
150+
Fake.DotNet.Cli (>= 6.0)
151+
Fake.IO.FileSystem (>= 6.0)
152+
FSharp.Core (>= 6.0.3)
153+
Fake.IO.FileSystem (6.0)
154+
Fake.Core.String (>= 6.0)
155+
Fake.Core.Trace (>= 6.0)
156+
FSharp.Core (>= 6.0.3)
157+
Fake.IO.Zip (6.0)
158+
Fake.Core.String (>= 6.0)
159+
Fake.IO.FileSystem (>= 6.0)
160+
FSharp.Core (>= 6.0.3)
161+
Fake.JavaScript.Yarn (6.0)
162+
Fake.Core.Process (>= 6.0)
163+
FSharp.Core (>= 6.0.3)
164+
Fake.Net.Http (6.0)
165+
Fake.Core.Trace (>= 6.0)
166+
FSharp.Core (>= 6.0.3)
167+
Fake.Tools.Git (6.0)
168+
Fake.Core.Environment (>= 6.0)
169+
Fake.Core.Process (>= 6.0)
170+
Fake.Core.SemVer (>= 6.0)
171+
Fake.Core.String (>= 6.0)
172+
Fake.Core.Trace (>= 6.0)
173+
Fake.IO.FileSystem (>= 6.0)
174+
FSharp.Core (>= 6.0.3)
175175
FParsec (1.1.1)
176176
FSharp.Core (>= 4.3.4)
177177
FSharp.Control.Reactive (5.0.5)
@@ -194,7 +194,7 @@ NUGET
194194
System.Security.Principal.Windows (>= 5.0)
195195
Microsoft.Win32.SystemEvents (7.0)
196196
Mono.Posix.NETStandard (1.0)
197-
MSBuild.StructuredLogger (2.2.206)
197+
MSBuild.StructuredLogger (2.2.243)
198198
Microsoft.Build.Framework (>= 17.5)
199199
Microsoft.Build.Utilities.Core (>= 17.5)
200200
Newtonsoft.Json (13.0.2)
@@ -241,4 +241,4 @@ STORAGE: PACKAGES
241241
RESTRICTION: == netstandard2.0
242242
NUGET
243243
remote: https://api.nuget.org/v3/index.json
244-
fsautocomplete (0.73)
244+
fsautocomplete (0.73.2)

release/CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
### 7.20.2 - 17.06.2024
2+
3+
* Update to FSAC 0.73.1. This release splits out the settings for `FSharp.FSIExtraParameters` into two groups:
4+
* `FSharp.FSIExtraInteractiveParameters`, used when actually launching FSI instances in VSCode
5+
* `FSharp.FSIExtraSharedParameters` used when doing IDE analysis of scripts.
6+
* 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.
7+
* FSAC 0.73.1 also includes fixes for tooltip rendering of optional parameters and generic type parameters.
8+
* 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
9+
110
### 7.20.1 - 17.05.2024
211

312
* Fixed: The .NET 8 build of FsAutoComplete wasn't being included in the build. Now it is!

release/package.json

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -252,10 +252,6 @@
252252
},
253253
"title": "Show project status"
254254
},
255-
{
256-
"command": "fsharp.explorer.renameFile",
257-
"title": "Rename file"
258-
},
259255
{
260256
"command": "fsharp.explorer.addProjecRef",
261257
"title": "Add project reference"
@@ -638,8 +634,16 @@
638634
"type": "array"
639635
},
640636
"FSharp.fsiExtraParameters": {
641-
"default": [],
642637
"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.",
638+
"type": "array",
639+
"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."
640+
},
641+
"FSharp.FSIExtraSharedParameters": {
642+
"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.",
643+
"type": "array"
644+
},
645+
"FSharp.FSIExtraInteractiveParameters": {
646+
"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.",
643647
"type": "array"
644648
},
645649
"FSharp.fsiSdkFilePath": {
@@ -1808,5 +1812,5 @@
18081812
"type": "git",
18091813
"url": "https://github.com/ionide/ionide-vscode-fsharp.git"
18101814
},
1811-
"version": "7.20.1"
1815+
"version": "7.20.2"
18121816
}

src/Components/Fsi.fs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -357,11 +357,12 @@ module Fsi =
357357
let fsiBinaryAndParameters () =
358358
let addWatcher = "FSharp.addFsiWatcher" |> Configuration.get false
359359

360-
let parms =
360+
let parms: string array =
361361
let fsiParams =
362-
"FSharp.fsiExtraParameters"
363-
|> Configuration.get Array.empty<string>
364-
|> List.ofArray
362+
Array.append
363+
(Configuration.get None "FSharp.fsiExtraParameters" |> Option.toArray)
364+
(Configuration.get None "FSharp.FSIExtraInteractiveParameters" |> Option.toArray)
365+
|> Array.toList
365366

366367
let p =
367368
node.path.join (VSCodeExtension.ionidePluginPath (), "watcher", "watcher.fsx")

0 commit comments

Comments
 (0)