diff --git a/src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/Microsoft.CodeAnalysis.Razor.CohostingShared.projitems b/src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/Microsoft.CodeAnalysis.Razor.CohostingShared.projitems
index db5efc78aab..0ee2eafa84f 100644
--- a/src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/Microsoft.CodeAnalysis.Razor.CohostingShared.projitems
+++ b/src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/Microsoft.CodeAnalysis.Razor.CohostingShared.projitems
@@ -30,6 +30,8 @@
+
+
diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Cohost/CohostOnAutoInsertEndpoint.cs b/src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/OnAutoInsert/CohostOnAutoInsertEndpoint.cs
similarity index 94%
rename from src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Cohost/CohostOnAutoInsertEndpoint.cs
rename to src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/OnAutoInsert/CohostOnAutoInsertEndpoint.cs
index 71f1e88b064..9bd08318387 100644
--- a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Cohost/CohostOnAutoInsertEndpoint.cs
+++ b/src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/OnAutoInsert/CohostOnAutoInsertEndpoint.cs
@@ -11,6 +11,7 @@
using Microsoft.AspNetCore.Razor.LanguageServer.Hosting;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.ExternalAccess.Razor.Cohost;
+using Microsoft.CodeAnalysis.ExternalAccess.Razor.Features;
using Microsoft.CodeAnalysis.Razor.AutoInsert;
using Microsoft.CodeAnalysis.Razor.Formatting;
using Microsoft.CodeAnalysis.Razor.Logging;
@@ -26,10 +27,10 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor.LanguageClient.Cohost;
[Shared]
[CohostEndpoint(VSInternalMethods.OnAutoInsertName)]
[Export(typeof(IDynamicRegistrationProvider))]
-[ExportCohostStatelessLspService(typeof(CohostOnAutoInsertEndpoint))]
+[ExportRazorStatelessLspService(typeof(CohostOnAutoInsertEndpoint))]
[method: ImportingConstructor]
#pragma warning restore RS0030 // Do not use banned APIs
-internal class CohostOnAutoInsertEndpoint(
+internal sealed class CohostOnAutoInsertEndpoint(
IRemoteServiceInvoker remoteServiceInvoker,
IClientSettingsManager clientSettingsManager,
#pragma warning disable RS0030 // Do not use banned APIs
@@ -52,7 +53,10 @@ private static ImmutableArray CalculateTriggerChars(IEnumerable triggerCharacters = [
.. providerTriggerCharacters,
+#if !VSCODE
+ // VS Code's auto insert functionality is poly-filled by Roslyn. The Html server has no support for it.
.. AutoInsertService.HtmlAllowedAutoInsertTriggerCharacters,
+#endif
.. AutoInsertService.CSharpAllowedAutoInsertTriggerCharacters ];
return triggerCharacters;
@@ -64,7 +68,7 @@ private static ImmutableArray CalculateTriggerChars(IEnumerable GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
- if (clientCapabilities.SupportsVisualStudioExtensions)
+ if ((clientCapabilities.TextDocument as VSInternalTextDocumentClientCapabilities)?.OnAutoInsert?.DynamicRegistration == true)
{
return [new Registration
{
diff --git a/src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Cohost/CohostOnAutoInsertTriggerCharacterProviders.cs b/src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/OnAutoInsert/CohostOnAutoInsertTriggerCharacterProviders.cs
similarity index 100%
rename from src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Cohost/CohostOnAutoInsertTriggerCharacterProviders.cs
rename to src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/OnAutoInsert/CohostOnAutoInsertTriggerCharacterProviders.cs
diff --git a/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/Cohost/CohostEndpointTest.cs b/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/Cohost/CohostEndpointTest.cs
index e025cd3b34d..4025b7d4c7c 100644
--- a/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/Cohost/CohostEndpointTest.cs
+++ b/src/Razor/test/Microsoft.VisualStudio.LanguageServices.Razor.Test/Cohost/CohostEndpointTest.cs
@@ -71,7 +71,7 @@ public void RegistrationsProvideFilter()
var clientCapabilities = new VSInternalClientCapabilities()
{
SupportsVisualStudioExtensions = true,
- TextDocument = new TextDocumentClientCapabilities()
+ TextDocument = new VSInternalTextDocumentClientCapabilities()
{
CodeAction = new() { DynamicRegistration = true },
CodeLens = new() { DynamicRegistration = true },
@@ -87,6 +87,7 @@ public void RegistrationsProvideFilter()
Implementation = new() { DynamicRegistration = true },
InlayHint = new() { DynamicRegistration = true },
LinkedEditingRange = new() { DynamicRegistration = true },
+ OnAutoInsert = new() { DynamicRegistration = true },
OnTypeFormatting = new() { DynamicRegistration = true },
RangeFormatting = new() { DynamicRegistration = true },
References = new() { DynamicRegistration = true },