diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 3217f99f0..f759710e7 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -19,6 +19,12 @@
"commands": [
"fantomas"
]
+ },
+ "fsharp-analyzers": {
+ "version": "0.23.0",
+ "commands": [
+ "fsharp-analyzers"
+ ]
}
}
}
\ No newline at end of file
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
deleted file mode 100644
index 8bf0f719f..000000000
--- a/.github/pull_request_template.md
+++ /dev/null
@@ -1,12 +0,0 @@
-### WHAT
-copilot:summary
-
-copilot:poem
-
-copilot:emoji
-
-### WHY
-
-
-### HOW
-copilot:walkthrough
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 9daa30c1d..ec3f4a257 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -84,16 +84,10 @@ jobs:
run: dotnet --info
- name: Restore tools
- run: |
- # can't do a tool restore here due to an 8.0.100 rc2 bug - this is fixed in GA so can go back to
- # dotnet tool restore then.
- dotnet tool install paket --version 8.0.0-alpha002 && dotnet tool install fantomas --version 6.2.3 && dotnet paket restore
-
- - name: cat file
- run: cat src/FsAutoComplete.Core/AbstractClassStubGenerator.fs
+ run: dotnet tool restore
- name: Check format
- run: dotnet build -t:CheckFormat
+ run: dotnet fantomas --check src
env:
DOTNET_ROLL_FORWARD: LatestMajor
DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1
@@ -110,3 +104,23 @@ jobs:
env:
BuildNet7: ${{ matrix.build_net7 }}
BuildNet8: ${{ matrix.build_net8 }}
+
+ analyze:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v3
+
+ - name: Restore tools
+ run: dotnet tool restore
+
+ - name: Run analyzers
+ run: dotnet build -t:AnalyzeSolution -p:TargetFramework=net6.0
+
+ - name: Upload SARIF file
+ uses: github/codeql-action/upload-sarif@v2
+ with:
+ sarif_file: analysisreports
diff --git a/.gitignore b/.gitignore
index 48f5e612c..b34fbd3ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,3 +45,5 @@ test/FsAutoComplete.Tests.Lsp/TestResults/
.tool-versions
BenchmarkDotNet.Artifacts/
+
+*.sarif
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a791b23a7..700b9d71b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,44 @@
# Changelog
+
+## [0.69.0] - 2024-01-14
+
+### Added
+
+- [Codefix: Update value in signature file](https://github.com/fsharp/FsAutoComplete/pull/1161) and [1220](https://github.com/fsharp/FsAutoComplete/pull/1220) (thanks @nojaf)
+
+### Changed
+
+- [Analyzers: Update analyzers support to 0.23.0](https://github.com/fsharp/FsAutoComplete/pull/1217) (thanks @dawedawe)
+
+### Fixed
+
+- [fix and improves l10n](https://github.com/fsharp/FsAutoComplete/pull/1181) (thanks @Tangent-90)
+- [Fix AP signatures for APs with names which are substrings of other APs](https://github.com/fsharp/FsAutoComplete/pull/1211) (thanks @dawedawe)
+- [fixing caching of cancelled cached tasks](https://github.com/fsharp/FsAutoComplete/pull/1221) (thanks @TheAngryByrd)
+
+### Internal
+
+
+## [0.68.0] - 2023-11-17
+
+### Added
+
+* [Dotnet 8 support](https://github.com/fsharp/FsAutoComplete/pull/1175) (Thanks @baronfel & @TheAngryByrd)
+* [F# 8 Support](https://github.com/fsharp/FsAutoComplete/pull/1180) (Thanks @baronfel & @nojaf & @dawedawe)
+
+### Changed
+
+* [Updates Ionide.LanguageServerProtocol to 0.4.20](https://github.com/fsharp/FsAutoComplete/pull/1190) (Thanks @TheAngryByrd)
+* [Update IcedTasks 0.9.2](https://github.com/fsharp/FsAutoComplete/pull/1197) (Thanks @TheAngryByrd)
+* [Paket Simplify](https://github.com/fsharp/FsAutoComplete/pull/1204) (Thanks @1eyewonder)
+
+### Fixed
+
+- [Do ordinal string comparisons](https://github.com/fsharp/FsAutoComplete/pull/1193) (Thanks @dawedawe)
+- [fix typo in FullNameExternalAutocomplete default value](https://github.com/fsharp/FsAutoComplete/pull/1196) (Thanks @MrLuje)
+* [Fix tooltip errorhandling]()(https://github.com/fsharp/FsAutoComplete/pull/1195) (Thanks @pblasucci & @TheAngryByrd)
+
## [0.67.0] - 2023-10-28
### Changed
diff --git a/Directory.Build.props b/Directory.Build.props
index 4b7f3db85..efd7cdc05 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -6,6 +6,8 @@
Apache-2.0
$(NoWarn);3186,0042
$(NoWarn);NU1902
+ $(WarnOn);1182
+ $(WarnOn);3390
true
$(MSBuildThisFileDirectory)CHANGELOG.md
diff --git a/Directory.Build.targets b/Directory.Build.targets
index ac86c2874..013730228 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -8,5 +8,10 @@
+
+ ./
+ .
+ --analyzers-path "$(PkgIonide_Analyzers)/analyzers/dotnet/fs" --code-root $(CodeRoot) --report "$(SarifOutput)/$(MSBuildProjectName)-$(TargetFramework).sarif" --verbosity d
+
diff --git a/Directory.Solution.targets b/Directory.Solution.targets
index 649ad93a7..ece14a3d3 100644
--- a/Directory.Solution.targets
+++ b/Directory.Solution.targets
@@ -1,13 +1,25 @@
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+ $(SolutionDir)
+ $(SolutionDir)/analysisreports
+
+
+
+
diff --git a/benchmarks/Program.fs b/benchmarks/Program.fs
index a4eb20197..faeecc5b3 100644
--- a/benchmarks/Program.fs
+++ b/benchmarks/Program.fs
@@ -1,4 +1,5 @@
namespace Benchmarks
+
open System
open BenchmarkDotNet
open BenchmarkDotNet.Attributes
@@ -11,6 +12,6 @@ open System.Security.Cryptography
module EntryPoint =
[]
- let main argv =
- let summary = BenchmarkRunner.Run();
+ let main _argv =
+ let _summary = BenchmarkRunner.Run()
0
diff --git a/benchmarks/paket.references b/benchmarks/paket.references
index d29cc1cf0..50f1157c9 100644
--- a/benchmarks/paket.references
+++ b/benchmarks/paket.references
@@ -1,4 +1,3 @@
-FSharp.Core
BenchmarkDotNet
Microsoft.CodeAnalysis
-FSharp.Data.Adaptive
+FSharp.Data.Adaptive
\ No newline at end of file
diff --git a/build/Program.fs b/build/Program.fs
index 55afc5000..3b5b6f060 100644
--- a/build/Program.fs
+++ b/build/Program.fs
@@ -43,8 +43,6 @@ let init args =
Context.setExecutionContext (Context.RuntimeContext.Fake execContext)
Target.initEnvironment ()
- let fsacAssemblies = "FsAutoComplete|FsAutoComplete.Core|LanguageServerProtocol"
-
let packAsToolProp = "PackAsTool", "true"
Target.create "LspTest" (fun _ ->
diff --git a/build/paket.references b/build/paket.references
index aa0513d00..76fa44de9 100644
--- a/build/paket.references
+++ b/build/paket.references
@@ -1,18 +1,11 @@
group Build
- Fake.Core.Target
- Fake.Core.Process
- Fake.DotNet.Cli
- Fake.Core.ReleaseNotes
- Fake.DotNet.AssemblyInfoFile
- Fake.DotNet.Paket
- Fake.Tools.Git
- Fake.Core.Environment
- Fake.Core.UserInput
- Fake.IO.FileSystem
- Fake.IO.Zip
- Fake.DotNet.MsBuild
- Fake.Api.GitHub
- Microsoft.Build
- MSBuild.StructuredLogger
- Octokit
- Fantomas.Core
+Fake.Core.Target
+Fake.Core.ReleaseNotes
+Fake.DotNet.AssemblyInfoFile
+Fake.DotNet.Paket
+Fake.Tools.Git
+Fake.Core.UserInput
+Fake.IO.Zip
+Fake.Api.GitHub
+Microsoft.Build
+Fantomas.Core
\ No newline at end of file
diff --git a/paket.dependencies b/paket.dependencies
index 020d9c3e9..bfd5798a1 100644
--- a/paket.dependencies
+++ b/paket.dependencies
@@ -13,7 +13,9 @@ lowest_matching: true
nuget BenchmarkDotNet 0.13.5
nuget Fantomas.Client >= 0.9
-nuget FSharp.Compiler.Service >= 43.8.200-preview.23562.1
+nuget FSharp.Compiler.Service >= 43.8.200-preview.24061.1
+nuget Ionide.Analyzers 0.7.0
+nuget FSharp.Analyzers.Build 0.3.0
nuget Ionide.ProjInfo >= 0.62.0
nuget Ionide.ProjInfo.FCS >= 0.62.0
nuget Ionide.ProjInfo.ProjectSystem >= 0.62.0
@@ -24,12 +26,10 @@ nuget Microsoft.Build.Utilities.Core >= 17.4 copy_local:false
nuget Microsoft.Build.Tasks.Core >= 17.4 copy_local: false
nuget Nuget.Frameworks >= 6.3 copy_local: false
nuget Microsoft.CodeAnalysis 4.5.0
-nuget FSharp.Analyzers.SDK
+nuget FSharp.Analyzers.SDK 0.23.0
nuget ICSharpCode.Decompiler
nuget Mono.Cecil >= 0.11.4
-nuget Newtonsoft.Json
nuget FSharpLint.Core
-nuget System.Configuration.ConfigurationManager
nuget Serilog >= 2.10.0
nuget Serilog.Sinks.File >= 5.0.0
nuget Serilog.Sinks.Console >= 4.0.0
@@ -38,7 +38,7 @@ nuget Destructurama.FSharp
nuget FSharp.UMX >= 1.1
nuget FSharp.Formatting >= 14.0
nuget FsToolkit.ErrorHandling.TaskResult >= 4.4 framework: netstandard2.1 ,net6.0, net7.0, net8.0
-nuget IcedTasks >= 0.5
+nuget IcedTasks >= 0.9.2
nuget FSharpx.Async >= 1.14
nuget CliWrap >= 3.0
nuget System.CommandLine prerelease
@@ -48,18 +48,19 @@ nuget Dotnet.ReproducibleBuilds copy_local:true
nuget Microsoft.NETFramework.ReferenceAssemblies
nuget Ionide.KeepAChangelog.Tasks copy_local: true
-nuget Expecto
nuget Expecto.Diff
nuget YoloDev.Expecto.TestSdk
nuget AltCover
nuget GitHubActionsTestLogger
-nuget Ionide.LanguageServerProtocol >= 0.4.19
+nuget Ionide.LanguageServerProtocol >= 0.4.20
nuget Microsoft.Extensions.Caching.Memory
nuget OpenTelemetry.Api >= 1.3.2
nuget OpenTelemetry.Exporter.OpenTelemetryProtocol >= 1.3.2 # 1.4 bumps to 7.0 versions of System.Diagnostics libs, so can't use it
nuget LinkDotNet.StringBuilder 1.18.0
nuget CommunityToolkit.HighPerformance
nuget System.Security.Cryptography.Pkcs 6.0.4
+nuget System.Net.Http 4.3.4 # pinned for security reasons
+nuget System.Text.RegularExpressions 4.3.1 # pinned for security reasons
group Build
@@ -69,24 +70,17 @@ group Build
framework: net6.0, net7.0
nuget Fake.Core.Target
- nuget Fake.Core.Process
- nuget Fake.DotNet.Cli
nuget Fake.Core.ReleaseNotes
nuget Fake.DotNet.AssemblyInfoFile
nuget Fake.DotNet.Paket
nuget Fake.Tools.Git
- nuget Fake.Core.Environment
nuget Fake.Core.UserInput
- nuget Fake.IO.FileSystem
nuget Fake.IO.Zip
- nuget Fake.DotNet.MsBuild
nuget Fake.Api.GitHub
nuget Microsoft.Build
- nuget MSBuild.StructuredLogger
nuget Octokit 0.48 // there's an API break in 0.50, so we need to pin this to prevent errors
nuget Fantomas.Core 6.2.0
nuget NuGet.Versioning 6.7.0
nuget NuGet.Common 6.7.0
nuget NuGet.Protocol 6.7.0
-
diff --git a/paket.lock b/paket.lock
index 43bc908fe..d83ca04b7 100644
--- a/paket.lock
+++ b/paket.lock
@@ -55,10 +55,12 @@ NUGET
StreamJsonRpc (>= 2.8.28)
FParsec (1.1.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
FSharp.Core (>= 4.3.4)
- FSharp.Analyzers.SDK (0.11)
- FSharp.Compiler.Service (>= 41.0.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
- FSharp.Core (>= 6.0.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
- McMaster.NETCore.Plugins (>= 1.4) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
+ FSharp.Analyzers.Build (0.3)
+ FSharp.Analyzers.SDK (0.23)
+ FSharp.Compiler.Service (43.8.100) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
+ FSharp.Core (8.0.100) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
+ McMaster.NETCore.Plugins (>= 1.4) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
+ Microsoft.Extensions.Logging.Abstractions (>= 6.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
FSharp.Control.AsyncSeq (3.2.1)
FSharp.Core (>= 4.7.2)
Microsoft.Bcl.AsyncInterfaces (>= 5.0)
@@ -113,17 +115,18 @@ NUGET
Grpc.Core.Api (>= 2.51)
Humanizer.Core (2.14.1)
Iced (1.17)
- IcedTasks (0.5.4)
- FSharp.Core (>= 7.0)
+ IcedTasks (0.9.2)
+ FSharp.Core (>= 6.0.1)
ICSharpCode.Decompiler (7.2.1.6856)
Microsoft.Win32.Registry (>= 5.0)
System.Collections.Immutable (>= 5.0)
System.Reflection.Metadata (>= 5.0)
+ Ionide.Analyzers (0.7)
Ionide.KeepAChangelog.Tasks (0.1.8) - copy_local: true
- Ionide.LanguageServerProtocol (0.4.19)
+ Ionide.LanguageServerProtocol (0.4.20)
FSharp.Core (>= 6.0)
Newtonsoft.Json (>= 13.0.1)
- StreamJsonRpc (>= 2.10.44)
+ StreamJsonRpc (>= 2.16.36)
Ionide.ProjInfo (0.62)
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))
@@ -144,20 +147,21 @@ NUGET
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)
LinkDotNet.StringBuilder (1.18)
- McMaster.NETCore.Plugins (1.4) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
+ 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))
Microsoft.Extensions.DependencyModel (>= 5.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.1) (>= netcoreapp2.1))
- MessagePack (2.4.35)
- MessagePack.Annotations (>= 2.4.35)
- Microsoft.Bcl.AsyncInterfaces (>= 6.0) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
- Microsoft.NET.StringTools (>= 1.0)
- System.Collections.Immutable (>= 1.7.1) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
- System.Reflection.Emit (>= 4.7) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
- System.Reflection.Emit.Lightweight (>= 4.7) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
- System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
- MessagePack.Annotations (2.4.35)
- Microsoft.Bcl.AsyncInterfaces (6.0)
- System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0) (&& (== netstandard2.1) (>= net461))
+ MessagePack (2.5.108)
+ MessagePack.Annotations (>= 2.5.108)
+ Microsoft.Bcl.AsyncInterfaces (>= 6.0) - restriction: || (&& (== net7.0) (< net6.0)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ Microsoft.NET.StringTools (>= 17.4)
+ System.Collections.Immutable (>= 6.0) - restriction: || (&& (== net7.0) (< net6.0)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Reflection.Emit (>= 4.7) - restriction: || (&& (== net7.0) (< net6.0)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Reflection.Emit.Lightweight (>= 4.7) - restriction: || (&& (== net7.0) (< net6.0)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0)
+ System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net7.0) (< net6.0)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ MessagePack.Annotations (2.5.108)
+ Microsoft.Bcl.AsyncInterfaces (7.0)
+ System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0) (&& (== netstandard2.1) (>= net462))
Microsoft.Bcl.HashCode (1.1) - restriction: || (&& (== net6.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (== net7.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (== net8.0) (< netcoreapp2.1) (< netstandard2.1)) (== netstandard2.0)
Microsoft.Build (17.2) - copy_local: false
Microsoft.Build.Framework (>= 17.2) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net6.0))
@@ -263,7 +267,7 @@ NUGET
Microsoft.Extensions.DependencyInjection.Abstractions (6.0)
Microsoft.Bcl.AsyncInterfaces (>= 6.0) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0) (&& (== netstandard2.1) (>= net461))
System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0) (&& (== netstandard2.1) (>= net461))
- Microsoft.Extensions.DependencyModel (6.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
+ Microsoft.Extensions.DependencyModel (6.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
System.Buffers (>= 4.5.1)
System.Memory (>= 4.5.4)
System.Runtime.CompilerServices.Unsafe (>= 6.0)
@@ -277,8 +281,6 @@ NUGET
Microsoft.Extensions.Options (>= 6.0)
System.Diagnostics.DiagnosticSource (>= 6.0)
Microsoft.Extensions.Logging.Abstractions (6.0.2)
- System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
- System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
Microsoft.Extensions.Logging.Configuration (6.0)
Microsoft.Extensions.Configuration (>= 6.0)
Microsoft.Extensions.Configuration.Abstractions (>= 6.0)
@@ -307,6 +309,8 @@ NUGET
Microsoft.NET.Test.Sdk (17.4.1)
Microsoft.CodeCoverage (>= 17.4.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net462)) (&& (== netstandard2.0) (>= netcoreapp3.1)) (&& (== netstandard2.1) (>= net462)) (&& (== netstandard2.1) (>= netcoreapp3.1))
Microsoft.TestPlatform.TestHost (>= 17.4.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) (&& (== netstandard2.1) (>= netcoreapp3.1))
+ Microsoft.NETCore.Platforms (1.1.1)
+ Microsoft.NETCore.Targets (1.1.3)
Microsoft.NETFramework.ReferenceAssemblies (1.0.3)
Microsoft.SourceLink.AzureRepos.Git (1.1.1) - copy_local: true
Microsoft.Build.Tasks.Git (>= 1.1.1)
@@ -327,14 +331,14 @@ NUGET
Microsoft.TestPlatform.TestHost (17.4.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) (&& (== netstandard2.1) (>= netcoreapp3.1))
Microsoft.TestPlatform.ObjectModel (>= 17.4.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) (&& (== netstandard2.1) (>= netcoreapp3.1))
Newtonsoft.Json (>= 13.0.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) (&& (== netstandard2.1) (>= netcoreapp3.1))
- Microsoft.VisualStudio.Threading (17.3.44)
- Microsoft.Bcl.AsyncInterfaces (>= 6.0)
- Microsoft.VisualStudio.Threading.Analyzers (>= 17.3.44)
- Microsoft.VisualStudio.Validation (>= 17.0.58)
+ Microsoft.VisualStudio.Threading (17.6.40)
+ Microsoft.Bcl.AsyncInterfaces (>= 7.0)
+ Microsoft.VisualStudio.Threading.Analyzers (>= 17.6.40)
+ Microsoft.VisualStudio.Validation (>= 17.0.71)
Microsoft.Win32.Registry (>= 5.0)
System.Threading.Tasks.Extensions (>= 4.5.4)
- Microsoft.VisualStudio.Threading.Analyzers (17.3.44)
- Microsoft.VisualStudio.Validation (17.0.64)
+ Microsoft.VisualStudio.Threading.Analyzers (17.6.40)
+ Microsoft.VisualStudio.Validation (17.6.11)
Microsoft.Win32.Registry (5.0)
System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monoandroid) (< netstandard1.3)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (&& (== net7.0) (>= monoandroid) (< netstandard1.3)) (&& (== net7.0) (>= monotouch)) (&& (== net7.0) (< netcoreapp2.0)) (&& (== net7.0) (>= xamarinios)) (&& (== net7.0) (>= xamarinmac)) (&& (== net7.0) (>= xamarintvos)) (&& (== net7.0) (>= xamarinwatchos)) (&& (== net8.0) (>= monoandroid) (< netstandard1.3)) (&& (== net8.0) (>= monotouch)) (&& (== net8.0) (< netcoreapp2.0)) (&& (== net8.0) (>= xamarinios)) (&& (== net8.0) (>= xamarinmac)) (&& (== net8.0) (>= xamarintvos)) (&& (== net8.0) (>= xamarinwatchos)) (== netstandard2.0) (== netstandard2.1)
System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (>= uap10.1)) (&& (== net7.0) (< netcoreapp2.0)) (&& (== net7.0) (< netcoreapp2.1)) (&& (== net7.0) (>= uap10.1)) (&& (== net8.0) (< netcoreapp2.0)) (&& (== net8.0) (< netcoreapp2.1)) (&& (== net8.0) (>= uap10.1)) (== netstandard2.0) (== netstandard2.1)
@@ -342,12 +346,12 @@ NUGET
System.Security.Principal.Windows (>= 5.0)
Microsoft.Win32.SystemEvents (7.0) - copy_local: false, restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
Mono.Cecil (0.11.4)
- Nerdbank.Streams (2.8.61)
- Microsoft.Bcl.AsyncInterfaces (>= 5.0)
- Microsoft.VisualStudio.Threading (>= 16.10.56)
- Microsoft.VisualStudio.Validation (>= 16.10.26)
- System.IO.Pipelines (>= 5.0.1)
- System.Runtime.CompilerServices.Unsafe (>= 5.0)
+ Nerdbank.Streams (2.10.66)
+ Microsoft.Bcl.AsyncInterfaces (>= 7.0)
+ Microsoft.VisualStudio.Threading (>= 17.6.40)
+ Microsoft.VisualStudio.Validation (>= 17.6.11)
+ System.IO.Pipelines (>= 7.0)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0)
Newtonsoft.Json (13.0.2)
NuGet.Frameworks (6.3) - copy_local: false
OpenTelemetry (1.3.2)
@@ -366,6 +370,36 @@ NUGET
OpenTelemetry (>= 1.3.2)
Perfolizer (0.2.1)
System.Memory (>= 4.5.3)
+ runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.native.System (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ runtime.native.System.Net.Http (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ runtime.native.System.Security.Cryptography.Apple (4.3)
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3)
+ runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3)
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
+ runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2)
SemanticVersioning (2.0.2)
Serilog (2.11)
Serilog.Sinks.Async (1.5)
@@ -374,18 +408,37 @@ NUGET
Serilog (>= 2.10)
Serilog.Sinks.File (5.0)
Serilog (>= 2.10)
- StreamJsonRpc (2.12.27)
- MessagePack (>= 2.3.85)
- Microsoft.Bcl.AsyncInterfaces (>= 6.0)
- Microsoft.VisualStudio.Threading (>= 17.1.46)
- Nerdbank.Streams (>= 2.8.57)
+ StreamJsonRpc (2.16.36)
+ MessagePack (>= 2.5.108)
+ Microsoft.Bcl.AsyncInterfaces (>= 7.0)
+ Microsoft.VisualStudio.Threading (>= 17.6.40)
+ Microsoft.VisualStudio.Threading.Analyzers (>= 17.6.40)
+ Microsoft.VisualStudio.Validation (>= 17.6.11)
+ Nerdbank.Streams (>= 2.10.66)
Newtonsoft.Json (>= 13.0.1)
- System.Collections.Immutable (>= 6.0)
- System.Diagnostics.DiagnosticSource (>= 6.0)
- System.IO.Pipelines (>= 6.0.3)
- System.Threading.Tasks.Dataflow (>= 6.0)
+ System.Collections.Immutable (>= 7.0)
+ System.Diagnostics.DiagnosticSource (>= 7.0.2)
+ System.IO.Pipelines (>= 7.0)
+ System.Text.Encodings.Web (>= 7.0)
+ System.Text.Json (>= 7.0.3)
+ System.Threading.Tasks.Dataflow (>= 7.0)
System.Buffers (4.5.1)
System.CodeDom (6.0) - copy_local: false
+ System.Collections (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
+ System.Collections.Concurrent (4.3)
+ System.Collections (>= 4.3)
+ System.Diagnostics.Debug (>= 4.3)
+ System.Diagnostics.Tracing (>= 4.3)
+ System.Globalization (>= 4.3)
+ System.Reflection (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Threading (>= 4.3)
+ System.Threading.Tasks (>= 4.3)
System.Collections.Immutable (7.0)
System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (== net6.0) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (&& (== net8.0) (< net7.0)) (== netstandard2.0) (== netstandard2.1)
@@ -408,29 +461,114 @@ NUGET
System.Composition.AttributedModel (>= 6.0)
System.Composition.Hosting (>= 6.0)
System.Composition.Runtime (>= 6.0)
- System.Configuration.ConfigurationManager (6.0)
+ System.Configuration.ConfigurationManager (6.0) - copy_local: false
System.Security.Cryptography.ProtectedData (>= 6.0)
System.Security.Permissions (>= 6.0)
+ System.Diagnostics.Debug (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
System.Diagnostics.DiagnosticSource (7.0.2)
System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (== net6.0) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (&& (== net8.0) (< net7.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Diagnostics.Tracing (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
System.Drawing.Common (7.0) - copy_local: false, restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
Microsoft.Win32.SystemEvents (>= 7.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
System.Formats.Asn1 (6.0)
System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
- System.IO.Pipelines (6.0.3)
- System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
- System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
- System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
+ System.Globalization (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
+ System.Globalization.Calendars (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Globalization (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Globalization.Extensions (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ System.Globalization (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Runtime.InteropServices (>= 4.3)
+ System.IO (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
+ System.Text.Encoding (>= 4.3)
+ System.Threading.Tasks (>= 4.3)
+ System.IO.FileSystem (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.IO (>= 4.3)
+ System.IO.FileSystem.Primitives (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
+ System.Text.Encoding (>= 4.3)
+ System.Threading.Tasks (>= 4.3)
+ System.IO.FileSystem.Primitives (4.3)
+ System.Runtime (>= 4.3)
+ System.IO.Pipelines (7.0)
+ System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Linq (4.3)
+ System.Collections (>= 4.3)
+ System.Diagnostics.Debug (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
System.Management (6.0)
System.CodeDom (>= 6.0)
System.Memory (4.5.5)
System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (&& (== net7.0) (>= monotouch)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netcoreapp2.0)) (&& (== net7.0) (< netstandard1.1)) (&& (== net7.0) (< netstandard2.0)) (&& (== net7.0) (>= xamarinios)) (&& (== net7.0) (>= xamarinmac)) (&& (== net7.0) (>= xamarintvos)) (&& (== net7.0) (>= xamarinwatchos)) (&& (== net8.0) (>= monotouch)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netcoreapp2.0)) (&& (== net8.0) (< netstandard1.1)) (&& (== net8.0) (< netstandard2.0)) (&& (== net8.0) (>= xamarinios)) (&& (== net8.0) (>= xamarinmac)) (&& (== net8.0) (>= xamarintvos)) (&& (== net8.0) (>= xamarinwatchos)) (== netstandard2.0) (== netstandard2.1)
System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (&& (== net7.0) (< netcoreapp2.0)) (&& (== net8.0) (< netcoreapp2.0)) (== netstandard2.0) (== netstandard2.1)
System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (&& (== net7.0) (>= monotouch)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netcoreapp2.0)) (&& (== net7.0) (< netcoreapp2.1)) (&& (== net7.0) (< netstandard1.1)) (&& (== net7.0) (< netstandard2.0)) (&& (== net7.0) (>= uap10.1)) (&& (== net7.0) (>= xamarinios)) (&& (== net7.0) (>= xamarinmac)) (&& (== net7.0) (>= xamarintvos)) (&& (== net7.0) (>= xamarinwatchos)) (&& (== net8.0) (>= monotouch)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netcoreapp2.0)) (&& (== net8.0) (< netcoreapp2.1)) (&& (== net8.0) (< netstandard1.1)) (&& (== net8.0) (< netstandard2.0)) (&& (== net8.0) (>= uap10.1)) (&& (== net8.0) (>= xamarinios)) (&& (== net8.0) (>= xamarinmac)) (&& (== net8.0) (>= xamarintvos)) (&& (== net8.0) (>= xamarinwatchos)) (== netstandard2.0) (== netstandard2.1)
+ System.Net.Http (4.3.4)
+ Microsoft.NETCore.Platforms (>= 1.1.1)
+ runtime.native.System (>= 4.3)
+ runtime.native.System.Net.Http (>= 4.3)
+ runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2)
+ System.Collections (>= 4.3)
+ System.Diagnostics.Debug (>= 4.3)
+ System.Diagnostics.DiagnosticSource (>= 4.3)
+ System.Diagnostics.Tracing (>= 4.3)
+ System.Globalization (>= 4.3)
+ System.Globalization.Extensions (>= 4.3)
+ System.IO (>= 4.3)
+ System.IO.FileSystem (>= 4.3)
+ System.Net.Primitives (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
+ System.Runtime.InteropServices (>= 4.3)
+ System.Security.Cryptography.Algorithms (>= 4.3)
+ System.Security.Cryptography.Encoding (>= 4.3)
+ System.Security.Cryptography.OpenSsl (>= 4.3)
+ System.Security.Cryptography.Primitives (>= 4.3)
+ System.Security.Cryptography.X509Certificates (>= 4.3)
+ System.Text.Encoding (>= 4.3)
+ System.Threading (>= 4.3)
+ System.Threading.Tasks (>= 4.3)
+ System.Net.Primitives (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
System.Numerics.Vectors (4.5) - restriction: || (&& (== net7.0) (< net6.0)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
System.Reactive (5.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
+ System.Reflection (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.IO (>= 4.3)
+ System.Reflection.Primitives (>= 4.3)
+ System.Runtime (>= 4.3)
System.Reflection.Emit (4.7)
System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== net7.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net7.0) (< netstandard1.1)) (&& (== net7.0) (< netstandard2.0)) (&& (== net7.0) (>= uap10.1)) (&& (== net8.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net8.0) (< netstandard1.1)) (&& (== net8.0) (< netstandard2.0)) (&& (== net8.0) (>= uap10.1)) (== netstandard2.0) (&& (== netstandard2.1) (< netstandard1.1)) (&& (== netstandard2.1) (< netstandard2.0)) (&& (== netstandard2.1) (>= uap10.1))
System.Reflection.Emit.ILGeneration (4.7) - restriction: || (&& (== net7.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net7.0) (< netstandard1.1)) (&& (== net7.0) (< netstandard2.0)) (&& (== net7.0) (>= uap10.1)) (&& (== net8.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net8.0) (< netstandard1.1)) (&& (== net8.0) (< netstandard2.0)) (&& (== net8.0) (>= uap10.1)) (== netstandard2.0) (&& (== netstandard2.1) (< netstandard1.1)) (&& (== netstandard2.1) (< netstandard2.0)) (&& (== netstandard2.1) (>= uap10.1))
@@ -439,19 +577,142 @@ NUGET
System.Reflection.Metadata (7.0)
System.Collections.Immutable (>= 7.0)
System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Reflection.Primitives (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
System.Resources.Extensions (6.0) - copy_local: false
System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Resources.ResourceManager (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Globalization (>= 4.3)
+ System.Reflection (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime (4.3.1)
+ Microsoft.NETCore.Platforms (>= 1.1.1)
+ Microsoft.NETCore.Targets (>= 1.1.3)
System.Runtime.CompilerServices.Unsafe (6.0)
+ System.Runtime.Extensions (4.3.1)
+ Microsoft.NETCore.Platforms (>= 1.1.1)
+ Microsoft.NETCore.Targets (>= 1.1.3)
+ System.Runtime (>= 4.3.1)
+ System.Runtime.Handles (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
+ System.Runtime.InteropServices (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Reflection (>= 4.3)
+ System.Reflection.Primitives (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
+ System.Runtime.Numerics (4.3)
+ System.Globalization (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
System.Security.AccessControl (6.0) - copy_local: false
System.Security.Principal.Windows (>= 5.0) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
- System.Security.Cryptography.Cng (5.0) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (< net6.0)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (< net6.0)) (&& (== net8.0) (< netcoreapp3.1)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0) (== netstandard2.1)
+ System.Security.Cryptography.Algorithms (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ runtime.native.System.Security.Cryptography.Apple (>= 4.3)
+ runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
+ System.Collections (>= 4.3)
+ System.IO (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
+ System.Runtime.InteropServices (>= 4.3)
+ System.Runtime.Numerics (>= 4.3)
+ System.Security.Cryptography.Encoding (>= 4.3)
+ System.Security.Cryptography.Primitives (>= 4.3)
+ System.Text.Encoding (>= 4.3)
+ System.Security.Cryptography.Cng (5.0)
+ System.Security.Cryptography.Csp (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ System.IO (>= 4.3)
+ System.Reflection (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
+ System.Runtime.InteropServices (>= 4.3)
+ System.Security.Cryptography.Algorithms (>= 4.3)
+ System.Security.Cryptography.Encoding (>= 4.3)
+ System.Security.Cryptography.Primitives (>= 4.3)
+ System.Text.Encoding (>= 4.3)
+ System.Threading (>= 4.3)
+ System.Security.Cryptography.Encoding (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
+ System.Collections (>= 4.3)
+ System.Collections.Concurrent (>= 4.3)
+ System.Linq (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
+ System.Runtime.InteropServices (>= 4.3)
+ System.Security.Cryptography.Primitives (>= 4.3)
+ System.Text.Encoding (>= 4.3)
+ System.Security.Cryptography.OpenSsl (4.3)
+ runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
+ System.Collections (>= 4.3)
+ System.IO (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
+ System.Runtime.InteropServices (>= 4.3)
+ System.Runtime.Numerics (>= 4.3)
+ System.Security.Cryptography.Algorithms (>= 4.3)
+ System.Security.Cryptography.Encoding (>= 4.3)
+ System.Security.Cryptography.Primitives (>= 4.3)
+ System.Text.Encoding (>= 4.3)
System.Security.Cryptography.Pkcs (6.0.4)
System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0)
System.Formats.Asn1 (>= 6.0)
System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0)
System.Security.Cryptography.Cng (>= 5.0) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (< net6.0)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (< net6.0)) (&& (== net8.0) (< netcoreapp3.1)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0) (== netstandard2.1)
- System.Security.Cryptography.ProtectedData (6.0)
+ System.Security.Cryptography.Primitives (4.3)
+ System.Diagnostics.Debug (>= 4.3)
+ System.Globalization (>= 4.3)
+ System.IO (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Threading (>= 4.3)
+ System.Threading.Tasks (>= 4.3)
+ System.Security.Cryptography.ProtectedData (6.0) - copy_local: false
System.Memory (>= 4.5.4) - restriction: || (&& (== net7.0) (< net6.0)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Security.Cryptography.X509Certificates (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ runtime.native.System (>= 4.3)
+ runtime.native.System.Net.Http (>= 4.3)
+ runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
+ System.Collections (>= 4.3)
+ System.Diagnostics.Debug (>= 4.3)
+ System.Globalization (>= 4.3)
+ System.Globalization.Calendars (>= 4.3)
+ System.IO (>= 4.3)
+ System.IO.FileSystem (>= 4.3)
+ System.IO.FileSystem.Primitives (>= 4.3)
+ System.Resources.ResourceManager (>= 4.3)
+ System.Runtime (>= 4.3)
+ System.Runtime.Extensions (>= 4.3)
+ System.Runtime.Handles (>= 4.3)
+ System.Runtime.InteropServices (>= 4.3)
+ System.Runtime.Numerics (>= 4.3)
+ System.Security.Cryptography.Algorithms (>= 4.3)
+ System.Security.Cryptography.Cng (>= 4.3)
+ System.Security.Cryptography.Csp (>= 4.3)
+ System.Security.Cryptography.Encoding (>= 4.3)
+ System.Security.Cryptography.OpenSsl (>= 4.3)
+ System.Security.Cryptography.Primitives (>= 4.3)
+ System.Text.Encoding (>= 4.3)
+ System.Threading (>= 4.3)
System.Security.Cryptography.Xml (6.0.1) - copy_local: false
System.Memory (>= 4.5.4) - restriction: || (&& (== net7.0) (< net6.0)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
System.Security.AccessControl (>= 6.0)
@@ -460,17 +721,37 @@ NUGET
System.Security.AccessControl (>= 6.0) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
System.Windows.Extensions (>= 7.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
System.Security.Principal.Windows (5.0) - copy_local: false
+ System.Text.Encoding (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
System.Text.Encoding.CodePages (6.0) - copy_local: false
System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netcoreapp3.1)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netcoreapp3.1)) (== netstandard2.0) (== netstandard2.1)
System.Runtime.CompilerServices.Unsafe (>= 6.0)
- System.Text.Encodings.Web (6.0) - copy_local: false, restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net6.0))
- System.Runtime.CompilerServices.Unsafe (>= 6.0)
- System.Text.Json (6.0.5) - copy_local: false, restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net6.0))
- System.Runtime.CompilerServices.Unsafe (>= 6.0)
- System.Text.Encodings.Web (>= 6.0)
+ System.Text.Encodings.Web (7.0)
+ System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (== net6.0) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (&& (== net8.0) (< net7.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Text.Json (7.0.3) - copy_local: false
+ System.Runtime.CompilerServices.Unsafe (>= 6.0) - restriction: || (== net6.0) (&& (== net7.0) (>= net462)) (&& (== net7.0) (< net6.0)) (&& (== net8.0) (>= net462)) (&& (== net8.0) (< net6.0)) (&& (== net8.0) (< net7.0)) (== netstandard2.0) (== netstandard2.1)
+ System.Text.Encodings.Web (>= 7.0)
+ System.Text.RegularExpressions (4.3.1)
+ System.Collections (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp1.1)) (&& (== net7.0) (< netcoreapp1.1)) (&& (== net8.0) (< netcoreapp1.1)) (== netstandard2.0) (== netstandard2.1)
+ System.Globalization (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp1.1)) (&& (== net7.0) (< netcoreapp1.1)) (&& (== net8.0) (< netcoreapp1.1)) (== netstandard2.0) (== netstandard2.1)
+ System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp1.1)) (&& (== net7.0) (< netcoreapp1.1)) (&& (== net8.0) (< netcoreapp1.1)) (== netstandard2.0) (== netstandard2.1)
+ System.Runtime (>= 4.3.1)
+ System.Runtime.Extensions (>= 4.3.1) - restriction: || (&& (== net6.0) (< netcoreapp1.1)) (&& (== net7.0) (< netcoreapp1.1)) (&& (== net8.0) (< netcoreapp1.1)) (== netstandard2.0) (== netstandard2.1)
+ System.Threading (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp1.1)) (&& (== net7.0) (< netcoreapp1.1)) (&& (== net8.0) (< netcoreapp1.1)) (== netstandard2.0) (== netstandard2.1)
+ System.Threading (4.3)
+ System.Runtime (>= 4.3)
+ System.Threading.Tasks (>= 4.3)
System.Threading.Channels (6.0)
System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netstandard2.1)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netstandard2.1)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netstandard2.1)) (== netstandard2.0) (&& (== netstandard2.1) (>= net461))
- System.Threading.Tasks.Dataflow (6.0) - copy_local: false
+ System.Threading.Tasks (4.3)
+ Microsoft.NETCore.Platforms (>= 1.1)
+ Microsoft.NETCore.Targets (>= 1.1)
+ System.Runtime (>= 4.3)
+ System.Threading.Tasks.Dataflow (7.0) - copy_local: false
System.Threading.Tasks.Extensions (4.5.4)
System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.0)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= wp8)) (&& (== net7.0) (>= net461)) (&& (== net7.0) (< netcoreapp2.1)) (&& (== net7.0) (< netstandard1.0)) (&& (== net7.0) (< netstandard2.0)) (&& (== net7.0) (>= wp8)) (&& (== net8.0) (>= net461)) (&& (== net8.0) (< netcoreapp2.1)) (&& (== net8.0) (< netstandard1.0)) (&& (== net8.0) (< netstandard2.0)) (&& (== net8.0) (>= wp8)) (== netstandard2.0) (== netstandard2.1)
System.Windows.Extensions (7.0) - copy_local: false, restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
@@ -480,8 +761,8 @@ NUGET
FSharp.Core (>= 7.0.200) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
System.Collections.Immutable (>= 6.0) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
remote: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json
- FSharp.Compiler.Service (43.8.200-preview.23562.1)
- FSharp.Core (8.0.200-beta.23562.1)
+ FSharp.Compiler.Service (43.8.200-preview.24061.1)
+ FSharp.Core (8.0.200-beta.24061.1)
System.Buffers (>= 4.5.1)
System.Collections.Immutable (>= 7.0)
System.Diagnostics.DiagnosticSource (>= 7.0.2)
@@ -489,7 +770,7 @@ NUGET
System.Reflection.Emit (>= 4.7)
System.Reflection.Metadata (>= 7.0)
System.Runtime.CompilerServices.Unsafe (>= 6.0)
- FSharp.Core (8.0.200-beta.23562.1)
+ FSharp.Core (8.0.200-beta.24061.1)
GROUP Build
STORAGE: NONE
diff --git a/src/FsAutoComplete.Core/AbstractClassStubGenerator.fs b/src/FsAutoComplete.Core/AbstractClassStubGenerator.fs
index 397636557..9266c09ac 100644
--- a/src/FsAutoComplete.Core/AbstractClassStubGenerator.fs
+++ b/src/FsAutoComplete.Core/AbstractClassStubGenerator.fs
@@ -35,7 +35,7 @@ let private (|ExplicitCtor|_|) =
| _ -> None
/// checks to see if a type definition inherits an abstract class, and if so collects the members defined at that
-let private walkTypeDefn (SynTypeDefn(info, repr, members, implicitCtor, range, trivia)) =
+let private walkTypeDefn (SynTypeDefn(_, repr, members, implicitCtor, _, _)) =
option {
let reprMembers =
match repr with
@@ -47,7 +47,7 @@ let private walkTypeDefn (SynTypeDefn(info, repr, members, implicitCtor, range,
let! inheritType, inheritMemberRange = // this must exist for abstract types
allMembers
|> List.tryPick (function
- | SynMemberDefn.ImplicitInherit(inheritType, inheritArgs, alias, range) -> Some(inheritType, range)
+ | SynMemberDefn.ImplicitInherit(inheritType, _, _, range) -> Some(inheritType, range)
| _ -> None)
let furthestMemberToSkip, otherMembers =
@@ -82,13 +82,14 @@ let private tryFindAbstractClassExprInParsedInput
{ new SyntaxVisitorBase<_>() with
member _.VisitExpr(path, traverseExpr, defaultTraverse, expr) =
match expr with
- | SynExpr.ObjExpr(baseTy, constructorArgs, withKeyword, bindings, members, extraImpls, newExprRange, range) ->
+ | SynExpr.ObjExpr(
+ objType = baseTy; withKeyword = withKeyword; bindings = bindings; newExprRange = newExprRange) ->
Some(AbstractClassData.ObjExpr(baseTy, bindings, newExprRange, withKeyword))
| _ -> defaultTraverse expr
override _.VisitModuleDecl(_, defaultTraverse, decl) =
match decl with
- | SynModuleDecl.Types(types, m) -> List.tryPick walkTypeDefn types
+ | SynModuleDecl.Types(types, _) -> List.tryPick walkTypeDefn types
| _ -> defaultTraverse decl }
)
@@ -104,12 +105,12 @@ let tryFindAbstractClassExprInBufferAtPos
return! tryFindAbstractClassExprInParsedInput pos parseResults.ParseTree
}
-let getMemberNameAndRanges (abstractClassData) =
+let getMemberNameAndRanges abstractClassData =
match abstractClassData with
| AbstractClassData.ExplicitImpl(members = members) ->
members
|> Seq.choose (function
- | (SynMemberDefn.Member(binding, _)) -> Some binding
+ | SynMemberDefn.Member(binding, _) -> Some binding
| _ -> None)
|> Seq.choose (|MemberNamePlusRangeAndKeywordRange|_|)
|> Seq.toList
@@ -130,7 +131,7 @@ let inferStartColumn
| AbstractClassData.ExplicitImpl(inheritExpressionRange = inheritRange) ->
// 'interface ISomething with' is often in a new line, we use the indentation of that line
inheritRange.StartColumn
- | AbstractClassData.ObjExpr(newExpression = newExpr; withKeyword = withKeyword; bindings = bindings) ->
+ | AbstractClassData.ObjExpr(newExpression = newExpr; withKeyword = withKeyword; bindings = _) ->
// two cases here to consider:
// * has a with keyword on same line as newExpr
match withKeyword with
@@ -153,19 +154,19 @@ let writeAbstractClassStub
(codeGenServer: ICodeGenerationService)
(checkResultForFile: ParseAndCheckResults)
(doc: IFSACSourceText)
- (lineStr: string)
+ (_: string)
(abstractClassData: AbstractClassData)
=
asyncOption {
let pos =
Position.mkPos
abstractClassData.AbstractTypeIdentRange.Start.Line
- (abstractClassData.AbstractTypeIdentRange.End.Column)
+ abstractClassData.AbstractTypeIdentRange.End.Column
- let! (_lexerSym, usages) = codeGenServer.GetSymbolAndUseAtPositionOfKind(doc.FileName, pos, SymbolKind.Ident)
+ let! _lexerSym, usages = codeGenServer.GetSymbolAndUseAtPositionOfKind(doc.FileName, pos, SymbolKind.Ident)
let! usage = usages
- let! (displayContext, entity) =
+ let! displayContext, entity =
asyncOption {
// need the enclosing entity because we're always looking at a ctor, which isn't an Entity, but a MemberOrFunctionOrValue
match usage.Symbol with
@@ -178,7 +179,7 @@ let writeAbstractClassStub
| _ -> return! None
}
- let getMemberByLocation (name: string, range: Range, keywordRange: Range) =
+ let getMemberByLocation (_: string, range: Range, _: Range) =
match doc.GetLine range.Start with
| Some lineText ->
match Lexer.getSymbol range.Start.Line range.Start.Column lineText SymbolLookupKind.ByLongIdent [||] with
diff --git a/src/FsAutoComplete.Core/AdaptiveExtensions.fs b/src/FsAutoComplete.Core/AdaptiveExtensions.fs
index a70e9830b..26820e83d 100644
--- a/src/FsAutoComplete.Core/AdaptiveExtensions.fs
+++ b/src/FsAutoComplete.Core/AdaptiveExtensions.fs
@@ -28,6 +28,20 @@ module AdaptiveExtensions =
with _ ->
()
+ type TaskCompletionSource<'a> with
+
+ /// https://github.com/dotnet/runtime/issues/47998
+ member tcs.TrySetFromTask(real: Task<'a>) =
+ task {
+ try
+ let! r = real
+ tcs.TrySetResult r |> ignore
+ with
+ | :? OperationCanceledException as x -> tcs.TrySetCanceled(x.CancellationToken) |> ignore
+ | ex -> tcs.TrySetException ex |> ignore
+ }
+ |> ignore>
+
type ChangeableHashMap<'Key, 'Value> with
///
@@ -43,7 +57,7 @@ module AdaptiveExtensions =
///
/// Adds the given key and calls the adder function if no previous key exists.
/// Otherwise calls updater with the current key/value but does not override existing value in the map.
- /// This is useful when the 'Value is itself a changeable value like a cval, aset, amap which should be changed
+ /// This is useful when the 'Value is itself a changeable value like a cval, cset, cmap which should be changed
/// but the parent container doesn't need to know about those changes itself.
///
member x.AddOrElse(key, adder, updater) =
@@ -77,7 +91,7 @@ type MapDisposableTupleVal<'T1, 'T2, 'Disposable when 'Disposable :> IDisposable
match cache with
| ValueSome(struct (a, b, _)) when Utils.cheapEqual a i -> b
- | ValueSome(struct (a, b, c)) ->
+ | ValueSome(struct (_, _, c)) ->
(c :> IDisposable).Dispose()
let (b, c) = mapping i
cache <- ValueSome(struct (i, b, c))
@@ -209,7 +223,7 @@ module AMap =
dirty <- HashMap.empty
d)
- override x.InputChangedObject(t, o) =
+ override x.InputChangedObject(_, o) =
#if FABLE_COMPILER
if isNull o.Tag then
let o = unbox> o
@@ -316,7 +330,7 @@ module AMap =
=
let mapping =
mapping
- >> HashMap.map (fun _ v -> AVal.constant v |> AVal.mapWithAdditionalDependencies (id))
+ >> HashMap.map (fun _ v -> AVal.constant v |> AVal.mapWithAdditionalDependencies id)
batchRecalcDirty mapping map
@@ -366,33 +380,44 @@ type internal RefCountingTaskCreator<'a>(create: CancellationToken -> Task<'a>)
///
and AdaptiveCancellableTask<'a>(cancel: unit -> unit, real: Task<'a>) =
let cts = new CancellationTokenSource()
+ let mutable cached: Task<'a> = null
- let output =
- if real.IsCompleted then
- real
- else
- let tcs = new TaskCompletionSource<'a>()
+ let getTask () =
+ let createCached () =
+ if real.IsCompleted then
+ real
+ else
+ task {
+ let tcs = new TaskCompletionSource<'a>()
+ use _s = cts.Token.Register(fun () -> tcs.TrySetCanceled(cts.Token) |> ignore)
- let s = cts.Token.Register(fun () -> tcs.TrySetCanceled() |> ignore)
+ tcs.TrySetFromTask real
- real.ContinueWith(fun (t: Task<'a>) ->
- s.Dispose()
+ return! tcs.Task
+ }
- if t.IsFaulted then tcs.TrySetException(t.Exception)
- elif t.IsCanceled then tcs.TrySetCanceled()
- else tcs.TrySetResult(t.Result))
- |> ignore
+ cached <-
+ match cached with
+ | null -> createCached ()
+ | x when x.IsCompleted && not real.IsCompleted ->
+ // When the real task isn't finished, we create a new task to attach to the real task
+ // so we can cancel this new task immediately without waiting for the real task to cancel (as other tasks might depend on it and we use ref counting)
+ // However, if the cached task is completed (cancelled or faulted) but the real task is not,
+ // we should re-attach to the original task instead of assuming we want to cache the cancelled/faulted task.
+ createCached ()
+ | o -> o
- tcs.Task
+ cached
/// Will run the cancel function passed into the constructor and set the output Task to cancelled state.
member x.Cancel() =
- cancel ()
- cts.TryCancel()
+ lock x (fun () ->
+ cancel ()
+ cts.TryCancel())
/// The output of the passed in task to the constructor.
///
- member x.Task = output
+ member x.Task = lock x getTask
type asyncaval<'a> =
inherit IAdaptiveObject
@@ -416,10 +441,10 @@ module Async =
return! ct.Task |> Async.AwaitTask
}
-[]
+[]
module Extensions =
- type IcedTasks.CancellableTasks.CancellableTaskBuilderBase with
+ type IcedTasks.CancellableTaskBase.CancellableTaskBuilderBase with
/// Allows implicit conversion of a AdaptiveCancellableTask to a CancellableTask in a cancellableTask CE.
member inline x.Source(ct: AdaptiveCancellableTask<_>) =
@@ -575,10 +600,7 @@ module AsyncAVal =
let ref =
RefCountingTaskCreator(
cancellableTask {
- let! ct = CancellableTask.getCancellationToken ()
- let it = input.GetValue t
- use _s = ct.Register(fun () -> it.Cancel())
- let! i = it
+ let! i = input.GetValue t
return! mapping i
}
)
@@ -633,8 +655,8 @@ module AsyncAVal =
ta.Cancel()
tb.Cancel())
- let! va = ta
- let! vb = tb
+ let! va = ta.Task
+ let! vb = tb.Task
return! mapping va vb
}
)
@@ -672,11 +694,8 @@ module AsyncAVal =
let outerTask =
RefCountingTaskCreator(
cancellableTask {
- let it = value.GetValue t
+ let! i = value.GetValue t
let! ct = CancellableTask.getCancellationToken ()
- use _s = ct.Register(fun () -> it.Cancel())
-
- let! i = it
let inner = mapping i ct
return inner
@@ -690,14 +709,11 @@ module AsyncAVal =
let ref =
RefCountingTaskCreator(
cancellableTask {
- let innerCellTask = outerTask.New()
-
let! ct = CancellableTask.getCancellationToken ()
- use _s = ct.Register(fun () -> innerCellTask.Cancel())
- let! inner = innerCellTask
- let innerTask = inner.GetValue t
+ let! inner = outerTask.New()
lock inners (fun () -> inners.Value <- HashSet.add inner inners.Value)
+ let innerTask = inner.GetValue t
use _s2 =
ct.Register(fun () ->
@@ -705,7 +721,7 @@ module AsyncAVal =
lock inners (fun () -> inners.Value <- HashSet.remove inner inners.Value)
inner.Outputs.Remove x |> ignore)
- return! innerTask
+ return! innerTask.Task
}
)
diff --git a/src/FsAutoComplete.Core/AdaptiveExtensions.fsi b/src/FsAutoComplete.Core/AdaptiveExtensions.fsi
index c5f7bf724..0c725f3c3 100644
--- a/src/FsAutoComplete.Core/AdaptiveExtensions.fsi
+++ b/src/FsAutoComplete.Core/AdaptiveExtensions.fsi
@@ -16,7 +16,7 @@ module AdaptiveExtensions =
///
/// Adds the given key and calls the adder function if no previous key exists.
/// Otherwise calls updater with the current key/value but does not override existing value in the map.
- /// This is useful when the 'Value is itself a changeable value like a cval, aset, amap which should be changed
+ /// This is useful when the 'Value is itself a changeable value like a cval, cset, cmap which should be changed
/// but the parent container doesn't need to know about those changes itself.
///
member AddOrElse: key: 'Key * adder: ('Key -> 'Value) * updater: ('Key -> 'Value -> unit) -> unit
@@ -191,7 +191,7 @@ module Async =
[]
module Extensions =
- type IcedTasks.CancellableTasks.CancellableTaskBuilderBase with
+ type IcedTasks.CancellableTaskBase.CancellableTaskBuilderBase with
/// Allows implicit conversion of a AdaptiveCancellableTask to a CancellableTask in a cancellableTask CE.
member inline Source:
diff --git a/src/FsAutoComplete.Core/CodeGeneration.fs b/src/FsAutoComplete.Core/CodeGeneration.fs
index e5b37638b..49a3706d2 100644
--- a/src/FsAutoComplete.Core/CodeGeneration.fs
+++ b/src/FsAutoComplete.Core/CodeGeneration.fs
@@ -302,8 +302,10 @@ module CodeGenerationUtils =
let displayName = v.DisplayName
if
- (v.IsPropertyGetterMethod && displayName.StartsWith("get_"))
- || (v.IsPropertySetterMethod && displayName.StartsWith("set_"))
+ (v.IsPropertyGetterMethod
+ && displayName.StartsWith("get_", StringComparison.Ordinal))
+ || (v.IsPropertySetterMethod
+ && displayName.StartsWith("set_", StringComparison.Ordinal))
then
displayName.[4..]
else
@@ -328,7 +330,7 @@ module CodeGenerationUtils =
(if String.IsNullOrWhiteSpace(args) then
""
- elif args.StartsWith("(") then
+ elif args.StartsWith("(", StringComparison.Ordinal) then
args
elif v.CurriedParameterGroups.Count > 1 && (not verboseMode) then
" " + args
@@ -345,7 +347,10 @@ module CodeGenerationUtils =
| _, _, ".ctor", _ -> "new" + parArgs
// Properties (skipping arguments)
| _, true, _, name when v.IsPropertyGetterMethod || v.IsPropertySetterMethod ->
- if name.StartsWith("get_") || name.StartsWith("set_") then
+ if
+ name.StartsWith("get_", StringComparison.Ordinal)
+ || name.StartsWith("set_", StringComparison.Ordinal)
+ then
name.[4..]
else
name
@@ -549,7 +554,7 @@ module CodeGenerationUtils =
let getAbstractNonVirtualMembers (e: FSharpEntity) =
seq {
- let genericParams = e.GenericParameters :> seq<_>
+ let _genericParams = e.GenericParameters :> seq<_>
// todo: generic param instantiations?
yield!
e.MembersFunctionsAndValues
@@ -576,14 +581,14 @@ module CodeGenerationUtils =
| SynBinding(valData = SynValData(memberFlags = Some mf); headPat = LongIdentPattern(name, range); trivia = trivia) when
mf.MemberKind = SynMemberKind.PropertyGet
->
- if name.StartsWith("get_") then
+ if name.StartsWith("get_", StringComparison.Ordinal) then
Some(name, range, trivia.LeadingKeyword.Range)
else
Some("get_" + name, range, trivia.LeadingKeyword.Range)
| SynBinding(valData = SynValData(memberFlags = Some mf); headPat = LongIdentPattern(name, range); trivia = trivia) when
mf.MemberKind = SynMemberKind.PropertySet
->
- if name.StartsWith("set_") then
+ if name.StartsWith("set_", StringComparison.Ordinal) then
Some(name, range, trivia.LeadingKeyword.Range)
else
Some("set_" + name, range, trivia.LeadingKeyword.Range)
@@ -594,9 +599,12 @@ module CodeGenerationUtils =
let normalizeEventName (m: FSharpMemberOrFunctionOrValue) =
let name = m.DisplayName
- if name.StartsWith("add_") then name.[4..]
- elif name.StartsWith("remove_") then name.[7..]
- else name
+ if name.StartsWith("add_", StringComparison.Ordinal) then
+ name.[4..]
+ elif name.StartsWith("remove_", StringComparison.Ordinal) then
+ name.[7..]
+ else
+ name
/// Ideally this info should be returned in error symbols from FCS.
/// Because it isn't, we implement a crude way of getting member signatures:
diff --git a/src/FsAutoComplete.Core/Commands.fs b/src/FsAutoComplete.Core/Commands.fs
index 0c2856a17..580599657 100644
--- a/src/FsAutoComplete.Core/Commands.fs
+++ b/src/FsAutoComplete.Core/Commands.fs
@@ -248,7 +248,6 @@ module Commands =
(tyRes: ParseAndCheckResults)
(pos: Position)
(lines: IFSACSourceText)
- (line: LineStr)
=
async {
let doc = docForText lines tyRes
@@ -309,7 +308,7 @@ module Commands =
if
(e.Kind LookupType.Fuzzy) = EntityKind.Attribute
- && lastIdent.EndsWith "Attribute"
+ && lastIdent.EndsWith("Attribute", StringComparison.Ordinal)
then
yield
e.TopRequireQualifiedAccessParent,
@@ -363,7 +362,6 @@ module Commands =
(tyRes: ParseAndCheckResults)
(pos: Position)
(lines: ISourceText)
- (line: LineStr)
=
async {
@@ -534,9 +532,7 @@ module Commands =
| Error e -> return CoreResponse.ErrorRes e
}
- let typesig (tyRes: ParseAndCheckResults) (pos: Position) lineStr =
- tyRes.TryGetToolTip pos lineStr
- |> Result.bimap CoreResponse.Res CoreResponse.ErrorRes
+ let typesig (tyRes: ParseAndCheckResults) (pos: Position) lineStr = tyRes.TryGetToolTip pos lineStr
// Calculates pipeline hints for now as in fSharp/pipelineHint with a bit of formatting on the hints
let inlineValues (contents: IFSACSourceText) (tyRes: ParseAndCheckResults) : Async<(pos * String)[]> =
@@ -546,7 +542,7 @@ module Commands =
option {
let! lineStr = contents.GetLine pos
- let! tip = tyRes.TryGetToolTip pos lineStr |> Option.ofResult
+ let! tip = tyRes.TryGetToolTip pos lineStr
return TipFormatter.extractGenericParameters tip
}
@@ -562,8 +558,8 @@ module Commands =
let getStartingPipe =
function
- | y :: xs when y.TokenName.ToUpper() = "INFIX_BAR_OP" -> Some y
- | x :: y :: xs when x.TokenName.ToUpper() = "WHITESPACE" && y.TokenName.ToUpper() = "INFIX_BAR_OP" -> Some y
+ | y :: _ when y.TokenName.ToUpper() = "INFIX_BAR_OP" -> Some y
+ | x :: y :: _ when x.TokenName.ToUpper() = "WHITESPACE" && y.TokenName.ToUpper() = "INFIX_BAR_OP" -> Some y
| _ -> None
let folder (lastExpressionLine, lastExpressionLineWasPipe, acc) (currentIndex, currentTokens) =
@@ -618,7 +614,7 @@ module Commands =
option {
let! lineStr = contents.GetLine pos
- let! tip = tyRes.TryGetToolTip pos lineStr |> Option.ofResult
+ let! tip = tyRes.TryGetToolTip pos lineStr
return TipFormatter.extractGenericParameters tip
}
@@ -634,8 +630,8 @@ module Commands =
let getStartingPipe =
function
- | y :: xs when y.TokenName.ToUpper() = "INFIX_BAR_OP" -> Some y
- | x :: y :: xs when x.TokenName.ToUpper() = "WHITESPACE" && y.TokenName.ToUpper() = "INFIX_BAR_OP" -> Some y
+ | y :: _ when y.TokenName.ToUpper() = "INFIX_BAR_OP" -> Some y
+ | x :: y :: _ when x.TokenName.ToUpper() = "WHITESPACE" && y.TokenName.ToUpper() = "INFIX_BAR_OP" -> Some y
| _ -> None
let folder (lastExpressionLine, lastExpressionLineWasPipe, acc) (currentIndex, currentTokens) =
@@ -706,7 +702,7 @@ module Commands =
|> Seq.tryFind (fun l ->
let lineStr = getLine l
// namespace MUST be top level -> no indentation
- lineStr.StartsWith "namespace ")
+ lineStr.StartsWith("namespace ", StringComparison.Ordinal))
|> function
// move to the next line below "namespace"
| Some l -> l.IncLine()
@@ -716,7 +712,7 @@ module Commands =
// adjust column
let pos =
match pos with
- | Pos(1, c) -> pos
+ | Pos(1, _) -> pos
| Pos(l, 0) ->
let prev = getLine (pos.DecLine())
let indentation = detectIndentation prev
@@ -726,7 +722,7 @@ module Commands =
Position.mkPos l indentation
else
pos
- | Pos(_, c) -> pos
+ | Pos(_, _) -> pos
{ Namespace = n
Position = pos
@@ -795,7 +791,6 @@ module Commands =
match scope with
| Some(SymbolDeclarationLocation.Projects(projects (*isLocalForProject=*) , true)) -> return projects
| Some(SymbolDeclarationLocation.Projects(projects (*isLocalForProject=*) , false)) ->
- let output = ResizeArray<_>()
let! resolvedProjects =
[ for project in projects do
@@ -979,7 +974,7 @@ module Commands =
///
/// Also does very basic validation of `newName`:
/// * Must be valid operator name when operator
- let adjustRenameSymbolNewName pos lineStr (text: IFSACSourceText) (tyRes: ParseAndCheckResults) (newName: string) =
+ let adjustRenameSymbolNewName pos lineStr (tyRes: ParseAndCheckResults) (newName: string) =
asyncResult {
let! symbolUse =
tyRes.TryGetSymbolUse pos lineStr
@@ -1000,7 +995,10 @@ module Commands =
// -> only check if no backticks
let newBacktickedName = newName |> PrettyNaming.NormalizeIdentifierBackticks
- if newBacktickedName.StartsWith "``" && newBacktickedName.EndsWith "``" then
+ if
+ newBacktickedName.StartsWith("``", StringComparison.Ordinal)
+ && newBacktickedName.EndsWith("``", StringComparison.Ordinal)
+ then
return newBacktickedName
elif PrettyNaming.IsIdentifierName newName then
return newName
@@ -1139,14 +1137,22 @@ module Commands =
- let analyzerHandler (file: string, content, pt, tast, symbols, getAllEntities) =
- let ctx: SDK.Context =
+ let analyzerHandler
+ (
+ client: SDK.Client,
+ file: string,
+ content: ISourceText,
+ pt,
+ tast,
+ checkFileResults: FSharpCheckFileResults
+ ) =
+ let ctx: SDK.EditorContext =
{ FileName = UMX.untag file
- Content = content
- ParseTree = pt
- TypedTree = tast
- Symbols = symbols
- GetAllEntities = getAllEntities }
+ SourceText = content
+ ParseFileResults = pt
+ CheckFileResults = Some checkFileResults
+ TypedTree = Some tast
+ CheckProjectResults = None }
let extractResultsFromAnalyzer (r: SDK.AnalysisResult) =
match r.Output with
@@ -1170,20 +1176,20 @@ module Commands =
[]
- try
- SDK.Client.runAnalyzersSafely ctx
- |> List.collect extractResultsFromAnalyzer
- |> List.toArray
- with ex ->
- Loggers.analyzers.error (
- Log.setMessage "Error while processing analyzers for {file}: {message}"
- >> Log.addContextDestructured "message" ex.Message
- >> Log.addExn ex
- >> Log.addContextDestructured "file" file
- )
-
- [||]
+ async {
+ try
+ let! r = client.RunAnalyzersSafely ctx
+ return r |> List.collect extractResultsFromAnalyzer |> List.toArray
+ with ex ->
+ Loggers.analyzers.error (
+ Log.setMessage "Error while processing analyzers for {file}: {message}"
+ >> Log.addContextDestructured "message" ex.Message
+ >> Log.addExn ex
+ >> Log.addContextDestructured "file" file
+ )
+ return [||]
+ }
type Commands() =
diff --git a/src/FsAutoComplete.Core/CompilerServiceInterface.fs b/src/FsAutoComplete.Core/CompilerServiceInterface.fs
index a75bf8fb9..4fa32b589 100644
--- a/src/FsAutoComplete.Core/CompilerServiceInterface.fs
+++ b/src/FsAutoComplete.Core/CompilerServiceInterface.fs
@@ -65,17 +65,17 @@ type FSharpCompilerServiceChecker(hasAnalyzers, typecheckCacheSize, parallelRefe
| None, _
| _, None -> p
| Some fsc, Some fsi ->
- let toReplace, otherOpts =
+ let _toReplace, otherOpts =
p.OtherOptions
|> Array.partition (fun opt ->
- opt.EndsWith "FSharp.Core.dll"
- || opt.EndsWith "FSharp.Compiler.Interactive.Settings.dll")
+ opt.EndsWith("FSharp.Core.dll", StringComparison.Ordinal)
+ || opt.EndsWith("FSharp.Compiler.Interactive.Settings.dll", StringComparison.Ordinal))
{ p with
OtherOptions = Array.append otherOpts [| $"-r:%s{fsc.FullName}"; $"-r:%s{fsi.FullName}" |] }
let (|StartsWith|_|) (prefix: string) (s: string) =
- if s.StartsWith(prefix) then
+ if s.StartsWith(prefix, StringComparison.Ordinal) then
Some(s.[prefix.Length ..])
else
None
@@ -94,20 +94,6 @@ type FSharpCompilerServiceChecker(hasAnalyzers, typecheckCacheSize, parallelRefe
else
opts
- let filterBadRuntimeRefs =
- let badRefs =
- [ "System.Private"
- "System.Runtime.WindowsRuntime"
- "System.Runtime.WindowsRuntime.UI.Xaml"
- "mscorlib" ]
- |> List.map (fun p -> p + ".dll")
-
- let containsBadRef (s: string) = badRefs |> List.exists (fun r -> s.EndsWith r)
-
- fun (projOptions: FSharpProjectOptions) ->
- { projOptions with
- OtherOptions = projOptions.OtherOptions |> Array.where (containsBadRef >> not) }
-
/// ensures that any user-configured include/load files are added to the typechecking context
let addLoadedFiles (projectOptions: FSharpProjectOptions) =
let files = Array.append fsiAdditionalFiles projectOptions.SourceFiles
@@ -120,7 +106,11 @@ type FSharpCompilerServiceChecker(hasAnalyzers, typecheckCacheSize, parallelRefe
{ projectOptions with
SourceFiles = files }
- let (|Reference|_|) (opt: string) = if opt.StartsWith "-r:" then Some(opt.[3..]) else None
+ let (|Reference|_|) (opt: string) =
+ if opt.StartsWith("-r:", StringComparison.Ordinal) then
+ Some(opt.[3..])
+ else
+ None
/// ensures that all file paths are absolute before being sent to the compiler, because compilation of scripts fails with relative paths
let resolveRelativeFilePaths (projectOptions: FSharpProjectOptions) =
@@ -432,7 +422,7 @@ type FSharpCompilerServiceChecker(hasAnalyzers, typecheckCacheSize, parallelRefe
)
}
- member __.GetDeclarations(fileName: string, source, options, version) =
+ member __.GetDeclarations(fileName: string, source, options, _) =
async {
checkerLogger.info (
Log.setMessage "GetDeclarations - {file}"
diff --git a/src/FsAutoComplete.Core/Debug.fs b/src/FsAutoComplete.Core/Debug.fs
index aee09eaf5..5cce1516b 100644
--- a/src/FsAutoComplete.Core/Debug.fs
+++ b/src/FsAutoComplete.Core/Debug.fs
@@ -48,7 +48,7 @@ module Debug =
return r
}
- let toggleVerboseLogging (verbose: bool) = () // todo: set logging latch
+ let toggleVerboseLogging (_verbose: bool) = () // todo: set logging latch
let waitForDebugger () =
while not (Diagnostics.Debugger.IsAttached) do
@@ -56,7 +56,13 @@ module Debug =
let logger = LogProvider.getLoggerByName "Debugging"
- let waitForDebuggerAttached (programName) =
+ let waitForDebuggerAttached
+#if DEBUG
+ programName
+#else
+ _
+#endif
+ =
#if DEBUG
if not (System.Diagnostics.Debugger.IsAttached) then
logger.info (
@@ -73,7 +79,13 @@ module Debug =
#else
()
#endif
- let waitForDebuggerAttachedAndBreak (programName) =
+ let waitForDebuggerAttachedAndBreak
+#if DEBUG
+ programName
+#else
+ _
+#endif
+ =
#if DEBUG
waitForDebuggerAttached programName
System.Diagnostics.Debugger.Break()
diff --git a/src/FsAutoComplete.Core/DocumentationFormatter.fs b/src/FsAutoComplete.Core/DocumentationFormatter.fs
index 6220d2cba..8423b0347 100644
--- a/src/FsAutoComplete.Core/DocumentationFormatter.fs
+++ b/src/FsAutoComplete.Core/DocumentationFormatter.fs
@@ -104,7 +104,7 @@ module DocumentationFormatter =
let t = Regex.Replace(org, """<.*>""", "<")
[ yield formatShowDocumentationLink t xmlDocSig assemblyName
- if t.EndsWith "<" then
+ if t.EndsWith("<", StringComparison.Ordinal) then
yield! renderedGenericArgumentTypes |> Seq.intersperse (", ", 2)
yield formatShowDocumentationLink ">" xmlDocSig assemblyName ]
@@ -217,7 +217,7 @@ module DocumentationFormatter =
let typeList =
unionCase.Fields
|> Seq.map (fun unionField ->
- if unionField.Name.StartsWith "Item" then //TODO: Some better way of detecting default names for the union cases' fields
+ if unionField.Name.StartsWith("Item", StringComparison.Ordinal) then //TODO: Some better way of detecting default names for the union cases' fields
unionField.FieldType |> format displayContext |> fst
else
@@ -231,7 +231,7 @@ module DocumentationFormatter =
unionCase.DisplayName
let getFuncSignatureWithIdent displayContext (func: FSharpMemberOrFunctionOrValue) (ident: int) =
- let maybeGetter = func.LogicalName.StartsWith "get_"
+ let maybeGetter = func.LogicalName.StartsWith("get_", StringComparison.Ordinal)
let indent = String.replicate ident " "
let functionName =
@@ -243,7 +243,7 @@ module DocumentationFormatter =
|> FSharpKeywords.NormalizeIdentifierBackticks
elif func.IsOperatorOrActivePattern then
func.DisplayName
- elif func.DisplayName.StartsWith "( " then
+ elif func.DisplayName.StartsWith("( ", StringComparison.Ordinal) then
FSharpKeywords.NormalizeIdentifierBackticks func.LogicalName
else
FSharpKeywords.NormalizeIdentifierBackticks func.DisplayName
@@ -416,9 +416,12 @@ module DocumentationFormatter =
"new"
elif func.IsOperatorOrActivePattern then
func.DisplayName
- elif func.DisplayName.StartsWith "( " then
+ elif func.DisplayName.StartsWith("( ", StringComparison.Ordinal) then
FSharpKeywords.NormalizeIdentifierBackticks func.LogicalName
- elif func.LogicalName.StartsWith "get_" || func.LogicalName.StartsWith "set_" then
+ elif
+ func.LogicalName.StartsWith("get_", StringComparison.Ordinal)
+ || func.LogicalName.StartsWith("set_", StringComparison.Ordinal)
+ then
PrettyNaming.TryChopPropertyName func.DisplayName
|> Option.defaultValue func.DisplayName
else
@@ -536,7 +539,7 @@ module DocumentationFormatter =
let prefix = if v.IsMutable then "val mutable" else "val"
let name =
- (if v.DisplayName.StartsWith "( " then
+ (if v.DisplayName.StartsWith("( ", StringComparison.Ordinal) then
v.LogicalName
else
v.DisplayName)
@@ -584,7 +587,7 @@ module DocumentationFormatter =
sprintf "active pattern %s: %s" apc.Name findVal
- let getAttributeSignature displayContext (attr: FSharpAttribute) =
+ let getAttributeSignature (attr: FSharpAttribute) =
let name =
formatShowDocumentationLink
attr.AttributeType.DisplayName
@@ -714,8 +717,7 @@ module DocumentationFormatter =
|> Seq.map (fun inf -> fst (format displayContext inf))
|> Seq.toArray
- let attrs =
- fse.Attributes |> Seq.map (getAttributeSignature displayContext) |> Seq.toArray
+ let attrs = fse.Attributes |> Seq.map getAttributeSignature |> Seq.toArray
let types =
fse.NestedEntities
@@ -782,7 +784,10 @@ module DocumentationFormatter =
/// trims the leading 'Microsoft.' from the full name of the symbol
member m.SafeFullName =
- if m.FullName.StartsWith "Microsoft." && m.Assembly.SimpleName = "FSharp.Core" then
+ if
+ m.FullName.StartsWith("Microsoft.", StringComparison.Ordinal)
+ && m.Assembly.SimpleName = "FSharp.Core"
+ then
m.FullName.Substring "Microsoft.".Length
else
m.FullName
diff --git a/src/FsAutoComplete.Core/DotnetNewTemplate.fs b/src/FsAutoComplete.Core/DotnetNewTemplate.fs
index 8fcdeb91c..d792b0c92 100644
--- a/src/FsAutoComplete.Core/DotnetNewTemplate.fs
+++ b/src/FsAutoComplete.Core/DotnetNewTemplate.fs
@@ -61,12 +61,12 @@ module DotnetNewTemplate =
let parseTemplateOutput (x: string) =
let xs =
x.Split(Environment.NewLine)
- |> Array.skipWhile (fun n -> not (n.StartsWith "Template"))
+ |> Array.skipWhile (fun n -> not (n.StartsWith("Template", StringComparison.Ordinal)))
|> Array.filter (fun n -> not (n.StartsWith ' ' || String.IsNullOrWhiteSpace n))
let header = xs.[0]
let body = xs.[2..]
- let nameLength = header.IndexOf("Short")
+ let nameLength = header.IndexOf("Short", StringComparison.Ordinal)
let body =
body
@@ -130,8 +130,11 @@ module DotnetNewTemplate =
let templates =
templateDetails ()
|> List.map (fun t -> t, extractDetailedString t)
- |> List.filter (fun (t, strings) -> strings |> List.exists (nameMatch userInput))
- |> List.map (fun (t, strings) -> t)
+ |> List.choose (fun (t, strings) ->
+ if strings |> List.exists (nameMatch userInput) then
+ Some t
+ else
+ None)
match templates with
| [] -> failwithf "No template exists with name : %s" userInput
diff --git a/src/FsAutoComplete.Core/FCSPatches.fs b/src/FsAutoComplete.Core/FCSPatches.fs
index 2e8e559c5..2398f9252 100644
--- a/src/FsAutoComplete.Core/FCSPatches.fs
+++ b/src/FsAutoComplete.Core/FCSPatches.fs
@@ -478,7 +478,7 @@ module SyntaxTreeOps =
(match copyInfo with
| Some(e, _) -> walkExpr e
| None -> false)
- || walkExprs (recordFields |> List.map (fun (ident, range, expr) -> expr))
+ || walkExprs (recordFields |> List.map (fun (_ident, _range, expr) -> expr))
| SynExpr.Record(copyInfo = copyInfo; recordFields = recordFields) ->
(match copyInfo with
@@ -542,11 +542,11 @@ module SyntaxTreeOps =
| SynInterpolatedStringPart.String _ -> None
| SynInterpolatedStringPart.FillExpr(x, _) -> Some x)
)
- | SynExpr.IndexRange(expr1, opm, expr2, range1, range2, range3) ->
+ | SynExpr.IndexRange(expr1 = expr1; expr2 = expr2) ->
Option.map walkExpr expr1
|> Option.orElseWith (fun _ -> Option.map walkExpr expr2)
|> Option.defaultValue false
- | SynExpr.IndexFromEnd(expr, range) -> walkExpr expr
+ | SynExpr.IndexFromEnd(expr, _) -> walkExpr expr
| SynExpr.DebugPoint(innerExpr = expr) -> walkExpr expr
| SynExpr.Dynamic(funcExpr = funcExpr; argExpr = argExpr) -> walkExpr funcExpr || walkExpr argExpr
@@ -659,7 +659,7 @@ module LanguageVersionShim =
/// A LanguageVersionShim from the parsed "--langversion:" or defaultLanguageVersion
let fromFSharpProjectOptions (fpo: FSharpProjectOptions) =
fpo.OtherOptions
- |> Array.tryFind (fun x -> x.StartsWith("--langversion:"))
+ |> Array.tryFind (fun x -> x.StartsWith("--langversion:", StringComparison.Ordinal))
|> Option.map (fun x -> x.Split(":")[1])
|> Option.map (fun x -> LanguageVersionShim(x))
|> Option.defaultWith (fun () -> defaultLanguageVersion.Value)
diff --git a/src/FsAutoComplete.Core/FileSystem.fs b/src/FsAutoComplete.Core/FileSystem.fs
index 6fc1414a3..c7afa3af9 100644
--- a/src/FsAutoComplete.Core/FileSystem.fs
+++ b/src/FsAutoComplete.Core/FileSystem.fs
@@ -594,7 +594,7 @@ module Tokenizer =
) : Range voption =
match text[range] with
| Error _ -> ValueNone
- | Ok rangeText when rangeText.EndsWith "``" ->
+ | Ok rangeText when rangeText.EndsWith("``", StringComparison.Ordinal) ->
// find matching opening backticks
// backticks cannot contain linebreaks -- even for Active Pattern:
diff --git a/src/FsAutoComplete.Core/FsAutoComplete.Core.fsproj b/src/FsAutoComplete.Core/FsAutoComplete.Core.fsproj
index 81df0fe33..0c8f3994a 100644
--- a/src/FsAutoComplete.Core/FsAutoComplete.Core.fsproj
+++ b/src/FsAutoComplete.Core/FsAutoComplete.Core.fsproj
@@ -50,6 +50,7 @@
+
diff --git a/src/FsAutoComplete.Core/Fsdn.fs b/src/FsAutoComplete.Core/Fsdn.fs
index 30108d1cf..5aa8fb2e2 100644
--- a/src/FsAutoComplete.Core/Fsdn.fs
+++ b/src/FsAutoComplete.Core/Fsdn.fs
@@ -67,7 +67,7 @@ let query (queryStr: string) =
let info2 = v.api.name
//return a list of strings
- let infoNamespace = info2.``namespace``
+ let _infoNamespace = info2.``namespace``
let infoClass = info2.class_name
let infoMethod = info2.id
diff --git a/src/FsAutoComplete.Core/InlayHints.fs b/src/FsAutoComplete.Core/InlayHints.fs
index a46756f6f..18dda8872 100644
--- a/src/FsAutoComplete.Core/InlayHints.fs
+++ b/src/FsAutoComplete.Core/InlayHints.fs
@@ -100,7 +100,7 @@ type private FSharp.Compiler.CodeAnalysis.FSharpParseFileResults with
match binding with
| SynBinding(
headPat = SynPat.Named(range = patRange)
- returnInfo = Some(SynBindingReturnInfo(typeName = SynType.LongIdent(idents)))) -> Some patRange
+ returnInfo = Some(SynBindingReturnInfo(typeName = SynType.LongIdent _))) -> Some patRange
| _ -> defaultTraverse binding }
let result = SyntaxTraversal.Traverse(pos, x.ParseTree, visitor)
@@ -148,7 +148,11 @@ module private ShouldCreate =
[]
- let private (|StartsWith|_|) (v: string) (fullName: string) = if fullName.StartsWith v then ValueSome() else ValueNone
+ let private (|StartsWith|_|) (v: string) (fullName: string) =
+ if fullName.StartsWith(v, StringComparison.Ordinal) then
+ ValueSome()
+ else
+ ValueNone
// doesn't differentiate between modules, types, namespaces
// -> is just for documentation in code
[]
@@ -206,7 +210,8 @@ module private ShouldCreate =
let inline private isMeaningfulName (p: FSharpParameter) = p.DisplayName.Length > 2
- let inline private isOperator (func: FSharpMemberOrFunctionOrValue) = func.CompiledName.StartsWith "op_"
+ let inline private isOperator (func: FSharpMemberOrFunctionOrValue) =
+ func.CompiledName.StartsWith("op_", StringComparison.Ordinal)
/// Doesn't consider lower/upper cases:
/// * `areSame "foo" "FOO" = true`
@@ -303,7 +308,7 @@ module private ShouldCreate =
let inline private doesNotMatchArgumentText (parameterName: string) (userArgumentText: string) =
parameterName <> userArgumentText
- && not (userArgumentText.StartsWith parameterName)
+ && not (userArgumentText.StartsWith(parameterName, StringComparison.Ordinal))
let private isParamNamePostfixOfFuncName (func: FSharpMemberOrFunctionOrValue) (paramName: string) =
let funcName = func.DisplayName.AsSpan()
@@ -311,12 +316,12 @@ module private ShouldCreate =
isPostfixOf funcName paramName
- ///
+ ///
/// We filter out parameters that generate lots of noise in hints.
/// * parameter has no name
/// * parameter has length > 2
/// * parameter is one of a set of 'known' names that clutter (like printfn formats)
- /// * param & function is "well known"/commonly used
+ /// * param & function is "well known"/commonly used
/// * parameter does match or is a pre/postfix of user-entered text
/// * user-entered text does match or is a pre/postfix of parameter
/// * parameter is postfix of function name
@@ -374,7 +379,7 @@ type MissingExplicitType with
if x.SpecialRules |> List.contains RemoveOptionFromType then
// Optional parameter:
// `static member F(?a) =` -> `: int`, NOT `: int option`
- if typeName.EndsWith " option" then
+ if typeName.EndsWith(" option", StringComparison.Ordinal) then
typeName.Substring(0, typeName.Length - " option".Length)
else
typeName
@@ -615,7 +620,7 @@ let tryGetExplicitTypeInfo (text: IFSACSourceText, ast: ParsedInput) (pos: Posit
| _ -> defaultTraverse expr
member visitor.VisitPat(path, defaultTraverse, pat) =
- let invalidPositionForTypeAnnotation (pos: Position) (path: SyntaxNode list) =
+ let invalidPositionForTypeAnnotation (path: SyntaxNode list) =
match path with
| SyntaxNode.SynExpr(SynExpr.LetOrUseBang(isUse = true)) :: _ ->
// use! value =
@@ -636,7 +641,7 @@ let tryGetExplicitTypeInfo (text: IFSACSourceText, ast: ParsedInput) (pos: Posit
// see dotnet/fsharp#13115
// | _ when not (rangeContainsPos pat.Range pos) -> None
| SynPat.Named(ident = SynIdent(ident = ident)) when
- rangeContainsPos ident.idRange pos && invalidPositionForTypeAnnotation pos path
+ rangeContainsPos ident.idRange pos && invalidPositionForTypeAnnotation path
->
ExplicitType.Invalid |> Some
| SynPat.Named(ident = SynIdent(ident = ident); isThisVal = false) when rangeContainsPos ident.idRange pos ->
@@ -765,7 +770,7 @@ let private getArgRangesOfFunctionApplication (ast: ParsedInput) pos =
{ new SyntaxVisitorBase<_>() with
member _.VisitExpr(_, traverseSynExpr, defaultTraverse, expr) =
match expr with
- | SynExpr.App(isInfix = false; funcExpr = funcExpr; argExpr = argExpr; range = range) when pos = range.Start ->
+ | SynExpr.App(isInfix = false; funcExpr = funcExpr; range = range) when pos = range.Start ->
let isInfixFuncExpr =
match funcExpr with
| SynExpr.App(_, isInfix, _, _, _) -> isInfix
@@ -823,7 +828,7 @@ let private getArgRangesOfFunctionApplication (ast: ParsedInput) pos =
/// `let map f v = f v` -> `f` is target
let isPotentialTargetForTypeAnnotation
(allowFunctionValues: bool)
- (symbolUse: FSharpSymbolUse, mfv: FSharpMemberOrFunctionOrValue)
+ (_symbolUse: FSharpSymbolUse, mfv: FSharpMemberOrFunctionOrValue)
=
//ENHANCEMENT: extract settings
(mfv.IsValue || (allowFunctionValues && mfv.IsFunction))
diff --git a/src/FsAutoComplete.Core/Lexer.fs b/src/FsAutoComplete.Core/Lexer.fs
index 8767d6a88..3168352b7 100644
--- a/src/FsAutoComplete.Core/Lexer.fs
+++ b/src/FsAutoComplete.Core/Lexer.fs
@@ -1,5 +1,6 @@
namespace FsAutoComplete
+open System
open FSharp.Compiler.Tokenization
open FsAutoComplete.Logging
open FsAutoComplete.Logging.Types
@@ -43,14 +44,14 @@ module Lexer =
[]
let (|Define|_|) (a: string) =
- if a.StartsWith "--define:" then
+ if a.StartsWith("--define:", StringComparison.Ordinal) then
ValueSome(a.[9..])
else
ValueNone
[]
let (|LangVersion|_|) (a: string) =
- if a.StartsWith "--langversion:" then
+ if a.StartsWith("--langversion:", StringComparison.Ordinal) then
ValueSome(a.[14..])
else
ValueNone
diff --git a/src/FsAutoComplete.Core/ParseAndCheckResults.fs b/src/FsAutoComplete.Core/ParseAndCheckResults.fs
index 59d9d610a..d912e4e19 100644
--- a/src/FsAutoComplete.Core/ParseAndCheckResults.fs
+++ b/src/FsAutoComplete.Core/ParseAndCheckResults.fs
@@ -111,12 +111,12 @@ type ParseAndCheckResults
(sym: FindDeclExternalSymbol)
: (string * Position) option =
match sym with
- | FindDeclExternalSymbol.Type name -> None
- | FindDeclExternalSymbol.Constructor(typeName, args) -> None
- | FindDeclExternalSymbol.Method(typeName, name, paramSyms, genericArity) -> None
- | FindDeclExternalSymbol.Field(typeName, name) -> None
- | FindDeclExternalSymbol.Event(typeName, name) -> None
- | FindDeclExternalSymbol.Property(typeName, name) -> None
+ | FindDeclExternalSymbol.Type _ -> None
+ | FindDeclExternalSymbol.Constructor _ -> None
+ | FindDeclExternalSymbol.Method _ -> None
+ | FindDeclExternalSymbol.Field _ -> None
+ | FindDeclExternalSymbol.Event _ -> None
+ | FindDeclExternalSymbol.Property _ -> None
// attempts to manually discover symbol use and external symbol information for a range that doesn't exist in a local file
// bugfix/workaround for FCS returning invalid decl found for f# members.
@@ -163,7 +163,9 @@ type ParseAndCheckResults
| FindDeclFailureReason.Unknown r -> r
return ResultOrString.Error(sprintf "Could not find declaration. %s" elaboration)
- | FindDeclResult.DeclFound range when range.FileName.EndsWith(Range.rangeStartup.FileName) ->
+ | FindDeclResult.DeclFound range when
+ range.FileName.EndsWith(Range.rangeStartup.FileName, StringComparison.Ordinal)
+ ->
return ResultOrString.Error "Could not find declaration"
| FindDeclResult.DeclFound range when range.FileName = UMX.untag x.FileName ->
// decl in same file
@@ -215,7 +217,7 @@ type ParseAndCheckResults
{ File = UMX.untag localFilePath
Position = pos }
)
- | Error reason ->
+ | Error _ ->
logger.info (
Log.setMessage "no sourcelink info for {assembly}, decompiling instead"
>> Log.addContextDestructured "assembly" assembly
@@ -318,7 +320,9 @@ type ParseAndCheckResults
member __.TryGetToolTip (pos: Position) (lineStr: LineStr) =
match Lexer.findLongIdents (pos.Column, lineStr) with
- | None -> ResultOrString.Error "Cannot find ident for tooltip"
+ | None ->
+ logger.info (Log.setMessageI $"Cannot find ident for tooltip: {pos.Column:column} in {lineStr:lineString}")
+ None
| Some(col, identIsland) ->
let identIsland = Array.toList identIsland
// TODO: Display other tooltip types, for example for strings or comments where appropriate
@@ -330,15 +334,16 @@ type ParseAndCheckResults
match identIsland with
| [ ident ] ->
match KeywordList.keywordTooltips.TryGetValue ident with
- | true, tip -> Ok tip
- | _ -> ResultOrString.Error "No tooltip information"
- | _ -> ResultOrString.Error "No tooltip information"
- | _ -> Ok(tip)
-
- member x.TryGetToolTipEnhanced
- (pos: Position)
- (lineStr: LineStr)
- : Result