diff --git a/.build/.build.csproj b/.build/.build.csproj
index b158ccf34..859c216f5 100644
--- a/.build/.build.csproj
+++ b/.build/.build.csproj
@@ -2,12 +2,13 @@
Exe
- net6.0
+ net8.0
false
False
CS0649;CS0169
1
+ true
diff --git a/.build/Build.cs b/.build/Build.cs
index 51e58f460..8097b5d06 100644
--- a/.build/Build.cs
+++ b/.build/Build.cs
@@ -3,20 +3,24 @@
using Nuke.Common.Execution;
using Nuke.Common.Git;
using Nuke.Common.IO;
+using Nuke.Common.Tooling;
using Nuke.Common.Tools.DotNet;
using Nuke.Common.Tools.GitVersion;
using Nuke.Common.Tools.MSBuild;
+using Nuke.Common.Tools.Npm;
using Rocket.Surgery.Nuke.DotNetCore;
+namespace Build;
+
[PublicAPI]
-[CheckBuildProjectConfigurations]
[UnsetVisualStudioEnvironmentVariables]
[PackageIcon("http://www.omnisharp.net/images/logo.png")]
[EnsureReadmeIsUpdated]
[DotNetVerbosityMapping]
[MSBuildVerbosityMapping]
[NuGetVerbosityMapping]
-public partial class Solution : NukeBuild,
+[LocalBuildConventions]
+public sealed partial class Solution : NukeBuild,
ICanRestoreWithDotNetCore,
ICanBuildWithDotNetCore,
ICanTestWithDotNetCore,
@@ -27,6 +31,7 @@ public partial class Solution : NukeBuild,
IGenerateCodeCoverageReport,
IGenerateCodeCoverageSummary,
IGenerateCodeCoverageBadges,
+ IGenerateDocFx,
IHaveConfiguration
{
///
@@ -36,10 +41,7 @@ public partial class Solution : NukeBuild,
/// - Microsoft VisualStudio https://nuke.build/visualstudio
/// - Microsoft VSCode https://nuke.build/vscode
///
- public static int Main()
- {
- return Execute(x => x.Default);
- }
+ public static int Main() => Execute(x => x.Default);
[OptionalGitRepository] public GitRepository? GitRepository { get; }
@@ -61,6 +63,18 @@ public static int Main()
public Target Test => _ => _.Inherit(x => x.CoreTest);
+ public Target NpmInstall => _ => _
+ .Executes(() =>
+ NpmTasks.NpmCi(s => s
+ .SetProcessWorkingDirectory(VscodeTestExtensionProjectDirectory)));
+
+ public Target TestVscodeExtension => _ => _
+ .DependsOn(NpmInstall)
+ .Executes(() =>
+ NpmTasks.NpmRun(s => s
+ .SetProcessWorkingDirectory(VscodeTestExtensionProjectDirectory)
+ .SetCommand("test")));
+
public Target BuildVersion => _ => _.Inherit(x => x.BuildVersion)
.Before(Default)
.Before(Clean);
@@ -68,4 +82,6 @@ public static int Main()
[Parameter("Configuration to build")] public Configuration Configuration { get; } = IsLocalBuild ? Configuration.Debug : Configuration.Release;
AbsolutePath ICanUpdateReadme.ReadmeFilePath => RootDirectory / "README.md";
+
+ internal const string VscodeTestExtensionProjectDirectory = "vscode-testextension";
}
diff --git a/.build/Configuration.cs b/.build/Configuration.cs
index 57e9a8bf8..6f2fcceaf 100644
--- a/.build/Configuration.cs
+++ b/.build/Configuration.cs
@@ -1,11 +1,13 @@
ο»Ώusing System.ComponentModel;
using Nuke.Common.Tooling;
+namespace Build;
+
[TypeConverter(typeof(TypeConverter))]
public class Configuration : Enumeration
{
- public static readonly Configuration Debug = new Configuration { Value = nameof(Debug) };
- public static readonly Configuration Release = new Configuration { Value = nameof(Release) };
+ public static Configuration Debug = new() { Value = nameof(Debug) };
+ public static Configuration Release = new() { Value = nameof(Release) };
public static implicit operator string(Configuration configuration) => configuration.Value;
}
diff --git a/.build/Solution.cs b/.build/Solution.cs
index a3e9826d8..6bcbeab9a 100644
--- a/.build/Solution.cs
+++ b/.build/Solution.cs
@@ -1,15 +1,14 @@
-using System.Collections.Generic;
-using System.Linq;
using Nuke.Common.CI.GitHubActions;
using Nuke.Common.CI.GitHubActions.Configuration;
using Rocket.Surgery.Nuke.ContinuousIntegration;
using Rocket.Surgery.Nuke.DotNetCore;
using Rocket.Surgery.Nuke.GithubActions;
+namespace Build;
internal class LocalConstants
{
- public static string[] PathsIgnore =
+ public static string[] PathsIgnore => new[]
{
".codecov.yml",
".editorconfig",
@@ -37,7 +36,7 @@ internal class LocalConstants
GitHubActionsImage.WindowsLatest,
GitHubActionsImage.UbuntuLatest,
AutoGenerate = false,
- On = new[] { GitHubActionsTrigger.Push },
+ On = new[] { RocketSurgeonGitHubActionsTrigger.Push },
OnPushTags = new[] { "v*" },
OnPushBranches = new[] { "master", "main", "next" },
OnPullRequestBranches = new[] { "master", "main", "next" },
@@ -49,7 +48,7 @@ internal class LocalConstants
GitHubActionsImage.WindowsLatest,
GitHubActionsImage.UbuntuLatest,
AutoGenerate = false,
- On = new[] { GitHubActionsTrigger.Push },
+ On = new[] { RocketSurgeonGitHubActionsTrigger.Push },
OnPushTags = new[] { "v*" },
OnPushBranches = new[] { "master", "main", "next" },
OnPullRequestBranches = new[] { "master", "main", "next" },
@@ -71,18 +70,15 @@ internal class LocalConstants
[PrintCIEnvironment]
[UploadLogs]
[TitleEvents]
+[ContinuousIntegrationConventions]
public partial class Solution
{
public static RocketSurgeonGitHubActionsConfiguration CiIgnoreMiddleware(
RocketSurgeonGitHubActionsConfiguration configuration
)
{
- foreach (var item in configuration.DetailedTriggers.OfType())
- {
- item.IncludePaths = LocalConstants.PathsIgnore;
- }
+ configuration.IncludeRepositoryConfigurationFiles();
- configuration.Jobs.RemoveAt(1);
( (RocketSurgeonsGithubActionsJob)configuration.Jobs[0] ).Steps = new List
{
new RunStep("N/A")
@@ -98,105 +94,35 @@ public static RocketSurgeonGitHubActionsConfiguration CiMiddleware(
RocketSurgeonGitHubActionsConfiguration configuration
)
{
- foreach (var item in configuration.DetailedTriggers.OfType())
- {
- item.ExcludePaths = LocalConstants.PathsIgnore;
- }
-
- var buildJob = configuration.Jobs.OfType().First(z => z.Name == "Build");
- buildJob.FailFast = false;
- var checkoutStep = buildJob.Steps.OfType().Single();
- // For fetch all
- checkoutStep.FetchDepth = 0;
- buildJob.Environment["NUGET_PACKAGES"] = "${{ github.workspace }}/.nuget/packages";
- buildJob.Steps.InsertRange(
- buildJob.Steps.IndexOf(checkoutStep) + 1,
- new BaseGitHubActionsStep[]
- {
- new RunStep("Fetch all history for all tags and branches")
- {
- Run = "git fetch --prune"
- },
- new UsingStep("NuGet Cache")
- {
- Uses = "actions/cache@v2",
- With =
- {
- ["path"] = "${{ github.workspace }}/.nuget/packages",
- // keep in mind using central package versioning here
- ["key"] =
- "${{ runner.os }}-nuget-${{ hashFiles('**/Directory.Packages.props') }}-${{ hashFiles('**/Directory.Packages.support.props') }}",
- ["restore-keys"] = @"|
- ${{ runner.os }}-nuget-"
- }
- },
- new SetupDotNetStep("Use .NET Core 3.1 SDK")
- {
- DotNetVersion = "3.1.x"
- },
- new SetupDotNetStep("Use .NET Core 7.0 SDK")
- {
- DotNetVersion = "7.0.x"
- },
- }
- );
-
- buildJob.Steps.Add(
- new UsingStep("Publish Coverage")
- {
- Uses = "codecov/codecov-action@v1",
- With = new Dictionary
- {
- ["name"] = "actions-${{ matrix.os }}",
- }
- }
- );
-
- buildJob.Steps.Add(
- new UploadArtifactStep("Publish logs")
- {
- Name = "logs",
- Path = "artifacts/logs/",
- If = "always()"
- }
- );
-
- buildJob.Steps.Add(
- new UploadArtifactStep("Publish coverage data")
- {
- Name = "coverage",
- Path = "coverage/",
- If = "always()"
- }
- );
-
- buildJob.Steps.Add(
- new UploadArtifactStep("Publish test data")
- {
- Name = "test data",
- Path = "artifacts/test/",
- If = "always()"
- }
- );
-
- buildJob.Steps.Add(
- new UploadArtifactStep("Publish NuGet Packages")
- {
- Name = "nuget",
- Path = "artifacts/nuget/",
- If = "always()"
- }
- );
-
- buildJob.Steps.Add(
- new UploadArtifactStep("Publish Docs")
- {
- Name = "docs",
- Path = "artifacts/docs/",
- If = "always()"
- }
- );
+ configuration
+ .ExcludeRepositoryConfigurationFiles()
+ .AddNugetPublish()
+ .Jobs.OfType()
+ .First(z => z.Name.Equals("Build", StringComparison.OrdinalIgnoreCase))
+ .ConfigureStep(step => step.FetchDepth = 0)
+ .UseDotNetSdks("3.1", "6.0", "8.0", "9.0")
+ .AddNuGetCache()
+ .AddVscodeExtensionTests()
+ .PublishLogs()
+ .PublishArtifacts()
+ .FailFast = false;
return configuration;
}
}
+
+public static class Extensions
+{
+ public static RocketSurgeonsGithubActionsJob AddVscodeExtensionTests(this RocketSurgeonsGithubActionsJob job)
+ {
+ return job
+ .AddStep(new RunStep("Npm install") {
+ Run = "npm ci",
+ WorkingDirectory = Solution.VscodeTestExtensionProjectDirectory
+ })
+ .AddStep(new HeadlessRunStep("Vscode extension tests") {
+ Run = "npm run test",
+ WorkingDirectory = Solution.VscodeTestExtensionProjectDirectory
+ });
+ }
+}
diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 3426dac24..c4391a127 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -1,54 +1,34 @@
{
- "version": 1,
- "isRoot": true,
- "tools": {
- "dotnet-outdated": {
- "version": "2.11.0",
- "commands": [
- "dotnet-outdated"
- ]
- },
- "gitversion.tool": {
- "version": "5.12.0",
- "commands": [
- "dotnet-gitversion"
- ]
- },
- "dotnet-reportgenerator-globaltool": {
- "version": "5.1.25",
- "commands": [
- "reportgenerator"
- ]
- },
- "nuke.globaltool": {
- "version": "7.0.5",
- "commands": [
- "nuke"
- ]
- },
- "codecov.tool": {
- "version": "1.13.0",
- "commands": [
- "codecov"
- ]
- },
- "jetbrains.resharper.globaltools": {
- "version": "2023.2.1",
- "commands": [
- "jb"
- ]
- },
- "dotnet-format": {
- "version": "5.1.250801",
- "commands": [
- "dotnet-format"
- ]
- },
- "nukeeper": {
- "version": "0.35.0",
- "commands": [
- "nukeeper"
- ]
- }
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "dotnet-outdated-tool": {
+ "version": "4.6.8",
+ "commands": [
+ "dotnet-outdated"
+ ],
+ "rollForward": false
+ },
+ "dotnet-reportgenerator-globaltool": {
+ "version": "5.4.7",
+ "commands": [
+ "reportgenerator"
+ ],
+ "rollForward": false
+ },
+ "nuke.globaltool": {
+ "version": "9.0.4",
+ "commands": [
+ "nuke"
+ ],
+ "rollForward": false
+ },
+ "jetbrains.resharper.globaltools": {
+ "version": "2025.1.2",
+ "commands": [
+ "jb"
+ ],
+ "rollForward": false
}
-}
+ }
+}
\ No newline at end of file
diff --git a/.github/workflows/ci-ignore.yml b/.github/workflows/ci-ignore.yml
index a5c03cbb6..1826f2ffc 100644
--- a/.github/workflows/ci-ignore.yml
+++ b/.github/workflows/ci-ignore.yml
@@ -69,10 +69,10 @@ on:
- '.github/renovate.json'
jobs:
- Build:
+ build:
strategy:
matrix:
- os: [windows-latest, ubuntu-latest]
+ os: [macos-latest, windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: N/A
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 21e4d9c20..7b3920a9a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -69,91 +69,122 @@ on:
- '.github/renovate.json'
jobs:
- Build:
+ build:
env:
NUGET_PACKAGES: '${{ github.workspace }}/.nuget/packages'
strategy:
fail-fast: false
matrix:
- os: [macOS-latest, windows-latest, ubuntu-latest]
+ os: [macos-latest, windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
- uses: actions/checkout@v4.0.0
+ uses: actions/checkout@v4.2.2
with:
clean: 'false'
fetch-depth: '0'
- - name: Fetch all history for all tags and branches
- run: |
- git fetch --prune
- - name: NuGet Cache
- uses: actions/cache@v3
+ - name: Restore NuGet Cache
+ id: restore-nuget-cache
+ uses: actions/cache/restore@v4
with:
path: '${{ github.workspace }}/.nuget/packages'
- key: "${{ runner.os }}-nuget-${{ hashFiles('**/Directory.Packages.props') }}-${{ hashFiles('**/Directory.Packages.support.props') }}"
- restore-keys: |
- ${{ runner.os }}-nuget-
+ key: "${{ runner.os }}-nuget-${{ hashFiles('**/Directory.Packages.props') }}-${{ hashFiles('**/dotnet-tools.json') }}"
- name: π¨ Use .NET Core 3.1 SDK
- uses: actions/setup-dotnet@v3.2.0
+ uses: actions/setup-dotnet@v4.3.1
with:
dotnet-version: '3.1.x'
- - name: π¨ Use .NET Core 7.0 SDK
- uses: actions/setup-dotnet@v3.2.0
+ - name: π¨ Use .NET Core 6.0 SDK
+ uses: actions/setup-dotnet@v4.3.1
+ with:
+ dotnet-version: '6.0.x'
+ - name: π¨ Use .NET Core 8.0 SDK
+ uses: actions/setup-dotnet@v4.3.1
+ with:
+ dotnet-version: '8.0.x'
+ - name: π¨ Use .NET Core 9.0 SDK
+ uses: actions/setup-dotnet@v4.3.1
with:
- dotnet-version: '7.0.x'
+ dotnet-version: '9.0.x'
- name: π dotnet tool restore
run: |
dotnet tool restore
- name: π Restore
+ id: restore
run: |
dotnet nuke Restore --skip
+ - name: Update NuGet Cache
+ if: always() && steps.restore-nuget-cache.outputs.cache-hit != 'true'
+ uses: actions/cache/save@v4
+ with:
+ key: "${{ runner.os }}-nuget-${{ hashFiles('**/Directory.Packages.props') }}-${{ hashFiles('**/dotnet-tools.json') }}"
+ path: '${{ github.workspace }}/.nuget/packages'
- name: β Build
+ id: build
run: |
dotnet nuke Build --skip
- name: π¦ Test
+ id: test
run: |
dotnet nuke Test TriggerCodeCoverageReports GenerateCodeCoverageReportCobertura GenerateCodeCoverageBadges GenerateCodeCoverageSummary GenerateCodeCoverageReport --skip
- name: π¦ Pack
+ id: pack
run: |
dotnet nuke Pack --skip
+ - name: Npm install
+ working-directory: vscode-testextension
+ run: |
+ npm ci
+ - name: π¦ Vscode extension tests
+ uses: coactions/setup-xvfb@v1
+ with:
+ run: 'npm run test'
+ working-directory: 'vscode-testextension'
+ - name: πΊ Publish coverage data
+ if: always()
+ uses: actions/upload-artifact@v4
+ with:
+ name: 'coverage-${{ matrix.os }}'
+ path: 'coverage/'
- name: πΏ Publish Coverage
+ if: (github.event_name != 'pull_request' && github.event_name != 'pull_request_target') || ((github.event_name == 'pull_request' || github.event_name == 'pull_request_target') && github.event.pull_request.user.login != 'renovate[bot]' && github.event.pull_request.user.login != 'dependabot[bot]')
uses: codecov/codecov-action@v4.0.0-beta.2
with:
name: 'actions-${{ matrix.os }}'
- name: πΊ Publish logs
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: 'logs'
+ name: 'logs-${{ matrix.os }}'
path: 'artifacts/logs/'
- - name: πΊ Publish coverage data
- if: always()
- uses: actions/upload-artifact@v3
- with:
- name: 'coverage'
- path: 'coverage/'
- name: πΊ Publish test data
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: 'test data'
+ name: 'test data-${{ matrix.os }}'
path: 'artifacts/test/'
- name: πΊ Publish NuGet Packages
if: always()
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
- name: 'nuget'
+ name: 'nuget-${{ matrix.os }}'
path: 'artifacts/nuget/'
- - name: πΊ Publish Docs
- if: always()
- uses: actions/upload-artifact@v3
+ - name: πΊ Publish Documentation
+ uses: actions/upload-artifact@v4
with:
- name: 'docs'
+ name: 'docs-${{ matrix.os }}'
path: 'artifacts/docs/'
+ Merge:
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Merge Artifacts
+ uses: actions/upload-artifact/merge@v4
+ with:
+ name: nuget
+ pattern: nuget-*
Publish:
- needs:
- - Build
+ needs: Merge
+ uses: RocketSurgeonsGuild/actions/.github/workflows/publish-nuget.yml@v0.3.15
secrets:
RSG_NUGET_API_KEY: '${{ secrets.RSG_NUGET_API_KEY }}'
RSG_AZURE_DEVOPS: '${{ secrets.RSG_AZURE_DEVOPS }}'
- uses: RocketSurgeonsGuild/actions/.github/workflows/publish-nuget.yml@v0.3.3
diff --git a/.github/workflows/close-milestone.yml b/.github/workflows/close-milestone.yml
index 9a821f9f8..c2a952fce 100644
--- a/.github/workflows/close-milestone.yml
+++ b/.github/workflows/close-milestone.yml
@@ -10,25 +10,26 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4.0.0
+ uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
- - uses: actions/setup-dotnet@v3
+ - uses: actions/setup-dotnet@v4
- name: Install GitVersion
- uses: gittools/actions/gitversion/setup@v0.10.2
+ uses: gittools/actions/gitversion/setup@v3.2.1
with:
- versionSpec: '5.x'
+ versionSpec: '6.0.x'
+ preferLatestVersion: true
- name: Install GitReleaseManager
- uses: gittools/actions/gitreleasemanager/setup@v0.10.2
+ uses: gittools/actions/gitreleasemanager/setup@v3.2.1
with:
- versionSpec: '0.15.x'
+ versionSpec: '0.18.x'
- name: Use GitVersion
id: gitversion
- uses: gittools/actions/gitversion/execute@v0.10.2
+ uses: gittools/actions/gitversion/execute@v3.2.1
# Ensure the milestone exists
- name: Create Milestone
@@ -41,7 +42,7 @@ jobs:
# move any issues to that milestone in the event the release is renamed
- name: sync milestones
- uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.3
+ uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.15
with:
default-label: 'mysterious'
github-token: ${{ secrets.OMNISHARP_BOT_TOKEN }}
diff --git a/.github/workflows/dependabot-merge.yml b/.github/workflows/dependabot-merge.yml
index 5da81288a..7cf7303fe 100644
--- a/.github/workflows/dependabot-merge.yml
+++ b/.github/workflows/dependabot-merge.yml
@@ -40,7 +40,7 @@ jobs:
contains(github.event.pull_request.labels.*.name, ':shipit: merge')
|| contains(github.event.pull_request.labels.*.name, 'javascript')
|| contains(github.event.pull_request.labels.*.name, 'github-actions')
- uses: alexwilson/enable-github-automerge-action@1.0.0
+ uses: alexwilson/enable-github-automerge-action@2.0.0
continue-on-error: true
with:
github-token: '${{ secrets.OMNISHARP_BOT_TOKEN }}'
diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml
index e313cf318..9b8321675 100644
--- a/.github/workflows/draft-release.yml
+++ b/.github/workflows/draft-release.yml
@@ -17,23 +17,24 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4.0.0
+ uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
- - uses: actions/setup-dotnet@v3
+ - uses: actions/setup-dotnet@v4
- name: Fetch all history for all tags and branches
run: git fetch --prune
- name: Install GitVersion
- uses: gittools/actions/gitversion/setup@v0.10.2
+ uses: gittools/actions/gitversion/setup@v3.2.1
with:
- versionSpec: '5.x'
+ versionSpec: '6.0.x'
+ preferLatestVersion: true
- name: Use GitVersion
id: gitversion
- uses: gittools/actions/gitversion/execute@v0.10.2
+ uses: gittools/actions/gitversion/execute@v3.2.1
- name: Create Milestone
uses: WyriHaximus/github-action-create-milestone@v1
@@ -44,7 +45,7 @@ jobs:
continue-on-error: true
- name: sync milestones
- uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.3
+ uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.15
with:
default-label: 'mysterious'
github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/publish-nuget.yml b/.github/workflows/publish-nuget.yml
index 586ed7dd5..184655771 100644
--- a/.github/workflows/publish-nuget.yml
+++ b/.github/workflows/publish-nuget.yml
@@ -19,13 +19,15 @@ jobs:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- - uses: nuget/setup-nuget@v1
+ - uses: nuget/setup-nuget@v2
with:
- nuget-version: '5.x'
+ nuget-version: '6.x'
- - uses: actions/download-artifact@v3
+ - uses: actions/download-artifact@v4
with:
- name: nuget
+ path: nuget
+ pattern: nuget-*
+ merge-multiple: true
- name: nuget.org
# continue-on-error: true
diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml
index 6b8e1de71..c606ef342 100644
--- a/.github/workflows/sync-labels.yml
+++ b/.github/workflows/sync-labels.yml
@@ -16,11 +16,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4.0.0
+ uses: actions/checkout@v4.2.2
- name: Run Labeler
if: success()
- uses: crazy-max/ghaction-github-labeler@v5.0.0
+ uses: crazy-max/ghaction-github-labeler@v5.3.0
with:
yaml-file: .github/labels.yml
skip-delete: false
diff --git a/.github/workflows/update-milestone.yml b/.github/workflows/update-milestone.yml
index da8b696fa..bc9494c13 100644
--- a/.github/workflows/update-milestone.yml
+++ b/.github/workflows/update-milestone.yml
@@ -13,32 +13,33 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4.0.0
+ uses: actions/checkout@v4.2.2
with:
ref: ${{ github.sha }}
fetch-depth: 0
- - uses: actions/setup-dotnet@v3
+ - uses: actions/setup-dotnet@v4
- name: Fetch all history for all tags and branches
run: git fetch --prune
- name: Install GitVersion
if: ${{ github.event.action == 'opened' }}
- uses: gittools/actions/gitversion/setup@v0.10.2
+ uses: gittools/actions/gitversion/setup@v3.2.1
with:
- versionSpec: '5.x'
+ versionSpec: '6.0.x'
+ preferLatestVersion: true
- name: Install GitReleaseManager
if: ${{ github.event.action == 'opened' }}
- uses: gittools/actions/gitreleasemanager/setup@v0.10.2
+ uses: gittools/actions/gitreleasemanager/setup@v3.2.1
with:
- versionSpec: '0.15.x'
+ versionSpec: '0.18.x'
- name: Use GitVersion
if: ${{ github.event.action == 'opened' }}
id: gitversion
- uses: gittools/actions/gitversion/execute@v0.10.2
+ uses: gittools/actions/gitversion/execute@v3.2.1
- name: Create Milestone
if: ${{ github.event.action == 'opened' }}
@@ -50,7 +51,7 @@ jobs:
continue-on-error: true
- name: sync milestones
- uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.3
+ uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.15
with:
default-label: 'mysterious'
github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json
index 470cfeef1..e18c1f5f0 100644
--- a/.nuke/build.schema.json
+++ b/.nuke/build.schema.json
@@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
- "title": "Build Schema",
"$ref": "#/definitions/build",
+ "title": "Build Schema",
"definitions": {
"build": {
"type": "object",
@@ -74,6 +74,10 @@
"type": "string",
"description": "Root directory during build execution"
},
+ "Serve": {
+ "type": "boolean",
+ "description": "serve the docs"
+ },
"Skip": {
"type": "array",
"description": "List of targets to be skipped. Empty list skips all dependencies",
@@ -84,6 +88,7 @@
"BuildVersion",
"Clean",
"CoreBuild",
+ "CoreDocs",
"CorePack",
"CoreRestore",
"CoreTest",
@@ -98,9 +103,11 @@
"GenerateCodeCoverageReportCobertura",
"GenerateCodeCoverageSummary",
"GenerateReadme",
+ "NpmInstall",
"Pack",
"Restore",
"Test",
+ "TestVscodeTestExtension",
"Trigger_Code_Coverage_Reports",
"TriggerCodeCoverageReports"
]
@@ -120,6 +127,7 @@
"BuildVersion",
"Clean",
"CoreBuild",
+ "CoreDocs",
"CorePack",
"CoreRestore",
"CoreTest",
@@ -134,9 +142,11 @@
"GenerateCodeCoverageReportCobertura",
"GenerateCodeCoverageSummary",
"GenerateReadme",
+ "NpmInstall",
"Pack",
"Restore",
"Test",
+ "TestVscodeTestExtension",
"Trigger_Code_Coverage_Reports",
"TriggerCodeCoverageReports"
]
@@ -155,4 +165,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 808cf3c09..eec229672 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -4,62 +4,62 @@
$(BaseIntermediateOutputPath)\GeneratedFiles
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/Directory.Packages.supports.props b/Directory.Packages.supports.props
index bcf19562f..d354840f4 100644
--- a/Directory.Packages.supports.props
+++ b/Directory.Packages.supports.props
@@ -1,15 +1,13 @@
-
-
-
+
+
+
-
-
+
+
diff --git a/GitVersion.yml b/GitVersion.yml
index d1aa3a074..ce103c93a 100644
--- a/GitVersion.yml
+++ b/GitVersion.yml
@@ -1,5 +1,7 @@
-assembly-versioning-scheme: MajorMinorPatch
-mode: ContinuousDeployment
+workflow: GitHubFlow/v1
+semantic-version-format: Loose
+
branches:
- master:
- tag: alpha
+ main:
+ mode: ContinuousDeployment
+ label: alpha
\ No newline at end of file
diff --git a/README.md b/README.md
index 540a477d6..c47b1b6e0 100644
--- a/README.md
+++ b/README.md
@@ -101,7 +101,7 @@ This project is supported by the [.NET Foundation](http://www.dotnetfoundation.o
[azurepipelines-history]: https://dev.azure.com/omnisharp/Builds/_build?definitionId=1&branchName=master
[azurepipelines-history-badge]: https://buildstats.info/azurepipelines/chart/omnisharp/Builds/1?includeBuildsFromPullRequest=false "Azure Pipelines History"
[github]: https://github.com/OmniSharp/csharp-language-server-protocol/actions?query=workflow%3Aci
-[github-badge]: https://img.shields.io/github/workflow/status/OmniSharp/csharp-language-server-protocol/ci.svg?label=github&logo=github&color=b845fc&logoColor=b845fc&style=flat "GitHub Actions Status"
+[github-badge]: https://img.shields.io/github/actions/workflow/status/OmniSharp/csharp-language-server-protocol/ci.yml?label=github&logo=github&color=b845fc&logoColor=b845fc&style=flat "GitHub Actions Status"
[github-history-badge]: https://buildstats.info/github/chart/OmniSharp/csharp-language-server-protocol?includeBuildsFromPullRequest=false "GitHub Actions History"
[nuget-hefb6om79mfg]: https://www.nuget.org/packages/OmniSharp.Extensions.DebugAdapter/
[nuget-version-hefb6om79mfg-badge]: https://img.shields.io/nuget/v/OmniSharp.Extensions.DebugAdapter.svg?color=004880&logo=nuget&style=flat-square "NuGet Version"
diff --git a/benchmarks/Pipeline/Pipeline.csproj b/benchmarks/Pipeline/Pipeline.csproj
index d11467700..0c559dd2c 100644
--- a/benchmarks/Pipeline/Pipeline.csproj
+++ b/benchmarks/Pipeline/Pipeline.csproj
@@ -1,15 +1,15 @@
- net472;netcoreapp3.1;net6.0
+ net472;netcoreapp3.1;net6.0;net8.0<
Exe
false
-
-
+
+
diff --git a/global.json b/global.json
index 9bb9f62b0..ccbe73ca1 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "7.0.401",
+ "version": "9.0.300",
"rollForward": "latestMinor"
}
-}
\ No newline at end of file
+}
diff --git a/package-lock.json b/package-lock.json
index 13079217b..b3c015c05 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,16 +5,16 @@
"packages": {
"": {
"devDependencies": {
- "@prettier/plugin-xml": "3.2.1",
- "husky": "8.0.3",
- "lint-staged": "14.0.1",
- "prettier": "3.0.3"
+ "@prettier/plugin-xml": "3.4.1",
+ "husky": "9.1.7",
+ "lint-staged": "15.4.3",
+ "prettier": "3.5.3"
}
},
"node_modules/@prettier/plugin-xml": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.2.1.tgz",
- "integrity": "sha512-DvwnQPf8FsczapBVDm54IhR+Pryt3DbPZSNtUb9gOuFtgoUUPbPN69f3nQBMF5BEqh4ZjZjTaHBmsVno3UnAXQ==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.4.1.tgz",
+ "integrity": "sha512-Uf/6/+9ez6z/IvZErgobZ2G9n1ybxF5BhCd7eMcKqfoWuOzzNUxBipNo3QAP8kRC1VD18TIo84no7LhqtyDcTg==",
"dev": true,
"dependencies": {
"@xml-tools/parser": "^1.0.11"
@@ -33,15 +33,16 @@
}
},
"node_modules/ansi-escapes": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz",
- "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz",
+ "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "type-fest": "^1.0.2"
+ "environment": "^1.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -72,22 +73,24 @@
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
+ "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
@@ -105,31 +108,32 @@
}
},
"node_modules/cli-cursor": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
- "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
+ "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "restore-cursor": "^4.0.0"
+ "restore-cursor": "^5.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cli-truncate": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
- "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
+ "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
"dev": true,
"dependencies": {
"slice-ansi": "^5.0.0",
- "string-width": "^5.0.0"
+ "string-width": "^7.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -142,12 +146,13 @@
"dev": true
},
"node_modules/commander": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
- "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
+ "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/cross-spawn": {
@@ -165,12 +170,13 @@
}
},
"node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@@ -181,18 +187,25 @@
}
}
},
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
"node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
+ "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
"dev": true
},
+ "node_modules/environment": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
+ "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/eventemitter3": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
@@ -200,33 +213,34 @@
"dev": true
},
"node_modules/execa": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
- "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
"is-stream": "^3.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^5.1.0",
"onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
+ "signal-exit": "^4.1.0",
"strip-final-newline": "^3.0.0"
},
"engines": {
- "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
+ "node": ">=16.17"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -234,37 +248,50 @@
"node": ">=8"
}
},
+ "node_modules/get-east-asian-width": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz",
+ "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
"dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"dev": true,
"engines": {
- "node": ">=14.18.0"
+ "node": ">=16.17.0"
}
},
"node_modules/husky": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
- "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "version": "9.1.7",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
+ "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
"dev": true,
+ "license": "MIT",
"bin": {
- "husky": "lib/bin.js"
+ "husky": "bin.js"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/typicode"
@@ -287,6 +314,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -310,85 +338,117 @@
"dev": true
},
"node_modules/lilconfig": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
- "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
}
},
"node_modules/lint-staged": {
- "version": "14.0.1",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-14.0.1.tgz",
- "integrity": "sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==",
+ "version": "15.4.3",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.4.3.tgz",
+ "integrity": "sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chalk": "5.3.0",
- "commander": "11.0.0",
- "debug": "4.3.4",
- "execa": "7.2.0",
- "lilconfig": "2.1.0",
- "listr2": "6.6.1",
- "micromatch": "4.0.5",
- "pidtree": "0.6.0",
- "string-argv": "0.3.2",
- "yaml": "2.3.1"
+ "chalk": "^5.4.1",
+ "commander": "^13.1.0",
+ "debug": "^4.4.0",
+ "execa": "^8.0.1",
+ "lilconfig": "^3.1.3",
+ "listr2": "^8.2.5",
+ "micromatch": "^4.0.8",
+ "pidtree": "^0.6.0",
+ "string-argv": "^0.3.2",
+ "yaml": "^2.7.0"
},
"bin": {
"lint-staged": "bin/lint-staged.js"
},
"engines": {
- "node": "^16.14.0 || >=18.0.0"
+ "node": ">=18.12.0"
},
"funding": {
"url": "https://opencollective.com/lint-staged"
}
},
"node_modules/listr2": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz",
- "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==",
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz",
+ "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "cli-truncate": "^3.1.0",
+ "cli-truncate": "^4.0.0",
"colorette": "^2.0.20",
"eventemitter3": "^5.0.1",
- "log-update": "^5.0.1",
- "rfdc": "^1.3.0",
- "wrap-ansi": "^8.1.0"
+ "log-update": "^6.1.0",
+ "rfdc": "^1.4.1",
+ "wrap-ansi": "^9.0.0"
},
"engines": {
- "node": ">=16.0.0"
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/log-update": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz",
+ "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-escapes": "^7.0.0",
+ "cli-cursor": "^5.0.0",
+ "slice-ansi": "^7.1.0",
+ "strip-ansi": "^7.1.0",
+ "wrap-ansi": "^9.0.0"
},
- "peerDependencies": {
- "enquirer": ">= 2.3.0 < 3"
+ "engines": {
+ "node": ">=18"
},
- "peerDependenciesMeta": {
- "enquirer": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/log-update": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz",
- "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==",
+ "node_modules/log-update/node_modules/is-fullwidth-code-point": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz",
+ "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-escapes": "^5.0.0",
- "cli-cursor": "^4.0.0",
- "slice-ansi": "^5.0.0",
- "strip-ansi": "^7.0.1",
- "wrap-ansi": "^8.0.1"
+ "get-east-asian-width": "^1.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz",
+ "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "is-fullwidth-code-point": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -396,12 +456,13 @@
"dev": true
},
"node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "braces": "^3.0.2",
+ "braces": "^3.0.3",
"picomatch": "^2.3.1"
},
"engines": {
@@ -420,11 +481,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/mimic-function": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
+ "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/npm-run-path": {
"version": "5.1.0",
@@ -482,6 +557,7 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.6"
},
@@ -502,10 +578,11 @@
}
},
"node_modules/prettier": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
- "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
+ "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true,
+ "license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -523,50 +600,44 @@
"dev": true
},
"node_modules/restore-cursor": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
- "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
+ "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
+ "onetime": "^7.0.0",
+ "signal-exit": "^4.1.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/restore-cursor/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/restore-cursor/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
+ "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "mimic-fn": "^2.1.0"
+ "mimic-function": "^5.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/rfdc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
- "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
- "dev": true
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/shebang-command": {
"version": "2.0.0",
@@ -590,10 +661,17 @@
}
},
"node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
"node_modules/slice-ansi": {
"version": "5.0.0",
@@ -621,17 +699,17 @@
}
},
"node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz",
+ "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==",
"dev": true,
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -669,6 +747,7 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -676,18 +755,6 @@
"node": ">=8.0"
}
},
- "node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -704,27 +771,32 @@
}
},
"node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+ "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/yaml": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
- "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
+ "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
"dev": true,
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
"engines": {
"node": ">= 14"
}
diff --git a/package.json b/package.json
index bf8185995..dc9f42493 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,10 @@
{
"private": true,
"devDependencies": {
- "@prettier/plugin-xml": "3.2.1",
- "husky": "8.0.3",
- "lint-staged": "14.0.1",
- "prettier": "3.0.3"
+ "@prettier/plugin-xml": "3.4.1",
+ "husky": "9.1.7",
+ "lint-staged": "15.4.3",
+ "prettier": "3.5.3"
},
"scripts": {
"prepare": "husky install"
diff --git a/sample/SampleServer/SampleServer.csproj b/sample/SampleServer/SampleServer.csproj
index 0300dcca5..3ccd54cf0 100644
--- a/sample/SampleServer/SampleServer.csproj
+++ b/sample/SampleServer/SampleServer.csproj
@@ -3,8 +3,8 @@
Exe
false
- net6.0
- win7-x64
+ net8.0
+ win-x64
latest
diff --git a/src/Client/Client.csproj b/src/Client/Client.csproj
index ebf3ae955..ccd049942 100644
--- a/src/Client/Client.csproj
+++ b/src/Client/Client.csproj
@@ -1,7 +1,7 @@
ο»Ώ
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.LanguageClient
OmniSharp.Extensions.LanguageServer.Client
diff --git a/src/Dap.Client/Dap.Client.csproj b/src/Dap.Client/Dap.Client.csproj
index 8997ffd64..c06983a14 100644
--- a/src/Dap.Client/Dap.Client.csproj
+++ b/src/Dap.Client/Dap.Client.csproj
@@ -1,7 +1,7 @@
ο»Ώ
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.DebugAdapter.Client
OmniSharp.Extensions.DebugAdapter.Client
diff --git a/src/Dap.Protocol.Proposals/Dap.Protocol.Proposals.csproj b/src/Dap.Protocol.Proposals/Dap.Protocol.Proposals.csproj
index e03805d19..81dde6036 100644
--- a/src/Dap.Protocol.Proposals/Dap.Protocol.Proposals.csproj
+++ b/src/Dap.Protocol.Proposals/Dap.Protocol.Proposals.csproj
@@ -1,7 +1,7 @@
ο»Ώ
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.DebugAdapter.Proposals
OmniSharp.Extensions.DebugAdapter.Protocol
diff --git a/src/Dap.Protocol/AbstractHandlers.cs b/src/Dap.Protocol/AbstractHandlers.cs
index ab80046e9..ada21dc16 100644
--- a/src/Dap.Protocol/AbstractHandlers.cs
+++ b/src/Dap.Protocol/AbstractHandlers.cs
@@ -15,7 +15,7 @@ public abstract class Request :
}
public abstract class Notification : IJsonRpcRequestHandler
- where TParams : IRequest
+ where TParams : IRequest
{
public abstract Task Handle(TParams request, CancellationToken cancellationToken);
}
diff --git a/src/Dap.Protocol/Dap.Protocol.csproj b/src/Dap.Protocol/Dap.Protocol.csproj
index 52c4b5467..091aff8e0 100644
--- a/src/Dap.Protocol/Dap.Protocol.csproj
+++ b/src/Dap.Protocol/Dap.Protocol.csproj
@@ -1,7 +1,7 @@
ο»Ώ
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.DebugAdapter
OmniSharp.Extensions.DebugAdapter.Protocol
diff --git a/src/Dap.Protocol/Feature/Events/BreakpointFeature.cs b/src/Dap.Protocol/Feature/Events/BreakpointFeature.cs
index de76a5862..d8e2f1080 100644
--- a/src/Dap.Protocol/Feature/Events/BreakpointFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/BreakpointFeature.cs
@@ -83,7 +83,7 @@ namespace Events
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record BreakpointEvent : IRequest
+ public record BreakpointEvent : IRequest
{
///
/// The reason for the event.
diff --git a/src/Dap.Protocol/Feature/Events/CapabilitiesFeature.cs b/src/Dap.Protocol/Feature/Events/CapabilitiesFeature.cs
index 7d34b09b3..357935e27 100644
--- a/src/Dap.Protocol/Feature/Events/CapabilitiesFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/CapabilitiesFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.DebugAdapter.Protocol.Models;
using OmniSharp.Extensions.DebugAdapter.Protocol.Serialization;
using OmniSharp.Extensions.JsonRpc;
@@ -238,7 +238,7 @@ namespace Events
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record CapabilitiesEvent : IRequest
+ public record CapabilitiesEvent : IRequest
{
///
/// The set of updated capabilities.
diff --git a/src/Dap.Protocol/Feature/Events/ContinuedFeature.cs b/src/Dap.Protocol/Feature/Events/ContinuedFeature.cs
index 9c562ecb0..daea5316b 100644
--- a/src/Dap.Protocol/Feature/Events/ContinuedFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/ContinuedFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.DebugAdapter.Protocol.Serialization;
using OmniSharp.Extensions.JsonRpc;
using OmniSharp.Extensions.JsonRpc.Generation;
@@ -15,7 +15,7 @@ namespace Events
GenerateHandlerMethods,
GenerateRequestMethods
]
- public record ContinuedEvent : IRequest
+ public record ContinuedEvent : IRequest
{
///
/// The thread which was continued.
diff --git a/src/Dap.Protocol/Feature/Events/ExitedFeature.cs b/src/Dap.Protocol/Feature/Events/ExitedFeature.cs
index 6473ee6fe..17f6d5c4e 100644
--- a/src/Dap.Protocol/Feature/Events/ExitedFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/ExitedFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.JsonRpc;
using OmniSharp.Extensions.JsonRpc.Generation;
@@ -14,7 +14,7 @@ namespace Events
GenerateHandlerMethods,
GenerateRequestMethods
]
- public record ExitedEvent : IRequest
+ public record ExitedEvent : IRequest
{
///
/// The exit code returned from the debuggee.
diff --git a/src/Dap.Protocol/Feature/Events/InitializedFeature.cs b/src/Dap.Protocol/Feature/Events/InitializedFeature.cs
index 35fa55a40..0817a3681 100644
--- a/src/Dap.Protocol/Feature/Events/InitializedFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/InitializedFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.JsonRpc;
using OmniSharp.Extensions.JsonRpc.Generation;
@@ -12,6 +12,6 @@ namespace Events
[GenerateHandler(Name = "DebugAdapterInitialized")]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record InitializedEvent : IRequest;
+ public record InitializedEvent : IRequest;
}
}
diff --git a/src/Dap.Protocol/Feature/Events/InvalidatedFeature.cs b/src/Dap.Protocol/Feature/Events/InvalidatedFeature.cs
index 372f6e378..e6c1dc4ed 100644
--- a/src/Dap.Protocol/Feature/Events/InvalidatedFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/InvalidatedFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.DebugAdapter.Protocol.Models;
using OmniSharp.Extensions.DebugAdapter.Protocol.Serialization;
using OmniSharp.Extensions.JsonRpc;
@@ -16,7 +16,7 @@ namespace Events
GenerateHandlerMethods,
GenerateRequestMethods
]
- public record InvalidatedEvent : IRequest
+ public record InvalidatedEvent : IRequest
{
///
/// Optional set of logical areas that got invalidated. This property has a
diff --git a/src/Dap.Protocol/Feature/Events/LoadedSourceFeature.cs b/src/Dap.Protocol/Feature/Events/LoadedSourceFeature.cs
index f916d033d..889766f1c 100644
--- a/src/Dap.Protocol/Feature/Events/LoadedSourceFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/LoadedSourceFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.DebugAdapter.Protocol.Models;
using OmniSharp.Extensions.JsonRpc;
using OmniSharp.Extensions.JsonRpc.Generation;
@@ -13,7 +13,7 @@ namespace Events
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record LoadedSourceEvent : IRequest
+ public record LoadedSourceEvent : IRequest
{
///
/// The reason for the event.
diff --git a/src/Dap.Protocol/Feature/Events/ModuleFeature.cs b/src/Dap.Protocol/Feature/Events/ModuleFeature.cs
index 828af7c13..891e80dbf 100644
--- a/src/Dap.Protocol/Feature/Events/ModuleFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/ModuleFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.DebugAdapter.Protocol.Models;
using OmniSharp.Extensions.JsonRpc;
using OmniSharp.Extensions.JsonRpc.Generation;
@@ -13,7 +13,7 @@ namespace Events
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record ModuleEvent : IRequest
+ public record ModuleEvent : IRequest
{
///
/// The reason for the event.
diff --git a/src/Dap.Protocol/Feature/Events/OutputFeature.cs b/src/Dap.Protocol/Feature/Events/OutputFeature.cs
index 0a5635579..da96154a6 100644
--- a/src/Dap.Protocol/Feature/Events/OutputFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/OutputFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using Newtonsoft.Json.Linq;
using OmniSharp.Extensions.DebugAdapter.Protocol.Models;
using OmniSharp.Extensions.DebugAdapter.Protocol.Serialization;
@@ -15,7 +15,7 @@ namespace Events
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record OutputEvent : IRequest
+ public record OutputEvent : IRequest
{
///
/// The output category. If not specified, 'console' is assumed.
diff --git a/src/Dap.Protocol/Feature/Events/ProcessFeature.cs b/src/Dap.Protocol/Feature/Events/ProcessFeature.cs
index fb5128ac6..a15ab73db 100644
--- a/src/Dap.Protocol/Feature/Events/ProcessFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/ProcessFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.DebugAdapter.Protocol.Serialization;
using OmniSharp.Extensions.JsonRpc;
using OmniSharp.Extensions.JsonRpc.Generation;
@@ -13,7 +13,7 @@ namespace Events
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record ProcessEvent : IRequest
+ public record ProcessEvent : IRequest
{
///
/// The logical name of the process. This is usually the full path to process's executable file. Example: /home/example/myproj/program.js.
diff --git a/src/Dap.Protocol/Feature/Events/ProgressFeature.cs b/src/Dap.Protocol/Feature/Events/ProgressFeature.cs
index aca27ceaf..5bcbc27c8 100644
--- a/src/Dap.Protocol/Feature/Events/ProgressFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/ProgressFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.DebugAdapter.Protocol.Models;
using OmniSharp.Extensions.DebugAdapter.Protocol.Serialization;
using OmniSharp.Extensions.JsonRpc;
@@ -28,7 +28,7 @@ public abstract record ProgressEvent
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record ProgressStartEvent : ProgressEvent, IRequest
+ public record ProgressStartEvent : ProgressEvent, IRequest
{
///
/// Mandatory (short) title of the progress reporting. Shown in the UI to describe the long running operation.
@@ -63,7 +63,7 @@ public record ProgressStartEvent : ProgressEvent, IRequest
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record ProgressUpdateEvent : ProgressEvent, IRequest
+ public record ProgressUpdateEvent : ProgressEvent, IRequest
{
///
/// Optional progress percentage to display (value range: 0 to 100). If omitted no percentage will be shown.
@@ -77,6 +77,6 @@ public record ProgressUpdateEvent : ProgressEvent, IRequest
[GenerateHandler]
[GenerateHandlerMethods]
[GenerateRequestMethods]
- public record ProgressEndEvent : ProgressEvent, IRequest;
+ public record ProgressEndEvent : ProgressEvent, IRequest;
}
}
diff --git a/src/Dap.Protocol/Feature/Events/StoppedFeature.cs b/src/Dap.Protocol/Feature/Events/StoppedFeature.cs
index fbb5241b2..4582f7e82 100644
--- a/src/Dap.Protocol/Feature/Events/StoppedFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/StoppedFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.DebugAdapter.Protocol.Serialization;
using OmniSharp.Extensions.JsonRpc;
using OmniSharp.Extensions.JsonRpc.Generation;
@@ -15,7 +15,7 @@ namespace Events
GenerateHandlerMethods,
GenerateRequestMethods
]
- public record StoppedEvent : IRequest
+ public record StoppedEvent : IRequest
{
///
/// The reason for the event.
diff --git a/src/Dap.Protocol/Feature/Events/TerminatedFeature.cs b/src/Dap.Protocol/Feature/Events/TerminatedFeature.cs
index 731f4bfaf..41f682563 100644
--- a/src/Dap.Protocol/Feature/Events/TerminatedFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/TerminatedFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using OmniSharp.Extensions.DebugAdapter.Protocol.Serialization;
@@ -17,7 +17,7 @@ namespace Events
GenerateHandlerMethods,
GenerateRequestMethods
]
- public record TerminatedEvent : IRequest
+ public record TerminatedEvent : IRequest
{
///
/// A debug adapter may set 'restart' to true (or to an arbitrary object) to request that the front end restarts the session.
diff --git a/src/Dap.Protocol/Feature/Events/ThreadFeature.cs b/src/Dap.Protocol/Feature/Events/ThreadFeature.cs
index e31651a16..be6f55f17 100644
--- a/src/Dap.Protocol/Feature/Events/ThreadFeature.cs
+++ b/src/Dap.Protocol/Feature/Events/ThreadFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
using OmniSharp.Extensions.JsonRpc;
using OmniSharp.Extensions.JsonRpc.Generation;
@@ -14,7 +14,7 @@ namespace Events
GenerateHandlerMethods,
GenerateRequestMethods
]
- public record ThreadEvent : IRequest
+ public record ThreadEvent : IRequest
{
///
/// The reason for the event.
diff --git a/src/Dap.Protocol/IDebugAdapterProtocolProxy.cs b/src/Dap.Protocol/IDebugAdapterProtocolProxy.cs
index 5d8f4921e..0eb31f5b7 100644
--- a/src/Dap.Protocol/IDebugAdapterProtocolProxy.cs
+++ b/src/Dap.Protocol/IDebugAdapterProtocolProxy.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+using System;
using System.Diagnostics.CodeAnalysis;
using System.Threading;
using System.Threading.Tasks;
@@ -39,7 +39,7 @@ public void SendNotification(string method, T @params)
_responseRouter.SendNotification(method, @params);
}
- public void SendNotification(IRequest request)
+ public void SendNotification(IRequest request)
{
_responseRouter.SendNotification(request);
}
diff --git a/src/Dap.Server/Dap.Server.csproj b/src/Dap.Server/Dap.Server.csproj
index c3d82e895..767ab0412 100644
--- a/src/Dap.Server/Dap.Server.csproj
+++ b/src/Dap.Server/Dap.Server.csproj
@@ -1,7 +1,7 @@
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.DebugAdapter.Server
OmniSharp.Extensions.DebugAdapter.Server
diff --git a/src/Dap.Shared/Dap.Shared.csproj b/src/Dap.Shared/Dap.Shared.csproj
index cabed9b52..0114080b8 100644
--- a/src/Dap.Shared/Dap.Shared.csproj
+++ b/src/Dap.Shared/Dap.Shared.csproj
@@ -1,7 +1,7 @@
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.DebugAdapter.Shared
OmniSharp.Extensions.DebugAdapter.Shared
diff --git a/src/Dap.Shared/DapResponseRouter.cs b/src/Dap.Shared/DapResponseRouter.cs
index a41b86032..3c1bf3d41 100644
--- a/src/Dap.Shared/DapResponseRouter.cs
+++ b/src/Dap.Shared/DapResponseRouter.cs
@@ -49,7 +49,7 @@ public void SendNotification(string method, T @params)
);
}
- public void SendNotification(IRequest @params)
+ public void SendNotification(IRequest @params)
{
SendNotification(GetMethodName(@params.GetType()), @params);
}
diff --git a/src/Dap.Testing/Dap.Testing.csproj b/src/Dap.Testing/Dap.Testing.csproj
index dec248cdd..315e99a5d 100644
--- a/src/Dap.Testing/Dap.Testing.csproj
+++ b/src/Dap.Testing/Dap.Testing.csproj
@@ -1,7 +1,7 @@
ο»Ώ
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.DebugAdapter.Testing
OmniSharp.Extensions.DebugAdapter.Testing
diff --git a/src/JsonRpc.Generators/Helpers.cs b/src/JsonRpc.Generators/Helpers.cs
index 7ce048f46..d4560ea34 100644
--- a/src/JsonRpc.Generators/Helpers.cs
+++ b/src/JsonRpc.Generators/Helpers.cs
@@ -17,9 +17,10 @@ public static bool IsNotification(TypeDeclarationSyntax symbol) =>
symbol.BaseList?.Types
.Any(
z =>
- z.Type is SimpleNameSyntax and (
- { Identifier: { Text: "IJsonRpcNotificationHandler" }, Arity: 0 or 1 }
- or { Identifier: { Text: "IRequest" }, Arity: 0 }
+ z.Type is SimpleNameSyntax simpleNameSyntax && (
+ (simpleNameSyntax.Identifier.Text == "IJsonRpcNotificationHandler" && (simpleNameSyntax.Arity == 0 || simpleNameSyntax.Arity == 1))
+ || (simpleNameSyntax.Identifier.Text == "IRequest" && simpleNameSyntax.Arity == 0)
+ || (simpleNameSyntax.Identifier.Text == "IRequest" && simpleNameSyntax.Arity == 1 && IsUnitRequest(z.Type))
)
) == true;
@@ -27,16 +28,20 @@ public static bool IsRequest(TypeDeclarationSyntax symbol) =>
symbol.BaseList?.Types
.Any(
z =>
- z.Type is SimpleNameSyntax and (
- { Identifier: { Text: "IJsonRpcRequestHandler" }, Arity: 1 or 2 }
- or { Identifier: { Text: "ICanBeResolvedHandler" }, Arity: 1 }
- or { Identifier: { Text: "IPartialItemRequest" or "IPartialItemWithInitialValueRequest" }, Arity: 2 }
- or { Identifier: { Text: "IPartialItemsRequest" or "IPartialItemsWithInitialValueRequest" }, Arity: 2 }
- or { Identifier: { Text: "IRequest" }, Arity: 1 }
- or { Identifier: { Text: "IJsonRpcRequest" }, Arity: 0 }
+ z.Type is SimpleNameSyntax simpleNameSyntax && (
+ (simpleNameSyntax.Identifier.Text == "IJsonRpcRequestHandler" && (simpleNameSyntax.Arity is 1 or 2))
+ || ( simpleNameSyntax.Identifier.Text == "ICanBeResolvedHandler" && simpleNameSyntax.Arity == 1 )
+ || ( simpleNameSyntax.Identifier.Text is "IPartialItemRequest" or "IPartialItemWithInitialValueRequest" && simpleNameSyntax.Arity == 2 )
+ || ( simpleNameSyntax.Identifier.Text is "IPartialItemsRequest" or "IPartialItemsWithInitialValueRequest" && simpleNameSyntax.Arity == 2 )
+ || ( simpleNameSyntax.Identifier.Text == "IRequest" && simpleNameSyntax.Arity == 1 && !IsUnitRequest(simpleNameSyntax))
+ || ( simpleNameSyntax.Identifier.Text == "IJsonRpcRequest" && simpleNameSyntax.Arity == 0 )
)
) == true;
+ private static bool IsUnitRequest(TypeSyntax type) =>
+ type is GenericNameSyntax gns && gns.Identifier.Text == "IRequest" && gns.TypeArgumentList.Arguments.Count == 1 &&
+ gns.TypeArgumentList.Arguments[0] is SimpleNameSyntax sns && sns.Identifier.Text == "Unit";
+
public static ExpressionSyntax GetJsonRpcMethodName(TypeDeclarationSyntax interfaceSyntax)
{
var methodAttribute = interfaceSyntax.AttributeLists
diff --git a/src/JsonRpc.Testing/JsonRpc.Testing.csproj b/src/JsonRpc.Testing/JsonRpc.Testing.csproj
index d02e92518..9684fe254 100644
--- a/src/JsonRpc.Testing/JsonRpc.Testing.csproj
+++ b/src/JsonRpc.Testing/JsonRpc.Testing.csproj
@@ -1,7 +1,7 @@
ο»Ώ
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.JsonRpc.Testing
OmniSharp.Extensions.JsonRpc.Testing
diff --git a/src/JsonRpc.Testing/SettlePipeline.cs b/src/JsonRpc.Testing/SettlePipeline.cs
index 2504578a2..7a32a3f1e 100644
--- a/src/JsonRpc.Testing/SettlePipeline.cs
+++ b/src/JsonRpc.Testing/SettlePipeline.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System.Threading;
+using System.Threading;
using System.Threading.Tasks;
using MediatR;
@@ -11,7 +11,7 @@ public class SettlePipeline : IPipelineBehavior
public SettlePipeline(IRequestSettler settler) => _settler = settler;
- async Task IPipelineBehavior.Handle(T request, CancellationToken cancellationToken, RequestHandlerDelegate next)
+ async Task
IPipelineBehavior.Handle(T request, RequestHandlerDelegate next, CancellationToken cancellationToken)
{
_settler.OnStartRequest();
try
diff --git a/src/JsonRpc/CancelParams.cs b/src/JsonRpc/CancelParams.cs
index 966dc8dcd..3c0f14a45 100644
--- a/src/JsonRpc/CancelParams.cs
+++ b/src/JsonRpc/CancelParams.cs
@@ -3,7 +3,7 @@
namespace OmniSharp.Extensions.JsonRpc
{
[Method(JsonRpcNames.CancelRequest)]
- public partial class CancelParams : IRequest
+ public partial class CancelParams : IRequest
{
///
/// The request id to cancel.
diff --git a/src/JsonRpc/DefaultJsonRpcServerFacade.cs b/src/JsonRpc/DefaultJsonRpcServerFacade.cs
index 832446d68..81f6c0a27 100644
--- a/src/JsonRpc/DefaultJsonRpcServerFacade.cs
+++ b/src/JsonRpc/DefaultJsonRpcServerFacade.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+using System;
using System.Diagnostics.CodeAnalysis;
using System.Threading;
using System.Threading.Tasks;
@@ -30,7 +30,7 @@ public void SendNotification(string method, T @params)
_responseRouter.SendNotification(method, @params);
}
- public void SendNotification(IRequest request)
+ public void SendNotification(IRequest request)
{
_responseRouter.SendNotification(request);
}
diff --git a/src/JsonRpc/DelegatingHandlers.cs b/src/JsonRpc/DelegatingHandlers.cs
index aab304889..f410bbfdf 100644
--- a/src/JsonRpc/DelegatingHandlers.cs
+++ b/src/JsonRpc/DelegatingHandlers.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+using System;
using System.Threading;
using System.Threading.Tasks;
using MediatR;
@@ -22,7 +22,7 @@ Task IRequestHandler.
public class Request :
IJsonRpcRequestHandler
- where TParams : IRequest
+ where TParams : IRequest
{
private readonly Func _handler;
@@ -37,7 +37,7 @@ async Task IRequestHandler.
}
public class Notification : IJsonRpcRequestHandler
- where TParams : IRequest
+ where TParams : IRequest
{
private readonly Func _handler;
diff --git a/src/JsonRpc/DelegatingNotification.cs b/src/JsonRpc/DelegatingNotification.cs
index 04a7b1cc4..37811c589 100644
--- a/src/JsonRpc/DelegatingNotification.cs
+++ b/src/JsonRpc/DelegatingNotification.cs
@@ -3,7 +3,7 @@
namespace OmniSharp.Extensions.JsonRpc
{
- public class DelegatingNotification : IRequest
+ public class DelegatingNotification : IRequest
{
public DelegatingNotification(object value) => Value = typeof(T) == typeof(Unit) || value is Unit ? new JObject() : JToken.FromObject(value);
diff --git a/src/JsonRpc/IJsonRpcHandler.cs b/src/JsonRpc/IJsonRpcHandler.cs
index d52448871..5d3d0b804 100644
--- a/src/JsonRpc/IJsonRpcHandler.cs
+++ b/src/JsonRpc/IJsonRpcHandler.cs
@@ -1,4 +1,4 @@
-ο»Ώusing MediatR;
+using MediatR;
namespace OmniSharp.Extensions.JsonRpc
{
@@ -12,7 +12,7 @@ public interface IJsonRpcHandler
///
/// Marker interface for source generation to properly know that this IRequest is a real request and not a notification
///
- public interface IJsonRpcRequest : IRequest
+ public interface IJsonRpcRequest : IRequest
{
}
diff --git a/src/JsonRpc/IJsonRpcNotificationHandler.cs b/src/JsonRpc/IJsonRpcNotificationHandler.cs
index b9331bb1b..51962ef0d 100644
--- a/src/JsonRpc/IJsonRpcNotificationHandler.cs
+++ b/src/JsonRpc/IJsonRpcNotificationHandler.cs
@@ -2,8 +2,8 @@
namespace OmniSharp.Extensions.JsonRpc
{
- public interface IJsonRpcNotificationHandler : IRequestHandler, IJsonRpcHandler
- where TNotification : IRequest
+ public interface IJsonRpcNotificationHandler : IRequestHandler, IJsonRpcHandler
+ where TNotification : IRequest
{
}
}
diff --git a/src/JsonRpc/IJsonRpcRequestHandler.cs b/src/JsonRpc/IJsonRpcRequestHandler.cs
index 59f4f3a46..e5fbabd4a 100644
--- a/src/JsonRpc/IJsonRpcRequestHandler.cs
+++ b/src/JsonRpc/IJsonRpcRequestHandler.cs
@@ -24,8 +24,8 @@ public interface IJsonRpcRequestHandler : IRequestHandle
///
///
///
- public interface IJsonRpcRequestHandler : IRequestHandler, IJsonRpcHandler
- where TRequest : IRequest
+ public interface IJsonRpcRequestHandler : IRequestHandler, IJsonRpcHandler
+ where TRequest : IRequest
{
}
}
diff --git a/src/JsonRpc/IResponseRouter.cs b/src/JsonRpc/IResponseRouter.cs
index 6fa2ba15a..a66d1a6d1 100644
--- a/src/JsonRpc/IResponseRouter.cs
+++ b/src/JsonRpc/IResponseRouter.cs
@@ -10,7 +10,7 @@ public interface IResponseRouter
{
void SendNotification(string method);
void SendNotification(string method, T @params);
- void SendNotification(IRequest request);
+ void SendNotification(IRequest request);
IResponseRouterReturns SendRequest(string method, T @params);
IResponseRouterReturns SendRequest(string method);
Task SendRequest(IRequest request, CancellationToken cancellationToken);
diff --git a/src/JsonRpc/InputHandler.cs b/src/JsonRpc/InputHandler.cs
index 38f4d25c3..cf733ebd0 100644
--- a/src/JsonRpc/InputHandler.cs
+++ b/src/JsonRpc/InputHandler.cs
@@ -4,6 +4,7 @@
using System.IO;
using System.IO.Pipelines;
using System.Linq;
+using System.Net.Sockets;
using System.Reactive;
using System.Reactive.Concurrency;
using System.Reactive.Disposables;
@@ -144,9 +145,14 @@ public void Start()
{
await ProcessInputStream(_stopProcessing.Token).ConfigureAwait(false);
}
+ catch (IOException e)
+ when (e.InnerException is SocketException { SocketErrorCode: SocketError.ConnectionReset })
+ {
+ _logger.LogInformation(e, "Connection reset by client.");
+ }
catch (Exception e)
{
- _logger.LogCritical(e, "unhandled exception");
+ _logger.LogCritical(e, "Unhandled exception.");
}
}
).Subscribe(_inputActive)
diff --git a/src/JsonRpc/JsonRpc.csproj b/src/JsonRpc/JsonRpc.csproj
index efa5b2beb..4cb657da7 100644
--- a/src/JsonRpc/JsonRpc.csproj
+++ b/src/JsonRpc/JsonRpc.csproj
@@ -1,6 +1,6 @@
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.JsonRpc
OmniSharp.Extensions.JsonRpc
diff --git a/src/JsonRpc/JsonRpcServerBase.cs b/src/JsonRpc/JsonRpcServerBase.cs
index 2a5aeed03..ab7ea00b0 100644
--- a/src/JsonRpc/JsonRpcServerBase.cs
+++ b/src/JsonRpc/JsonRpcServerBase.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System.Diagnostics.CodeAnalysis;
+using System.Diagnostics.CodeAnalysis;
using System.Threading;
using System.Threading.Tasks;
using MediatR;
@@ -27,7 +27,7 @@ public void SendNotification(string method, T @params)
ResponseRouter.SendNotification(method, @params);
}
- public void SendNotification(IRequest @params)
+ public void SendNotification(IRequest @params)
{
ResponseRouter.SendNotification(@params);
}
diff --git a/src/JsonRpc/JsonRpcServerContainer.cs b/src/JsonRpc/JsonRpcServerContainer.cs
index ccc645e85..5ac29f682 100644
--- a/src/JsonRpc/JsonRpcServerContainer.cs
+++ b/src/JsonRpc/JsonRpcServerContainer.cs
@@ -37,7 +37,7 @@ public static IContainer Create(IServiceProvider? outerServiceProvider)
rules => rules.WithUnknownServiceResolvers(
request => {
var value = outerServiceProvider.GetService(request.ServiceType);
- return value == null ? null : (Factory) InstanceFactory.Of(value, Reuse.Transient);
+ return value == null ? null : (Factory) InstanceFactory.Of(value);
}
)
);
diff --git a/src/JsonRpc/JsonRpcServerServiceCollectionExtensions.cs b/src/JsonRpc/JsonRpcServerServiceCollectionExtensions.cs
index c24bb27d2..8a11cce2f 100644
--- a/src/JsonRpc/JsonRpcServerServiceCollectionExtensions.cs
+++ b/src/JsonRpc/JsonRpcServerServiceCollectionExtensions.cs
@@ -100,7 +100,8 @@ internal static IContainer AddJsonRpcMediatR(this IContainer container)
{
container.RegisterMany(new[] { typeof(IMediator).GetAssembly() }, Registrator.Interfaces, Reuse.ScopedOrSingleton);
container.RegisterMany(Reuse.Scoped);
- container.RegisterDelegate(context => context.Resolve, Reuse.ScopedOrSingleton);
+ // Select the desired constructor
+ container.Register(made: Made.Of(() => new Mediator(Arg.Of())));
container.Register(typeof(IRequestHandler<,>), typeof(RequestHandler<,>));
container.Register(typeof(IRequestHandler<,>), typeof(RequestHandlerDecorator<,>), setup: Setup.Decorator);
diff --git a/src/JsonRpc/NoopResponseRouter.cs b/src/JsonRpc/NoopResponseRouter.cs
index 7816d40d1..a2c3e89c5 100644
--- a/src/JsonRpc/NoopResponseRouter.cs
+++ b/src/JsonRpc/NoopResponseRouter.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System.Diagnostics.CodeAnalysis;
+using System.Diagnostics.CodeAnalysis;
using System.Threading;
using System.Threading.Tasks;
using MediatR;
@@ -25,7 +25,7 @@ public void SendNotification(string method, T @params)
{
}
- public void SendNotification(IRequest request)
+ public void SendNotification(IRequest request)
{
}
diff --git a/src/JsonRpc/NotificationHandler.cs b/src/JsonRpc/NotificationHandler.cs
index 54f7228cb..e23ba9bc8 100644
--- a/src/JsonRpc/NotificationHandler.cs
+++ b/src/JsonRpc/NotificationHandler.cs
@@ -8,15 +8,15 @@ namespace OmniSharp.Extensions.JsonRpc
public static class NotificationHandler
{
public static DelegatingHandlers.Notification For(Action handler)
- where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
+ where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
public static DelegatingHandlers.Notification For(Func handler)
- where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
+ where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
public static DelegatingHandlers.Notification For(Action handler)
- where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
+ where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
public static DelegatingHandlers.Notification For(Func handler)
- where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
+ where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
}
}
diff --git a/src/JsonRpc/RequestHandler.cs b/src/JsonRpc/RequestHandler.cs
index 42684005b..2ba0a7c0a 100644
--- a/src/JsonRpc/RequestHandler.cs
+++ b/src/JsonRpc/RequestHandler.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+using System;
using System.Threading;
using System.Threading.Tasks;
using MediatR;
@@ -14,9 +14,9 @@ public static DelegatingHandlers.Request For
where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
public static DelegatingHandlers.Request For(Func handler)
- where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
+ where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
public static DelegatingHandlers.Request For(Func handler)
- where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
+ where TParams : IRequest => new(HandlerAdapter.Adapt(handler));
}
}
diff --git a/src/JsonRpc/RequestRouterBase.cs b/src/JsonRpc/RequestRouterBase.cs
index dcfafde60..51e652744 100644
--- a/src/JsonRpc/RequestRouterBase.cs
+++ b/src/JsonRpc/RequestRouterBase.cs
@@ -216,7 +216,7 @@ public static Task HandleRequest(IMediator mediator, IHandlerDescriptor descript
}
private static Task SendRequest(IMediator mediator, T request, CancellationToken token)
- where T : IRequest =>
+ where T : IRequest =>
mediator.Send(request, token);
private static Task SendRequest(IMediator mediator, T request, CancellationToken token)
diff --git a/src/JsonRpc/ResponseRouter.cs b/src/JsonRpc/ResponseRouter.cs
index d66afc528..e64df4ef9 100644
--- a/src/JsonRpc/ResponseRouter.cs
+++ b/src/JsonRpc/ResponseRouter.cs
@@ -48,7 +48,7 @@ public void SendNotification(string method, T @params)
);
}
- public void SendNotification(IRequest @params)
+ public void SendNotification(IRequest @params)
{
SendNotification(GetMethodName(@params.GetType()), @params);
}
diff --git a/src/Protocol.Proposals/Protocol.Proposals.csproj b/src/Protocol.Proposals/Protocol.Proposals.csproj
index 2e61bfaed..d56f5894f 100644
--- a/src/Protocol.Proposals/Protocol.Proposals.csproj
+++ b/src/Protocol.Proposals/Protocol.Proposals.csproj
@@ -1,6 +1,6 @@
- netstandard2.1;netstandard2.0;net6.0
+ netstandard2.1;netstandard2.0;net6.0;net8.0
AnyCPU
OmniSharp.Extensions.LanguageProtocol.Proposals
OmniSharp.Extensions.LanguageServer.Protocol
diff --git a/src/Protocol/AbstractHandlers.Notification.cs b/src/Protocol/AbstractHandlers.Notification.cs
index 89b2c4f36..e0142a3cb 100644
--- a/src/Protocol/AbstractHandlers.Notification.cs
+++ b/src/Protocol/AbstractHandlers.Notification.cs
@@ -17,7 +17,7 @@ namespace OmniSharp.Extensions.LanguageServer.Protocol
public static partial class AbstractHandlers
{
public abstract class Notification : IJsonRpcRequestHandler
- where TParams : IRequest
+ where TParams : IRequest
{
public abstract Task Handle(TParams request, CancellationToken cancellationToken);
}
@@ -25,7 +25,7 @@ public abstract class Notification : IJsonRpcRequestHandler
public abstract class Notification :
Base,
IJsonRpcRequestHandler
- where TParams : IRequest
+ where TParams : IRequest
where TRegistrationOptions : class, new()
where TCapability : ICapability
{
@@ -35,7 +35,7 @@ public abstract class Notification :
public abstract class Notification :
Base,
IJsonRpcRequestHandler
- where TParams : IRequest
+ where TParams : IRequest
where TRegistrationOptions : class, new()
{
public abstract Task Handle(TParams request, CancellationToken cancellationToken);
@@ -44,7 +44,7 @@ public abstract class Notification :
public abstract class NotificationCapability :
BaseCapability,
IJsonRpcRequestHandler
- where TParams : IRequest
+ where TParams : IRequest
where TCapability : ICapability
{
public abstract Task Handle(TParams request, CancellationToken cancellationToken);
diff --git a/src/Protocol/Client/WorkDone/LanguageClientWorkDoneManager.cs b/src/Protocol/Client/WorkDone/LanguageClientWorkDoneManager.cs
index fd7e2c1d5..9d2656314 100644
--- a/src/Protocol/Client/WorkDone/LanguageClientWorkDoneManager.cs
+++ b/src/Protocol/Client/WorkDone/LanguageClientWorkDoneManager.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+using System;
using System.Collections.Concurrent;
using System.Reactive.Disposables;
using System.Threading;
diff --git a/src/Protocol/Features/Client/LogTraceFeature.cs b/src/Protocol/Features/Client/LogTraceFeature.cs
index 7c033130a..2b9b99215 100644
--- a/src/Protocol/Features/Client/LogTraceFeature.cs
+++ b/src/Protocol/Features/Client/LogTraceFeature.cs
@@ -14,7 +14,7 @@ namespace Models
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Client")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IClientLanguageServer), typeof(ILanguageServer))]
- public record LogTraceParams : IRequest
+ public record LogTraceParams : IRequest
{
///
/// The message to be logged.
diff --git a/src/Protocol/Features/Document/CodeLensFeature.cs b/src/Protocol/Features/Document/CodeLensFeature.cs
index fa9af0f21..6c6aac133 100644
--- a/src/Protocol/Features/Document/CodeLensFeature.cs
+++ b/src/Protocol/Features/Document/CodeLensFeature.cs
@@ -118,7 +118,7 @@ public override StaticOptions Convert(CodeLensRegistrationOptions source)
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageServer), typeof(ILanguageServer))]
[Capability(typeof(CodeLensWorkspaceClientCapabilities))]
- public partial record CodeLensRefreshParams : IRequest;
+ public partial record CodeLensRefreshParams : IRequest;
}
namespace Client.Capabilities
diff --git a/src/Protocol/Features/Document/DiagnosticsFeature.cs b/src/Protocol/Features/Document/DiagnosticsFeature.cs
index 1a79b7a70..3fcbae608 100644
--- a/src/Protocol/Features/Document/DiagnosticsFeature.cs
+++ b/src/Protocol/Features/Document/DiagnosticsFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System.Collections.Immutable;
+using System.Collections.Immutable;
using MediatR;
using Newtonsoft.Json;
using OmniSharp.Extensions.JsonRpc;
@@ -73,7 +73,7 @@ public partial record WorkspaceDiagnosticParams : IWorkDoneProgressParams,
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageServer), typeof(ILanguageServer))]
[Capability(typeof(CodeLensWorkspaceClientCapabilities))]
- public partial record DiagnosticRefreshParams : IRequest;
+ public partial record DiagnosticRefreshParams : IRequest;
public interface IDiagnosticReport
{
diff --git a/src/Protocol/Features/Document/InlayHintFeature.cs b/src/Protocol/Features/Document/InlayHintFeature.cs
index ef8168687..02e6e4b8e 100644
--- a/src/Protocol/Features/Document/InlayHintFeature.cs
+++ b/src/Protocol/Features/Document/InlayHintFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System.Collections.ObjectModel;
+using System.Collections.ObjectModel;
using System.Diagnostics;
using MediatR;
using Newtonsoft.Json;
@@ -272,7 +272,7 @@ public enum InlayHintKind
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageServer), typeof(ILanguageServer))]
[Capability(typeof(InlayHintWorkspaceClientCapabilities))]
- public partial record InlayHintRefreshParams : IRequest;
+ public partial record InlayHintRefreshParams : IRequest;
[GenerateRegistrationOptions(nameof(ServerCapabilities.InlayHintProvider))]
[RegistrationOptionsConverter(typeof(InlayHintRegistrationOptionsConverter))]
diff --git a/src/Protocol/Features/Document/InlineValueFeature.cs b/src/Protocol/Features/Document/InlineValueFeature.cs
index b904f531c..cc5922a55 100644
--- a/src/Protocol/Features/Document/InlineValueFeature.cs
+++ b/src/Protocol/Features/Document/InlineValueFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System.Diagnostics;
+using System.Diagnostics;
using MediatR;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -70,7 +70,7 @@ public partial record InlineValueContext
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageServer), typeof(ILanguageServer))]
[Capability(typeof(InlineValueWorkspaceClientCapabilities))]
- public partial record InlineValueRefreshParams : IRequest;
+ public partial record InlineValueRefreshParams : IRequest;
[JsonConverter(typeof(Converter))]
public abstract partial record InlineValueBase
diff --git a/src/Protocol/Features/Document/NotebookDocumentSyncFeature.cs b/src/Protocol/Features/Document/NotebookDocumentSyncFeature.cs
index ac8383d8d..d759bd8f3 100644
--- a/src/Protocol/Features/Document/NotebookDocumentSyncFeature.cs
+++ b/src/Protocol/Features/Document/NotebookDocumentSyncFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+using System;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
@@ -37,7 +37,7 @@ namespace Models
[GenerateRequestMethods(typeof(INotebookDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(NotebookDocumentSyncOptions))]
[Capability(typeof(NotebookDocumentSyncClientCapabilities))]
- public partial class DidOpenNotebookDocumentParams : IRequest
+ public partial class DidOpenNotebookDocumentParams : IRequest
{
///
/// The notebook document that got opened.
@@ -63,7 +63,7 @@ public partial class DidOpenNotebookDocumentParams : IRequest
[GenerateRequestMethods(typeof(INotebookDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(NotebookDocumentSyncOptions))]
[Capability(typeof(NotebookDocumentSyncClientCapabilities))]
- public partial record DidChangeNotebookDocumentParams : IRequest
+ public partial record DidChangeNotebookDocumentParams : IRequest
{
///
/// The notebook document that did change. The version number points
@@ -94,7 +94,7 @@ public partial record DidChangeNotebookDocumentParams : IRequest
[GenerateRequestMethods(typeof(INotebookDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(NotebookDocumentSyncOptions))]
[Capability(typeof(NotebookDocumentSyncClientCapabilities))]
- public partial class DidSaveNotebookDocumentParams : INotebookDocumentIdentifierParams, IRequest
+ public partial class DidSaveNotebookDocumentParams : INotebookDocumentIdentifierParams, IRequest
{
///
/// The notebook document that got saved.
@@ -109,7 +109,7 @@ public partial class DidSaveNotebookDocumentParams : INotebookDocumentIdentifier
[GenerateRequestMethods(typeof(INotebookDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(NotebookDocumentSyncOptions))]
[Capability(typeof(NotebookDocumentSyncClientCapabilities))]
- public partial class DidCloseNotebookDocumentParams : INotebookDocumentIdentifierParams, IRequest
+ public partial class DidCloseNotebookDocumentParams : INotebookDocumentIdentifierParams, IRequest
{
///
/// The notebook document that got closed.
@@ -734,7 +734,7 @@ public interface INotebookDocumentRegistrationOptions : IRegistrationOptions
///
/// The notebooks to be synced
///
- NotebookSelector NotebookSelector { get; set; }
+ Container NotebookSelector { get; set; }
}
///
@@ -761,7 +761,7 @@ public partial class NotebookDocumentSyncOptions : INotebookDocumentRegistration
/// value is provided it matches against the
/// notebook type. '*' matches every notebook.
///
- public NotebookSelector NotebookSelector { get; set; }
+ public Container NotebookSelector { get; set; }
///
/// Whether save notification should be forwarded to
diff --git a/src/Protocol/Features/Document/PublishDiagnosticsFeature.cs b/src/Protocol/Features/Document/PublishDiagnosticsFeature.cs
index 2bce7efd0..15ed763c9 100644
--- a/src/Protocol/Features/Document/PublishDiagnosticsFeature.cs
+++ b/src/Protocol/Features/Document/PublishDiagnosticsFeature.cs
@@ -20,7 +20,7 @@ namespace Models
GenerateRequestMethods(typeof(ITextDocumentLanguageServer), typeof(ILanguageServer))
]
[Capability(typeof(PublishDiagnosticsCapability))]
- public record PublishDiagnosticsParams : IRequest
+ public record PublishDiagnosticsParams : IRequest
{
///
/// The URI for which diagnostic information is reported.
diff --git a/src/Protocol/Features/Document/SemanticTokensFeature.cs b/src/Protocol/Features/Document/SemanticTokensFeature.cs
index dc651b2ed..40d6d5b36 100644
--- a/src/Protocol/Features/Document/SemanticTokensFeature.cs
+++ b/src/Protocol/Features/Document/SemanticTokensFeature.cs
@@ -1,4 +1,4 @@
-ο»Ώusing System;
+using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Diagnostics.CodeAnalysis;
@@ -99,7 +99,7 @@ public partial record SemanticTokensRangeParams : IWorkDoneProgressParams, IText
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageServer), typeof(ILanguageServer))]
[Capability(typeof(SemanticTokensWorkspaceCapability))]
- public partial record SemanticTokensRefreshParams : IRequest;
+ public partial record SemanticTokensRefreshParams : IRequest;
public interface ISemanticTokenResult
{
diff --git a/src/Protocol/Features/Document/TextDocumentSyncFeature.cs b/src/Protocol/Features/Document/TextDocumentSyncFeature.cs
index bc2d14057..ce06f1a1c 100644
--- a/src/Protocol/Features/Document/TextDocumentSyncFeature.cs
+++ b/src/Protocol/Features/Document/TextDocumentSyncFeature.cs
@@ -30,7 +30,7 @@ namespace Models
[GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(TextDocumentChangeRegistrationOptions))]
[Capability(typeof(TextSynchronizationCapability))]
- public partial record DidChangeTextDocumentParams : IRequest
+ public partial record DidChangeTextDocumentParams : IRequest
{
///
/// The document that did change. The version number points
@@ -111,7 +111,7 @@ public record TextDocumentEdit
[GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(TextDocumentOpenRegistrationOptions))]
[Capability(typeof(TextSynchronizationCapability))]
- public partial class DidOpenTextDocumentParams : IRequest
+ public partial class DidOpenTextDocumentParams : IRequest
{
///
/// The document that was opened.
@@ -131,7 +131,7 @@ public partial class TextDocumentOpenRegistrationOptions : ITextDocumentRegistra
[GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(TextDocumentCloseRegistrationOptions))]
[Capability(typeof(TextSynchronizationCapability))]
- public partial class DidCloseTextDocumentParams : ITextDocumentIdentifierParams, IRequest
+ public partial class DidCloseTextDocumentParams : ITextDocumentIdentifierParams, IRequest
{
///
/// The document that was closed.
@@ -151,7 +151,7 @@ public partial class TextDocumentCloseRegistrationOptions : ITextDocumentRegistr
[GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(TextDocumentSaveRegistrationOptions))]
[Capability(typeof(TextSynchronizationCapability))]
- public partial class DidSaveTextDocumentParams : ITextDocumentIdentifierParams, IRequest
+ public partial class DidSaveTextDocumentParams : ITextDocumentIdentifierParams, IRequest
{
///
/// The document that was saved.
@@ -515,7 +515,7 @@ public static implicit operator TextDocumentCloseRegistrationOptions(TextDocumen
[GenerateRequestMethods(typeof(ITextDocumentLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(TextDocumenWillSaveRegistrationOptions))]
[Capability(typeof(TextSynchronizationCapability))]
- public partial class WillSaveTextDocumentParams : IRequest
+ public partial class WillSaveTextDocumentParams : IRequest
{
///
/// The document that will be saved.
diff --git a/src/Protocol/Features/FileOperationsFeature.cs b/src/Protocol/Features/FileOperationsFeature.cs
index 158e0a40e..25604bdf1 100644
--- a/src/Protocol/Features/FileOperationsFeature.cs
+++ b/src/Protocol/Features/FileOperationsFeature.cs
@@ -20,7 +20,7 @@ namespace Models
///
/// @since 3.16.0
///
- public abstract record FileOperationParams
+ public abstract record FileOperationsParams
where T : FileOperationItem
{
///
@@ -40,33 +40,33 @@ public abstract record FileOperationItem
public Uri Uri { get; init; } = null!;
}
- ///
+ ///
[Parallel]
[Method(WorkspaceNames.DidCreateFiles, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))]
- [RegistrationOptions(typeof(DidCreateFileRegistrationOptions))]
+ [RegistrationOptions(typeof(DidCreateFilesRegistrationOptions))]
[Capability(typeof(FileOperationsWorkspaceClientCapabilities))]
- public partial record DidCreateFileParams : FileOperationParams, IRequest
+ public partial record DidCreateFilesParams : FileOperationsParams, IRequest
{
- public static implicit operator WillCreateFileParams(DidCreateFileParams @params)
+ public static implicit operator WillCreateFilesParams(DidCreateFilesParams @params)
{
return new() { Files = @params.Files };
}
}
- ///
+ ///
[Parallel]
[Method(WorkspaceNames.WillCreateFiles, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))]
- [RegistrationOptions(typeof(WillCreateFileRegistrationOptions))]
+ [RegistrationOptions(typeof(WillCreateFilesRegistrationOptions))]
[Capability(typeof(FileOperationsWorkspaceClientCapabilities))]
- public partial record WillCreateFileParams : FileOperationParams, IRequest
+ public partial record WillCreateFilesParams : FileOperationsParams, IRequest
{
- public static implicit operator DidCreateFileParams(WillCreateFileParams @params)
+ public static implicit operator DidCreateFilesParams(WillCreateFilesParams @params)
{
return new() { Files = @params.Files };
}
@@ -75,68 +75,96 @@ public static implicit operator DidCreateFileParams(WillCreateFileParams @params
///
public partial record FileCreate : FileOperationItem;
- ///
+ ///
[Parallel]
[Method(WorkspaceNames.DidRenameFiles, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))]
- [RegistrationOptions(typeof(DidRenameFileRegistrationOptions))]
+ [RegistrationOptions(typeof(DidRenameFilesRegistrationOptions))]
[Capability(typeof(FileOperationsWorkspaceClientCapabilities))]
- public partial record DidRenameFileParams : FileOperationParams, IRequest
+ public partial record DidRenameFilesParams : RenameFilesOperationParams, IRequest
{
- public static implicit operator WillRenameFileParams(DidRenameFileParams @params)
+ public static implicit operator WillRenameFilesParams(DidRenameFilesParams @params)
{
return new() { Files = @params.Files };
}
}
- ///
+ ///
[Parallel]
[Method(WorkspaceNames.WillRenameFiles, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))]
- [RegistrationOptions(typeof(WillRenameFileRegistrationOptions))]
+ [RegistrationOptions(typeof(WillRenameFilesRegistrationOptions))]
[Capability(typeof(FileOperationsWorkspaceClientCapabilities))]
- public partial record WillRenameFileParams : FileOperationParams, IRequest
+ public partial record WillRenameFilesParams : RenameFilesOperationParams, IRequest
{
- public static implicit operator DidRenameFileParams(WillRenameFileParams @params)
+ public static implicit operator DidRenameFilesParams(WillRenameFilesParams @params)
{
return new() { Files = @params.Files };
}
}
- ///
- public partial record FileRename : FileOperationItem;
+ ///
+ /// The parameters sent in notifications/requests for user-initiated renames
+ /// of files.
+ ///
+ /// @since 3.16.0
+ ///
+ public abstract record RenameFilesOperationParams
+ {
+ ///
+ /// An array of all files/folders renamed in this operation.
+ /// When a folder is renamed, only the folder will be included, and not its children.
+ ///
+ public Container Files { get; init; } = null!;
+ }
+
+ ///
+ /// Represents information on a file/folder rename.
+ ///
+ public partial record FileRename
+ {
+ ///
+ /// A file:// URI for the original location of the file/folder being renamed.
+ ///
+ public Uri OldUri { get; init; } = null!;
+
+ ///
+ /// A file:// URI for the new location of the file/folder being renamed.
+ ///
+ public Uri NewUri { get; init; } = null!;
+ }
- ///
+ ///
[Parallel]
[Method(WorkspaceNames.DidDeleteFiles, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))]
- [RegistrationOptions(typeof(DidDeleteFileRegistrationOptions))]
+ [RegistrationOptions(typeof(DidDeleteFilesRegistrationOptions))]
[Capability(typeof(FileOperationsWorkspaceClientCapabilities))]
- public partial record DidDeleteFileParams : FileOperationParams, IRequest
+ public partial record DidDeleteFilesParams : FileOperationsParams, IRequest
{
- public static implicit operator WillDeleteFileParams(DidDeleteFileParams @params)
+ public static implicit operator WillDeleteFilesParams(DidDeleteFilesParams @params)
{
return new() { Files = @params.Files };
}
}
- ///
+ ///
[Parallel]
[Method(WorkspaceNames.WillDeleteFiles, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))]
- [RegistrationOptions(typeof(WillDeleteFileRegistrationOptions))]
+ [RegistrationOptions(typeof(WillDeleteFilesRegistrationOptions))]
[Capability(typeof(FileOperationsWorkspaceClientCapabilities))]
- public partial record WillDeleteFileParams : FileOperationParams, IRequest
+ public partial record WillDeleteFilesParams : FileOperationsParams, IRequest
{
- public static implicit operator DidDeleteFileParams(WillDeleteFileParams @params)
+ public static implicit operator DidDeleteFilesParams(WillDeleteFilesParams @params)
{
return new() { Files = @params.Files };
}
@@ -151,7 +179,7 @@ public partial record FileDelete : FileOperationItem;
nameof(FileOperationsWorkspaceServerCapabilities.WillCreate)
)]
[RegistrationName(WorkspaceNames.WillCreateFiles)]
- public partial class WillCreateFileRegistrationOptions : IFileOperationRegistrationOptions
+ public partial class WillCreateFilesRegistrationOptions : IFileOperationRegistrationOptions
{
///
/// The actual filters.
@@ -165,7 +193,7 @@ public partial class WillCreateFileRegistrationOptions : IFileOperationRegistrat
nameof(FileOperationsWorkspaceServerCapabilities.DidCreate)
)]
[RegistrationName(WorkspaceNames.DidCreateFiles)]
- public partial class DidCreateFileRegistrationOptions : IFileOperationRegistrationOptions
+ public partial class DidCreateFilesRegistrationOptions : IFileOperationRegistrationOptions
{
///
/// The actual filters.
@@ -179,7 +207,7 @@ public partial class DidCreateFileRegistrationOptions : IFileOperationRegistrati
nameof(FileOperationsWorkspaceServerCapabilities.WillRename)
)]
[RegistrationName(WorkspaceNames.WillRenameFiles)]
- public partial class WillRenameFileRegistrationOptions : IFileOperationRegistrationOptions
+ public partial class WillRenameFilesRegistrationOptions : IFileOperationRegistrationOptions
{
///
/// The actual filters.
@@ -193,7 +221,7 @@ public partial class WillRenameFileRegistrationOptions : IFileOperationRegistrat
nameof(FileOperationsWorkspaceServerCapabilities.DidRename)
)]
[RegistrationName(WorkspaceNames.DidRenameFiles)]
- public partial class DidRenameFileRegistrationOptions : IFileOperationRegistrationOptions
+ public partial class DidRenameFilesRegistrationOptions : IFileOperationRegistrationOptions
{
///
/// The actual filters.
@@ -207,7 +235,7 @@ public partial class DidRenameFileRegistrationOptions : IFileOperationRegistrati
nameof(FileOperationsWorkspaceServerCapabilities.WillDelete)
)]
[RegistrationName(WorkspaceNames.WillDeleteFiles)]
- public partial class WillDeleteFileRegistrationOptions : IFileOperationRegistrationOptions
+ public partial class WillDeleteFilesRegistrationOptions : IFileOperationRegistrationOptions
{
///
/// The actual filters.
@@ -221,7 +249,7 @@ public partial class WillDeleteFileRegistrationOptions : IFileOperationRegistrat
nameof(FileOperationsWorkspaceServerCapabilities.DidDelete)
)]
[RegistrationName(WorkspaceNames.DidDeleteFiles)]
- public partial class DidDeleteFileRegistrationOptions : IFileOperationRegistrationOptions
+ public partial class DidDeleteFilesRegistrationOptions : IFileOperationRegistrationOptions
{
///
/// The actual filters.
@@ -335,37 +363,37 @@ public class FileOperationsWorkspaceServerCapabilities
/// The client has support for sending didCreateFiles notifications.
///
[Optional]
- public DidCreateFileRegistrationOptions.StaticOptions? DidCreate { get; set; }
+ public DidCreateFilesRegistrationOptions.StaticOptions? DidCreate { get; set; }
///
/// The client has support for sending willCreateFiles requests.
///
[Optional]
- public WillCreateFileRegistrationOptions.StaticOptions? WillCreate { get; set; }
+ public WillCreateFilesRegistrationOptions.StaticOptions? WillCreate { get; set; }
///
/// The client has support for sending didRenameFiles notifications.
///
[Optional]
- public DidRenameFileRegistrationOptions.StaticOptions? DidRename { get; set; }
+ public DidRenameFilesRegistrationOptions.StaticOptions? DidRename { get; set; }
///
/// The client has support for sending willRenameFiles requests.
///
[Optional]
- public WillRenameFileRegistrationOptions.StaticOptions? WillRename { get; set; }
+ public WillRenameFilesRegistrationOptions.StaticOptions? WillRename { get; set; }
///
/// The client has support for sending didDeleteFiles notifications.
///
[Optional]
- public DidDeleteFileRegistrationOptions.StaticOptions? DidDelete { get; set; }
+ public DidDeleteFilesRegistrationOptions.StaticOptions? DidDelete { get; set; }
///
/// The client has support for sending willDeleteFiles requests.
///
[Optional]
- public WillDeleteFileRegistrationOptions.StaticOptions? WillDelete { get; set; }
+ public WillDeleteFilesRegistrationOptions.StaticOptions? WillDelete { get; set; }
}
}
diff --git a/src/Protocol/Features/General/ExitFeature.cs b/src/Protocol/Features/General/ExitFeature.cs
index 1da73948e..0c5c1fa0d 100644
--- a/src/Protocol/Features/General/ExitFeature.cs
+++ b/src/Protocol/Features/General/ExitFeature.cs
@@ -12,7 +12,7 @@ namespace Models
[Serial]
[Method(GeneralNames.Exit, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.General"), GenerateHandlerMethods, GenerateRequestMethods(typeof(ILanguageClient))]
- public partial record ExitParams : IRequest
+ public partial record ExitParams : IRequest
{
public static ExitParams Instance { get; } = new ExitParams();
}
diff --git a/src/Protocol/Features/General/InitializedFeature.cs b/src/Protocol/Features/General/InitializedFeature.cs
index fdd35713a..d4d7d2cc4 100644
--- a/src/Protocol/Features/General/InitializedFeature.cs
+++ b/src/Protocol/Features/General/InitializedFeature.cs
@@ -14,6 +14,6 @@ namespace Models
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.General", Name = "LanguageProtocolInitialized")]
[GenerateHandlerMethods(typeof(ILanguageServerRegistry))]
[GenerateRequestMethods(typeof(ILanguageClient))]
- public partial record InitializedParams : IRequest;
+ public partial record InitializedParams : IRequest;
}
}
diff --git a/src/Protocol/Features/General/ShutdownFeature.cs b/src/Protocol/Features/General/ShutdownFeature.cs
index 18ea4420c..e0c65ff95 100644
--- a/src/Protocol/Features/General/ShutdownFeature.cs
+++ b/src/Protocol/Features/General/ShutdownFeature.cs
@@ -14,7 +14,7 @@ namespace Models
[Serial]
[Method(GeneralNames.Shutdown, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.General"), GenerateHandlerMethods, GenerateRequestMethods(typeof(ILanguageClient))]
- public partial record ShutdownParams : IRequest
+ public partial record ShutdownParams : IRequest
{
public static ShutdownParams Instance { get; } = new();
}
diff --git a/src/Protocol/Features/ProgressFeature.cs b/src/Protocol/Features/ProgressFeature.cs
index ee48a6187..80763e980 100644
--- a/src/Protocol/Features/ProgressFeature.cs
+++ b/src/Protocol/Features/ProgressFeature.cs
@@ -24,7 +24,7 @@ namespace Models
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IGeneralLanguageClient), typeof(ILanguageClient), typeof(IGeneralLanguageServer), typeof(ILanguageServer))]
- public record ProgressParams : IRequest
+ public record ProgressParams : IRequest
{
public static ProgressParams Create(ProgressToken token, T value, JsonSerializer jsonSerializer)
{
diff --git a/src/Protocol/Features/Server/SetTraceFeature.cs b/src/Protocol/Features/Server/SetTraceFeature.cs
index b3c6ce27e..33bec4b41 100644
--- a/src/Protocol/Features/Server/SetTraceFeature.cs
+++ b/src/Protocol/Features/Server/SetTraceFeature.cs
@@ -11,7 +11,7 @@ namespace Models
[Parallel]
[Method(GeneralNames.SetTrace, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Server"), GenerateHandlerMethods, GenerateRequestMethods(typeof(IClientLanguageClient), typeof(ILanguageClient))]
- public record SetTraceParams : IRequest
+ public record SetTraceParams : IRequest
{
///
/// The new value that should be assigned to the trace setting.
diff --git a/src/Protocol/Features/Window/LogMessageFeature.cs b/src/Protocol/Features/Window/LogMessageFeature.cs
index 2fe2edfcd..e9ec0da08 100644
--- a/src/Protocol/Features/Window/LogMessageFeature.cs
+++ b/src/Protocol/Features/Window/LogMessageFeature.cs
@@ -14,7 +14,7 @@ namespace Models
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Window")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWindowLanguageServer), typeof(ILanguageServer))]
- public record LogMessageParams : IRequest
+ public record LogMessageParams : IRequest
{
///
/// The message type. See {@link MessageType}
diff --git a/src/Protocol/Features/Window/ShowMessageFeature.cs b/src/Protocol/Features/Window/ShowMessageFeature.cs
index f116c56dd..d913520ee 100644
--- a/src/Protocol/Features/Window/ShowMessageFeature.cs
+++ b/src/Protocol/Features/Window/ShowMessageFeature.cs
@@ -17,7 +17,7 @@ namespace Models
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Window")]
[GenerateHandlerMethods]
[GenerateRequestMethods(typeof(IWindowLanguageServer), typeof(ILanguageServer))]
- public record ShowMessageParams : IRequest
+ public record ShowMessageParams : IRequest
{
///
/// The message type. See {@link MessageType}.
diff --git a/src/Protocol/Features/Window/ShowMessageRequestFeature.cs b/src/Protocol/Features/Window/ShowMessageRequestFeature.cs
index d68c6aa64..6e7ab8f01 100644
--- a/src/Protocol/Features/Window/ShowMessageRequestFeature.cs
+++ b/src/Protocol/Features/Window/ShowMessageRequestFeature.cs
@@ -75,7 +75,7 @@ namespace Client.Capabilities
/// @since 3.16.0
///
[CapabilityKey(nameof(ClientCapabilities.Window), nameof(WindowClientCapabilities.ShowMessage))]
- public class ShowMessageRequestClientCapabilities
+ public class ShowMessageRequestClientCapabilities : ICapability
{
///
/// Capabilities specific to the `MessageActionItem` type.
diff --git a/src/Protocol/Features/Window/TelemetryEventFeature.cs b/src/Protocol/Features/Window/TelemetryEventFeature.cs
index 632b04b11..59415fee9 100644
--- a/src/Protocol/Features/Window/TelemetryEventFeature.cs
+++ b/src/Protocol/Features/Window/TelemetryEventFeature.cs
@@ -17,7 +17,7 @@ namespace Models
GenerateHandlerMethods,
GenerateRequestMethods(typeof(IWindowLanguageServer), typeof(ILanguageServer))
]
- public record TelemetryEventParams : IRequest
+ public record TelemetryEventParams : IRequest
{
[JsonExtensionData] public IDictionary ExtensionData { get; init; } = new Dictionary();
}
diff --git a/src/Protocol/Features/Window/WorkDoneProgressFeature.cs b/src/Protocol/Features/Window/WorkDoneProgressFeature.cs
index 79aed087e..10a552cb4 100644
--- a/src/Protocol/Features/Window/WorkDoneProgressFeature.cs
+++ b/src/Protocol/Features/Window/WorkDoneProgressFeature.cs
@@ -15,7 +15,7 @@ namespace Models
[Method(WindowNames.WorkDoneProgressCreate, Direction.ServerToClient)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Window"), GenerateHandlerMethods,
GenerateRequestMethods(typeof(IWindowLanguageServer), typeof(ILanguageServer))]
- public partial record WorkDoneProgressCreateParams : IRequest
+ public partial record WorkDoneProgressCreateParams : IRequest
{
///
/// The token to be used to report progress.
@@ -27,7 +27,7 @@ public partial record WorkDoneProgressCreateParams : IRequest
[Method(WindowNames.WorkDoneProgressCancel, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Window"), GenerateHandlerMethods,
GenerateRequestMethods(typeof(IWindowLanguageClient), typeof(ILanguageClient))]
- public partial record WorkDoneProgressCancelParams : IRequest
+ public partial record WorkDoneProgressCancelParams : IRequest
{
///
/// The token to be used to report progress.
diff --git a/src/Protocol/Features/Workspace/DidChangeConfigurationFeature.cs b/src/Protocol/Features/Workspace/DidChangeConfigurationFeature.cs
index 83468c6b1..951981b79 100644
--- a/src/Protocol/Features/Workspace/DidChangeConfigurationFeature.cs
+++ b/src/Protocol/Features/Workspace/DidChangeConfigurationFeature.cs
@@ -15,7 +15,7 @@ namespace Models
[Method(WorkspaceNames.DidChangeConfiguration, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace"), GenerateHandlerMethods, GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))]
[Capability(typeof(DidChangeConfigurationCapability))]
- public partial record DidChangeConfigurationParams : IRequest
+ public partial record DidChangeConfigurationParams : IRequest
{
///
/// The actual changed settings
diff --git a/src/Protocol/Features/Workspace/DidChangeWatchedFilesFeature.cs b/src/Protocol/Features/Workspace/DidChangeWatchedFilesFeature.cs
index 7e02f041f..178f87ab3 100644
--- a/src/Protocol/Features/Workspace/DidChangeWatchedFilesFeature.cs
+++ b/src/Protocol/Features/Workspace/DidChangeWatchedFilesFeature.cs
@@ -15,7 +15,7 @@ namespace Models
[Method(WorkspaceNames.DidChangeWatchedFiles, Direction.ClientToServer)]
[GenerateHandler("OmniSharp.Extensions.LanguageServer.Protocol.Workspace"), GenerateHandlerMethods, GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))]
[RegistrationOptions(typeof(DidChangeWatchedFilesRegistrationOptions)), Capability(typeof(DidChangeWatchedFilesCapability))]
- public partial record DidChangeWatchedFilesParams : IRequest
+ public partial record DidChangeWatchedFilesParams : IRequest
{
///
/// The actual file events.
diff --git a/src/Protocol/Features/Workspace/WorkspaceFoldersFeature.cs b/src/Protocol/Features/Workspace/WorkspaceFoldersFeature.cs
index 13b49b0df..2d61dc571 100644
--- a/src/Protocol/Features/Workspace/WorkspaceFoldersFeature.cs
+++ b/src/Protocol/Features/Workspace/WorkspaceFoldersFeature.cs
@@ -21,7 +21,7 @@ namespace Models
GenerateRequestMethods(typeof(IWorkspaceLanguageClient), typeof(ILanguageClient))
]
[RegistrationOptions(typeof(DidChangeWorkspaceFolderRegistrationOptions))]
- public partial record DidChangeWorkspaceFoldersParams : IRequest
+ public partial record DidChangeWorkspaceFoldersParams : IRequest
{
///
/// The actual workspace folder change event.
diff --git a/src/Protocol/LanguageProtocolDelegatingHandlers.Notification.cs b/src/Protocol/LanguageProtocolDelegatingHandlers.Notification.cs
index ca1b7a124..4dd5b3e4a 100644
--- a/src/Protocol/LanguageProtocolDelegatingHandlers.Notification.cs
+++ b/src/Protocol/LanguageProtocolDelegatingHandlers.Notification.cs
@@ -20,7 +20,7 @@ public sealed class Notification :
AbstractHandlers.Base,
IJsonRpcNotificationHandler,
ICanBeIdentifiedHandler
- where TParams : IRequest
+ where TParams : IRequest
where TRegistrationOptions : class, new()
where TCapability : ICapability
{
@@ -59,7 +59,7 @@ public sealed class Notification :
AbstractHandlers.Base,
IJsonRpcNotificationHandler,
ICanBeIdentifiedHandler
- where TParams : IRequest
+ where TParams : IRequest
where TRegistrationOptions : class, new()
{
private readonly Func _handler;
@@ -92,7 +92,7 @@ public sealed class NotificationCapability :
AbstractHandlers.BaseCapability,
IJsonRpcNotificationHandler,
ICanBeIdentifiedHandler
- where TParams : IRequest
+ where TParams : IRequest
where TCapability : ICapability
{
private readonly Func _handler;
diff --git a/src/Protocol/LanguageProtocolDelegatingHandlers.Request.cs b/src/Protocol/LanguageProtocolDelegatingHandlers.Request.cs
index b269ffe4f..ed4bd923a 100644
--- a/src/Protocol/LanguageProtocolDelegatingHandlers.Request.cs
+++ b/src/Protocol/LanguageProtocolDelegatingHandlers.Request.cs
@@ -58,7 +58,7 @@ public sealed class Request :
AbstractHandlers.Base