Skip to content

Commit

Permalink
Move cohosting to dynamic registration (#10165)
Browse files Browse the repository at this point in the history
This is the Razor side of dotnet/roslyn#72609

It can't build yet, because that PR hasn't merged, and it doesn't result
in colours in the editor being applied yet due to platform bugs in
semantic tokens (specifically
https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2003715 mainly),
but thought I'd put it up in case anyone wants to look at it, and so I
don't forget it exists.
  • Loading branch information
davidwengier authored Apr 15, 2024
2 parents 7d96ce8 + 9625a1f commit 06296ee
Show file tree
Hide file tree
Showing 27 changed files with 417 additions and 398 deletions.
2 changes: 1 addition & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<PropertyGroup>
<_MicrosoftWebToolsPackageVersion>17.9.67-preview-0001</_MicrosoftWebToolsPackageVersion>
<_MicrosoftVisualStudioShellPackagesVersion>17.9.36524</_MicrosoftVisualStudioShellPackagesVersion>
<_MicrosoftVisualStudioPackagesVersion>17.10.29-preview</_MicrosoftVisualStudioPackagesVersion>
<_MicrosoftVisualStudioPackagesVersion>17.10.72-preview</_MicrosoftVisualStudioPackagesVersion>
<_VisualStudioLanguageServerProtocolVersion>17.10.13-preview</_VisualStudioLanguageServerProtocolVersion>
<_MicrosoftExtensionsPackageVersion>6.0.0</_MicrosoftExtensionsPackageVersion>
<_BenchmarkDotNetPackageVersion>0.13.5.2136</_BenchmarkDotNetPackageVersion>
Expand Down
76 changes: 38 additions & 38 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,82 +11,82 @@
<Sha>c0b5d69a1a1513528c77fffff708c7502d57c35c</Sha>
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CommonLanguageServerProtocol.Framework" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CommonLanguageServerProtocol.Framework" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.ExternalAccess.Razor" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.ExternalAccess.Razor" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.Common" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.Common" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.CSharp" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.CSharp" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.CSharp.EditorFeatures" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.CSharp.EditorFeatures" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.CSharp.Features" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.CSharp.Features" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.EditorFeatures" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.EditorFeatures" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.EditorFeatures.Common" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.EditorFeatures.Common" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.EditorFeatures.Text" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.EditorFeatures.Text" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.EditorFeatures.Wpf" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.EditorFeatures.Wpf" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.Remote.ServiceHub" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.Remote.ServiceHub" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.VisualStudio.LanguageServices" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.VisualStudio.LanguageServices" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.Test.Utilities" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.CodeAnalysis.Test.Utilities" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.roslyn" Version="4.10.0-3.24170.4">
<Dependency Name="Microsoft.SourceBuild.Intermediate.roslyn" Version="4.11.0-1.24214.4">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>98cd097bf122677378692ebe952b71ab6e5bb013</Sha>
<Sha>84c5476ef3111c9abd78d43e65063280bb7202d9</Sha>
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
</Dependency>
</ProductDependencies>
Expand Down
38 changes: 19 additions & 19 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -53,25 +53,25 @@
<MicrosoftSourceBuildIntermediatearcadePackageVersion>8.0.0-beta.24204.3</MicrosoftSourceBuildIntermediatearcadePackageVersion>
<MicrosoftDotNetXliffTasksPackageVersion>1.0.0-beta.23475.1</MicrosoftDotNetXliffTasksPackageVersion>
<MicrosoftSourceBuildIntermediatexlifftasksPackageVersion>1.0.0-beta.23475.1</MicrosoftSourceBuildIntermediatexlifftasksPackageVersion>
<MicrosoftNetCompilersToolsetPackageVersion>4.10.0-3.24170.4</MicrosoftNetCompilersToolsetPackageVersion>
<MicrosoftCommonLanguageServerProtocolFrameworkPackageVersion>4.10.0-3.24170.4</MicrosoftCommonLanguageServerProtocolFrameworkPackageVersion>
<MicrosoftCodeAnalysisExternalAccessRazorPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisExternalAccessRazorPackageVersion>
<MicrosoftCodeAnalysisCommonPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisCommonPackageVersion>
<MicrosoftCodeAnalysisCSharpPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisCSharpPackageVersion>
<MicrosoftCodeAnalysisCSharpEditorFeaturesPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisCSharpEditorFeaturesPackageVersion>
<MicrosoftCodeAnalysisCSharpFeaturesPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisCSharpFeaturesPackageVersion>
<MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>
<MicrosoftCodeAnalysisEditorFeaturesPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisEditorFeaturesPackageVersion>
<MicrosoftCodeAnalysisEditorFeaturesCommonPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisEditorFeaturesCommonPackageVersion>
<MicrosoftCodeAnalysisEditorFeaturesTextPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisEditorFeaturesTextPackageVersion>
<MicrosoftCodeAnalysisEditorFeaturesWpfPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisEditorFeaturesWpfPackageVersion>
<MicrosoftCodeAnalysisRemoteServiceHubPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisRemoteServiceHubPackageVersion>
<MicrosoftCodeAnalysisTestUtilitiesPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisTestUtilitiesPackageVersion>
<MicrosoftCodeAnalysisVisualBasicWorkspacesPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisVisualBasicWorkspacesPackageVersion>
<MicrosoftCodeAnalysisWorkspacesCommonPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisWorkspacesCommonPackageVersion>
<MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion>4.10.0-3.24170.4</MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion>
<MicrosoftSourceBuildIntermediateroslynPackageVersion>4.10.0-3.24170.4</MicrosoftSourceBuildIntermediateroslynPackageVersion>
<MicrosoftVisualStudioLanguageServicesPackageVersion>4.10.0-3.24170.4</MicrosoftVisualStudioLanguageServicesPackageVersion>
<MicrosoftNetCompilersToolsetPackageVersion>4.11.0-1.24214.4</MicrosoftNetCompilersToolsetPackageVersion>
<MicrosoftCommonLanguageServerProtocolFrameworkPackageVersion>4.11.0-1.24214.4</MicrosoftCommonLanguageServerProtocolFrameworkPackageVersion>
<MicrosoftCodeAnalysisExternalAccessRazorPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisExternalAccessRazorPackageVersion>
<MicrosoftCodeAnalysisCommonPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisCommonPackageVersion>
<MicrosoftCodeAnalysisCSharpPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisCSharpPackageVersion>
<MicrosoftCodeAnalysisCSharpEditorFeaturesPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisCSharpEditorFeaturesPackageVersion>
<MicrosoftCodeAnalysisCSharpFeaturesPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisCSharpFeaturesPackageVersion>
<MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>
<MicrosoftCodeAnalysisEditorFeaturesPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisEditorFeaturesPackageVersion>
<MicrosoftCodeAnalysisEditorFeaturesCommonPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisEditorFeaturesCommonPackageVersion>
<MicrosoftCodeAnalysisEditorFeaturesTextPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisEditorFeaturesTextPackageVersion>
<MicrosoftCodeAnalysisEditorFeaturesWpfPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisEditorFeaturesWpfPackageVersion>
<MicrosoftCodeAnalysisRemoteServiceHubPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisRemoteServiceHubPackageVersion>
<MicrosoftCodeAnalysisTestUtilitiesPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisTestUtilitiesPackageVersion>
<MicrosoftCodeAnalysisVisualBasicWorkspacesPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisVisualBasicWorkspacesPackageVersion>
<MicrosoftCodeAnalysisWorkspacesCommonPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisWorkspacesCommonPackageVersion>
<MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion>4.11.0-1.24214.4</MicrosoftCodeAnalysisWorkspacesMSBuildPackageVersion>
<MicrosoftSourceBuildIntermediateroslynPackageVersion>4.11.0-1.24214.4</MicrosoftSourceBuildIntermediateroslynPackageVersion>
<MicrosoftVisualStudioLanguageServicesPackageVersion>4.11.0-1.24214.4</MicrosoftVisualStudioLanguageServicesPackageVersion>
<!--
Exception - Microsoft.Extensions.ObjectPool and System.Collections.Immutable packages are not updated by automation,
but are present in Version.Details.xml for source-build PVP flow. See the comment in Version.Details.xml for more information.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using Microsoft.CodeAnalysis.Razor.Workspaces;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.VisualStudio.LanguageServer.Protocol;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using StreamJsonRpc;

Expand Down Expand Up @@ -45,7 +46,7 @@ public static RazorLanguageServerWrapper Create(
ILspServerActivationTracker? lspServerActivationTracker = null,
TraceSource? traceSource = null)
{
var jsonRpc = CreateJsonRpc(input, output);
var (jsonRpc, jsonSerializer) = CreateJsonRpc(input, output);

// This ensures each request is a separate activity in LogHub
jsonRpc.ActivityTracingStrategy = new CorrelationManagerTracingStrategy
Expand All @@ -55,6 +56,7 @@ public static RazorLanguageServerWrapper Create(

var server = new RazorLanguageServer(
jsonRpc,
jsonSerializer,
loggerFactory,
projectSnapshotManagerDispatcher,
featureOptions,
Expand All @@ -69,7 +71,7 @@ public static RazorLanguageServerWrapper Create(
return razorLanguageServer;
}

private static JsonRpc CreateJsonRpc(Stream input, Stream output)
private static (JsonRpc, JsonSerializer) CreateJsonRpc(Stream input, Stream output)
{
var messageFormatter = new JsonMessageFormatter();
messageFormatter.JsonSerializer.AddVSInternalExtensionConverters();
Expand All @@ -80,7 +82,7 @@ private static JsonRpc CreateJsonRpc(Stream input, Stream output)
// Get more information about exceptions that occur during RPC method invocations.
jsonRpc.ExceptionStrategy = ExceptionProcessing.ISerializable;

return jsonRpc;
return (jsonRpc, messageFormatter.JsonSerializer);
}

public Task WaitForExitAsync()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,20 @@ public static void EnableDocumentColorProvider(this VSInternalServerCapabilities

public static void EnableSemanticTokens(this VSInternalServerCapabilities serverCapabilities, ISemanticTokensLegendService legend)
{
serverCapabilities.SemanticTokensOptions = new SemanticTokensOptions
serverCapabilities.SemanticTokensOptions = new SemanticTokensOptions().EnableSemanticTokens(legend);
}

public static SemanticTokensOptions EnableSemanticTokens(this SemanticTokensOptions options, ISemanticTokensLegendService legend)
{
options.Full = false;
options.Legend = new SemanticTokensLegend
{
Full = false,
Legend = new SemanticTokensLegend
{
TokenModifiers = legend.TokenModifiers.All,
TokenTypes = legend.TokenTypes.All
},
Range = true,
TokenModifiers = legend.TokenModifiers.All,
TokenTypes = legend.TokenTypes.All
};
options.Range = true;

return options;
}

public static void EnableHoverProvider(this VSInternalServerCapabilities serverCapabilities)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
<Description>Razor is a markup syntax for adding server-side logic to web pages. This package contains the language server library assets.</Description>
<EnableApiCheck>false</EnableApiCheck>
<IsShippingPackage>false</IsShippingPackage>
<!-- CLaSP is a source package, and has a more lenient approach to using statements than us-->
<NoWarn>IDE0005</NoWarn>
</PropertyGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
using Microsoft.CommonLanguageServerProtocol.Framework;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Newtonsoft.Json;
using StreamJsonRpc;

namespace Microsoft.AspNetCore.Razor.LanguageServer;
Expand All @@ -51,14 +52,15 @@ internal partial class RazorLanguageServer : AbstractLanguageServer<RazorRequest

public RazorLanguageServer(
JsonRpc jsonRpc,
JsonSerializer serializer,
ILoggerFactory loggerFactory,
ProjectSnapshotManagerDispatcher? projectSnapshotManagerDispatcher,
LanguageServerFeatureOptions? featureOptions,
Action<IServiceCollection>? configureServer,
RazorLSPOptions? lspOptions,
ILspServerActivationTracker? lspServerActivationTracker,
ITelemetryReporter telemetryReporter)
: base(jsonRpc, CreateILspLogger(loggerFactory, telemetryReporter))
: base(jsonRpc, serializer, CreateILspLogger(loggerFactory, telemetryReporter))
{
_jsonRpc = jsonRpc;
_loggerFactory = loggerFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ internal class RemoteCSharpSemanticTokensProvider(IFilePathService filePathServi
// We have a razor document, lets find the generated C# document
var generatedDocument = GetGeneratedDocument(documentContext);

var csharpSourceText = await documentContext.GetCSharpSourceTextAsync(cancellationToken).ConfigureAwait(false);

// HACK: We're not in the same solution fork as the LSP server that provides content for this document
generatedDocument = generatedDocument.WithText(csharpSourceText);

var data = await SemanticTokensRange.GetSemanticTokensAsync(
generatedDocument,
csharpRanges,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root for license information.

using Microsoft.CodeAnalysis.ExternalAccess.Razor.Cohost;

namespace Microsoft.VisualStudio.Razor.LanguageClient.Cohost;

internal class CohostEndpointAttribute : RazorMethodAttribute
{
public CohostEndpointAttribute(string method)
: base(method, Constants.RazorLanguageName)
{
}
}
Loading

0 comments on commit 06296ee

Please sign in to comment.