From f8f3a179cc83181379c02edf56cc79222e7cd3f1 Mon Sep 17 00:00:00 2001 From: Jimmy Byrd Date: Thu, 25 Apr 2024 17:10:28 -0400 Subject: [PATCH] Adds arbitrary additinal arguments to be passed to fsac (#2004) --- release/package.json | 8 ++++++++ src/Core/LanguageService.fs | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/release/package.json b/release/package.json index 31db1fb7..53becf51 100644 --- a/release/package.json +++ b/release/package.json @@ -569,6 +569,14 @@ }, "type": "array" }, + "FSharp.fsac.fsacArgs": { + "default": [], + "description": "additional CLI arguments to be provided to FSAC itself. Useful for flags that aren't exposed in the settings or CLI arguments that only exist in custom built versions of FSAC. Requires restart.", + "items": { + "type": "string" + }, + "type": "array" + }, "FSharp.fsac.gc.conserveMemory": { "markdownDescription": "Configures the garbage collector to [conserve memory](https://learn.microsoft.com/en-us/dotnet/core/runtime-config/garbage-collector#conserve-memory) at the expense of more frequent garbage collections and possibly longer pause times. Acceptable values are 0-9. Any non-zero value will allow the [Large Object Heap](https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/large-object-heap) to be compacted automatically if it has too much fragmentation. Requires restart.", "type": "integer", diff --git a/src/Core/LanguageService.fs b/src/Core/LanguageService.fs index ab5d84a8..a43b260a 100644 --- a/src/Core/LanguageService.fs +++ b/src/Core/LanguageService.fs @@ -900,6 +900,8 @@ Consider: exeOpts.env <- exeEnv + let additionalFSACArgs = "FSharp.fsac.fsacArgs" |> Configuration.get [||] + let args = [ yield! fsacDotnetArgs yield fsacPath @@ -920,7 +922,8 @@ Consider: let storageDir = uri.fsPath yield "--state-directory" yield storageDir - | None -> () ] + | None -> () + yield! additionalFSACArgs ] |> ResizeArray let executable = createEmpty