diff --git a/global.json b/global.json index 31d071663..5c6dc58bc 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,7 @@ { "sdk": { "version": "7.0.400", + "rollForward": "major", "allowPrerelease": true } } \ No newline at end of file diff --git a/paket.lock b/paket.lock index 76a1e90db..d8f6ff062 100644 --- a/paket.lock +++ b/paket.lock @@ -137,17 +137,17 @@ NUGET FSharp.Core (>= 6.0) Newtonsoft.Json (>= 13.0.1) StreamJsonRpc (>= 2.16.36) - Ionide.ProjInfo (0.62) + Ionide.ProjInfo (0.63) FSharp.Core (>= 7.0.400) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) Ionide.ProjInfo.Sln (>= 0.62) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) Microsoft.Build (>= 17.2) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) Microsoft.Build.Framework (>= 17.2) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) SemanticVersioning (>= 2.0.2) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) - Ionide.ProjInfo.FCS (0.62) + Ionide.ProjInfo.FCS (0.63) FSharp.Compiler.Service (>= 43.7.400) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) FSharp.Core (>= 7.0.400) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) Ionide.ProjInfo (>= 0.62) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) - Ionide.ProjInfo.ProjectSystem (0.62) + Ionide.ProjInfo.ProjectSystem (0.63) FSharp.Compiler.Service (>= 43.7.400) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) FSharp.Control.Reactive (>= 5.0.5) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) FSharp.Core (>= 7.0.400) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) @@ -155,7 +155,7 @@ NUGET Ionide.ProjInfo.FCS (>= 0.62) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) Ionide.ProjInfo.Sln (>= 0.62) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) Newtonsoft.Json (>= 13.0.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) - Ionide.ProjInfo.Sln (0.62) + Ionide.ProjInfo.Sln (0.63) LinkDotNet.StringBuilder (1.18) McMaster.NETCore.Plugins (1.4) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0)) Microsoft.DotNet.PlatformAbstractions (>= 3.1.6) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.1) (>= netcoreapp2.1)) diff --git a/src/FsAutoComplete.Core/Consts.fs b/src/FsAutoComplete.Core/Consts.fs index 423dfffd7..bda2140a5 100644 --- a/src/FsAutoComplete.Core/Consts.fs +++ b/src/FsAutoComplete.Core/Consts.fs @@ -4,7 +4,4 @@ module ProjectLoader = [] let ProduceReferenceAssembly = "ProduceReferenceAssembly" - let globalProperties = - [ - // For tooling we don't want to use Reference Assemblies as this doesn't play well with type checking across projects - ProduceReferenceAssembly, "false" ] + let globalProperties = [] diff --git a/src/FsAutoComplete.Core/State.fs b/src/FsAutoComplete.Core/State.fs index dafcc3e8d..b3af24970 100644 --- a/src/FsAutoComplete.Core/State.fs +++ b/src/FsAutoComplete.Core/State.fs @@ -19,19 +19,9 @@ module ProjInfoExtensions = type FSharpReferencedProject with member x.ProjectFilePath = - let rCase, fields = - FSharp.Reflection.FSharpValue.GetUnionFields( - x, - typeof, - System.Reflection.BindingFlags.Public - ||| System.Reflection.BindingFlags.NonPublic - ||| System.Reflection.BindingFlags.Instance - ) - - if rCase.Name = "FSharpReference" then - (fields[1] :?> FSharpProjectOptions).ProjectFileName |> Some - else - None + match x with + | FSharpReferencedProject.FSharpReference(options = options) -> options.ProjectFileName |> Some + | _ -> None type FSharpProjectOptions with diff --git a/src/FsAutoComplete/LspServers/AdaptiveServerState.fs b/src/FsAutoComplete/LspServers/AdaptiveServerState.fs index fc84e778d..01973474c 100644 --- a/src/FsAutoComplete/LspServers/AdaptiveServerState.fs +++ b/src/FsAutoComplete/LspServers/AdaptiveServerState.fs @@ -773,7 +773,7 @@ type AdaptiveState(lspClient: FSharpLspClient, sourceTextFactory: ISourceTextFac for p in projectOptions do logger.info ( Log.setMessage "Found BaseIntermediateOutputPath of {path}" - >> Log.addContextDestructured "path" p.Properties + >> Log.addContextDestructured "path" ((|BaseIntermediateOutputPath|_|) p.Properties) ) // Collect other files that should trigger a reload of a project @@ -853,7 +853,7 @@ type AdaptiveState(lspClient: FSharpLspClient, sourceTextFactory: ISourceTextFac let ws = { ProjectFileName = projectFileName ProjectFiles = responseFiles - OutFileOpt = Option.ofObj projectOption.TargetPath + OutFileOpt = Option.ofObj projectOption.ResolvedTargetPath References = references Extra = projectOption ProjectItems = projViewerItemsNormalized.Items