Skip to content

Commit 08ad141

Browse files
authored
Minor cohosting cleanup (#11678)
Just removing some code that is now dead, because the language server doesn't even start when cohosting is on.
2 parents fd843db + 1a550cc commit 08ad141

File tree

6 files changed

+82
-197
lines changed

6 files changed

+82
-197
lines changed

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Extensions/IServiceCollectionExtensions.cs

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -59,19 +59,16 @@ public static void AddLifeCycleServices(this IServiceCollection services, RazorL
5959
services.AddSingleton<IOnInitialized>(clientConnection);
6060
}
6161

62-
public static void AddFormattingServices(this IServiceCollection services, LanguageServerFeatureOptions featureOptions)
62+
public static void AddFormattingServices(this IServiceCollection services)
6363
{
6464
// Formatting
6565
services.AddSingleton<IRazorFormattingService, RazorFormattingService>();
6666

67-
if (!featureOptions.UseRazorCohostServer)
68-
{
69-
services.AddSingleton<IHtmlFormatter, HtmlFormatter>();
67+
services.AddSingleton<IHtmlFormatter, HtmlFormatter>();
7068

71-
services.AddHandlerWithCapabilities<DocumentFormattingEndpoint>();
72-
services.AddHandlerWithCapabilities<DocumentOnTypeFormattingEndpoint>();
73-
services.AddHandlerWithCapabilities<DocumentRangeFormattingEndpoint>();
74-
}
69+
services.AddHandlerWithCapabilities<DocumentFormattingEndpoint>();
70+
services.AddHandlerWithCapabilities<DocumentOnTypeFormattingEndpoint>();
71+
services.AddHandlerWithCapabilities<DocumentRangeFormattingEndpoint>();
7572
}
7673

7774
public static void AddCompletionServices(this IServiceCollection services)
@@ -113,17 +110,14 @@ public static void AddHoverServices(this IServiceCollection services)
113110
services.AddHandlerWithCapabilities<HoverEndpoint>();
114111
}
115112

116-
public static void AddSemanticTokensServices(this IServiceCollection services, LanguageServerFeatureOptions featureOptions)
113+
public static void AddSemanticTokensServices(this IServiceCollection services)
117114
{
118-
if (!featureOptions.UseRazorCohostServer)
119-
{
120-
services.AddHandlerWithCapabilities<SemanticTokensRangeEndpoint>();
121-
// Ensure that we don't add the default service if something else has added one.
122-
services.TryAddSingleton<IRazorSemanticTokensInfoService, RazorSemanticTokensInfoService>();
123-
services.AddSingleton<ICSharpSemanticTokensProvider, LSPCSharpSemanticTokensProvider>();
115+
services.AddHandlerWithCapabilities<SemanticTokensRangeEndpoint>();
116+
// Ensure that we don't add the default service if something else has added one.
117+
services.TryAddSingleton<IRazorSemanticTokensInfoService, RazorSemanticTokensInfoService>();
118+
services.AddSingleton<ICSharpSemanticTokensProvider, LSPCSharpSemanticTokensProvider>();
124119

125-
services.AddSingleton<ISemanticTokensLegendService, RazorSemanticTokensLegendService>();
126-
}
120+
services.AddSingleton<ISemanticTokensLegendService, RazorSemanticTokensLegendService>();
127121

128122
services.AddHandler<RazorSemanticTokensRefreshEndpoint>();
129123

@@ -168,18 +162,15 @@ public static void AddCodeActionsServices(this IServiceCollection services)
168162
services.AddSingleton<IHtmlCodeActionResolver, HtmlCodeActionResolver>();
169163
}
170164

171-
public static void AddTextDocumentServices(this IServiceCollection services, LanguageServerFeatureOptions featureOptions)
165+
public static void AddTextDocumentServices(this IServiceCollection services)
172166
{
173-
if (!featureOptions.UseRazorCohostServer)
174-
{
175-
services.AddHandlerWithCapabilities<TextDocumentTextPresentationEndpoint>();
176-
services.AddHandlerWithCapabilities<TextDocumentUriPresentationEndpoint>();
177-
178-
services.AddSingleton<ISpellCheckService, SpellCheckService>();
179-
services.AddSingleton<ICSharpSpellCheckRangeProvider, LspCSharpSpellCheckRangeProvider>();
180-
services.AddHandlerWithCapabilities<DocumentSpellCheckEndpoint>();
181-
services.AddHandler<WorkspaceSpellCheckEndpoint>();
182-
}
167+
services.AddHandlerWithCapabilities<TextDocumentTextPresentationEndpoint>();
168+
services.AddHandlerWithCapabilities<TextDocumentUriPresentationEndpoint>();
169+
170+
services.AddSingleton<ISpellCheckService, SpellCheckService>();
171+
services.AddSingleton<ICSharpSpellCheckRangeProvider, LspCSharpSpellCheckRangeProvider>();
172+
services.AddHandlerWithCapabilities<DocumentSpellCheckEndpoint>();
173+
services.AddHandler<WorkspaceSpellCheckEndpoint>();
183174

184175
services.AddHandlerWithCapabilities<DocumentDidChangeEndpoint>();
185176
services.AddHandler<DocumentDidCloseEndpoint>();

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/GeneratedDocumentSynchronizer.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,9 @@ public void DocumentProcessed(RazorCodeDocument codeDocument, DocumentSnapshot d
3434
return;
3535
}
3636

37-
// If cohosting is on, then it is responsible for updating the Html buffer
38-
if (!_languageServerFeatureOptions.UseRazorCohostServer)
39-
{
40-
var htmlText = codeDocument.GetHtmlSourceText();
37+
var htmlText = codeDocument.GetHtmlSourceText();
4138

42-
_publisher.PublishHtml(document.Project.Key, filePath, htmlText, hostDocumentVersion);
43-
}
39+
_publisher.PublishHtml(document.Project.Key, filePath, htmlText, hostDocumentVersion);
4440

4541
var csharpText = codeDocument.GetCSharpSourceText();
4642

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/RazorLanguageServer.cs

Lines changed: 46 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void Dispose()
8282
_jsonRpc.Dispose();
8383
}
8484

85-
private static ILspLogger CreateILspLogger(ILoggerFactory loggerFactory, ITelemetryReporter telemetryReporter)
85+
private static ClaspLoggingBridge CreateILspLogger(ILoggerFactory loggerFactory, ITelemetryReporter telemetryReporter)
8686
{
8787
return new ClaspLoggingBridge(loggerFactory, telemetryReporter);
8888
}
@@ -127,40 +127,37 @@ protected override ILspServices ConstructLspServices()
127127

128128
services.AddLifeCycleServices(this, _clientConnection, _lspServerActivationTracker);
129129

130-
services.AddSemanticTokensServices(featureOptions);
130+
services.AddSemanticTokensServices();
131131
services.AddDocumentManagementServices();
132-
services.AddFormattingServices(featureOptions);
132+
services.AddFormattingServices();
133133
services.AddOptionsServices(_lspOptions);
134-
services.AddTextDocumentServices(featureOptions);
134+
services.AddTextDocumentServices();
135135

136-
if (!featureOptions.UseRazorCohostServer)
137-
{
138-
// Diagnostics
139-
services.AddDiagnosticServices();
136+
// Diagnostics
137+
services.AddDiagnosticServices();
140138

141-
services.AddCodeActionsServices();
139+
services.AddCodeActionsServices();
142140

143-
// Completion
144-
services.AddCompletionServices();
141+
// Completion
142+
services.AddCompletionServices();
145143

146-
// Auto insert
147-
services.AddSingleton<IOnAutoInsertProvider, CloseTextTagOnAutoInsertProvider>();
148-
services.AddSingleton<IOnAutoInsertProvider, AutoClosingTagOnAutoInsertProvider>();
144+
// Auto insert
145+
services.AddSingleton<IOnAutoInsertProvider, CloseTextTagOnAutoInsertProvider>();
146+
services.AddSingleton<IOnAutoInsertProvider, AutoClosingTagOnAutoInsertProvider>();
149147

150-
services.AddSingleton<IAutoInsertService, AutoInsertService>();
148+
services.AddSingleton<IAutoInsertService, AutoInsertService>();
151149

152-
// Folding Range Providers
153-
services.AddSingleton<IRazorFoldingRangeProvider, RazorCodeBlockFoldingProvider>();
154-
services.AddSingleton<IRazorFoldingRangeProvider, RazorCSharpStatementFoldingProvider>();
155-
services.AddSingleton<IRazorFoldingRangeProvider, RazorCSharpStatementKeywordFoldingProvider>();
156-
services.AddSingleton<IRazorFoldingRangeProvider, SectionDirectiveFoldingProvider>();
157-
services.AddSingleton<IRazorFoldingRangeProvider, UsingsFoldingRangeProvider>();
150+
// Folding Range Providers
151+
services.AddSingleton<IRazorFoldingRangeProvider, RazorCodeBlockFoldingProvider>();
152+
services.AddSingleton<IRazorFoldingRangeProvider, RazorCSharpStatementFoldingProvider>();
153+
services.AddSingleton<IRazorFoldingRangeProvider, RazorCSharpStatementKeywordFoldingProvider>();
154+
services.AddSingleton<IRazorFoldingRangeProvider, SectionDirectiveFoldingProvider>();
155+
services.AddSingleton<IRazorFoldingRangeProvider, UsingsFoldingRangeProvider>();
158156

159-
services.AddSingleton<IFoldingRangeService, FoldingRangeService>();
157+
services.AddSingleton<IFoldingRangeService, FoldingRangeService>();
160158

161-
// Hover
162-
services.AddHoverServices();
163-
}
159+
// Hover
160+
services.AddHoverServices();
164161

165162
// Other
166163
services.AddSingleton<IRazorComponentSearchEngine, RazorComponentSearchEngine>();
@@ -171,54 +168,51 @@ protected override ILspServices ConstructLspServices()
171168
// Defaults: For when the caller hasn't provided them through the `configure` action.
172169
services.TryAddSingleton<IHostServicesProvider, DefaultHostServicesProvider>();
173170

174-
AddHandlers(services, featureOptions);
171+
AddHandlers(services);
175172

176173
var lspServices = new LspServices(services);
177174

178175
return lspServices;
179176

180-
static void AddHandlers(IServiceCollection services, LanguageServerFeatureOptions featureOptions)
177+
static void AddHandlers(IServiceCollection services)
181178
{
182179
// Not calling AddHandler because we want to register this endpoint as an IOnInitialized too
183180
services.AddSingleton<RazorConfigurationEndpoint>();
184181
services.AddSingleton<IMethodHandler, RazorConfigurationEndpoint>(s => s.GetRequiredService<RazorConfigurationEndpoint>());
185182
// Transient because it should only be used once and I'm hoping it doesn't stick around.
186183
services.AddTransient<IOnInitialized>(sp => sp.GetRequiredService<RazorConfigurationEndpoint>());
187184

188-
if (!featureOptions.UseRazorCohostServer)
189-
{
190-
services.AddHandlerWithCapabilities<ImplementationEndpoint>();
185+
services.AddHandlerWithCapabilities<ImplementationEndpoint>();
191186

192-
services.AddSingleton<IRazorComponentDefinitionService, RazorComponentDefinitionService>();
193-
services.AddHandlerWithCapabilities<DefinitionEndpoint>();
187+
services.AddSingleton<IRazorComponentDefinitionService, RazorComponentDefinitionService>();
188+
services.AddHandlerWithCapabilities<DefinitionEndpoint>();
194189

195-
services.AddSingleton<IRenameService, RenameService>();
196-
services.AddHandlerWithCapabilities<RenameEndpoint>();
190+
services.AddSingleton<IRenameService, RenameService>();
191+
services.AddHandlerWithCapabilities<RenameEndpoint>();
197192

198-
services.AddHandlerWithCapabilities<OnAutoInsertEndpoint>();
199-
services.AddHandlerWithCapabilities<DocumentHighlightEndpoint>();
200-
services.AddHandlerWithCapabilities<SignatureHelpEndpoint>();
201-
services.AddHandlerWithCapabilities<LinkedEditingRangeEndpoint>();
202-
services.AddHandlerWithCapabilities<FoldingRangeEndpoint>();
193+
services.AddHandlerWithCapabilities<OnAutoInsertEndpoint>();
194+
services.AddHandlerWithCapabilities<DocumentHighlightEndpoint>();
195+
services.AddHandlerWithCapabilities<SignatureHelpEndpoint>();
196+
services.AddHandlerWithCapabilities<LinkedEditingRangeEndpoint>();
197+
services.AddHandlerWithCapabilities<FoldingRangeEndpoint>();
203198

204-
services.AddSingleton<IInlayHintService, InlayHintService>();
205-
services.AddHandlerWithCapabilities<InlayHintEndpoint>();
206-
services.AddHandler<InlayHintResolveEndpoint>();
199+
services.AddSingleton<IInlayHintService, InlayHintService>();
200+
services.AddHandlerWithCapabilities<InlayHintEndpoint>();
201+
services.AddHandler<InlayHintResolveEndpoint>();
207202

208-
services.AddHandlerWithCapabilities<DocumentSymbolEndpoint>();
209-
services.AddSingleton<IDocumentSymbolService, DocumentSymbolService>();
203+
services.AddHandlerWithCapabilities<DocumentSymbolEndpoint>();
204+
services.AddSingleton<IDocumentSymbolService, DocumentSymbolService>();
210205

211-
services.AddHandlerWithCapabilities<DocumentColorEndpoint>();
212-
services.AddHandler<ColorPresentationEndpoint>();
206+
services.AddHandlerWithCapabilities<DocumentColorEndpoint>();
207+
services.AddHandler<ColorPresentationEndpoint>();
213208

214-
services.AddHandlerWithCapabilities<ProjectContextsEndpoint>();
209+
services.AddHandlerWithCapabilities<ProjectContextsEndpoint>();
215210

216-
services.AddHandlerWithCapabilities<FindAllReferencesEndpoint>();
211+
services.AddHandlerWithCapabilities<FindAllReferencesEndpoint>();
217212

218-
services.AddHandlerWithCapabilities<ValidateBreakpointRangeEndpoint>();
219-
services.AddHandler<RazorBreakpointSpanEndpoint>();
220-
services.AddHandler<RazorProximityExpressionsEndpoint>();
221-
}
213+
services.AddHandlerWithCapabilities<ValidateBreakpointRangeEndpoint>();
214+
services.AddHandler<RazorBreakpointSpanEndpoint>();
215+
services.AddHandler<RazorProximityExpressionsEndpoint>();
222216

223217
services.AddHandler<WrapWithTagEndpoint>();
224218

src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/LanguageClient/Endpoints/RazorCustomMessageTarget.cs

Lines changed: 6 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,12 @@
99
using System.Threading.Tasks;
1010
using Microsoft.AspNetCore.Razor.ProjectSystem;
1111
using Microsoft.AspNetCore.Razor.Telemetry;
12-
using Microsoft.CodeAnalysis.ExternalAccess.Razor;
1312
using Microsoft.CodeAnalysis.Razor.Logging;
1413
using Microsoft.CodeAnalysis.Razor.ProjectSystem;
1514
using Microsoft.CodeAnalysis.Razor.Protocol;
1615
using Microsoft.CodeAnalysis.Razor.Workspaces;
1716
using Microsoft.VisualStudio.LanguageServer.ContainedLanguage;
1817
using Microsoft.VisualStudio.LanguageServer.Protocol;
19-
using Microsoft.VisualStudio.Razor.LanguageClient.Cohost;
2018
using Microsoft.VisualStudio.Razor.Settings;
2119
using Microsoft.VisualStudio.Razor.Snippets;
2220
using Microsoft.VisualStudio.Text;
@@ -35,8 +33,6 @@ internal partial class RazorCustomMessageTarget
3533
private readonly LanguageServerFeatureOptions _languageServerFeatureOptions;
3634
private readonly ProjectSnapshotManager _projectManager;
3735
private readonly SnippetCompletionItemProvider _snippetCompletionItemProvider;
38-
private readonly IWorkspaceProvider _workspaceProvider;
39-
private readonly IHtmlDocumentSynchronizer _htmlDocumentSynchronizer;
4036
private readonly FormattingOptionsProvider _formattingOptionsProvider;
4137
private readonly IClientSettingsManager _editorSettingsManager;
4238
private readonly LSPDocumentSynchronizer _documentSynchronizer;
@@ -56,25 +52,13 @@ public RazorCustomMessageTarget(
5652
LanguageServerFeatureOptions languageServerFeatureOptions,
5753
ProjectSnapshotManager projectManager,
5854
SnippetCompletionItemProvider snippetCompletionItemProvider,
59-
IWorkspaceProvider workspaceProvider,
60-
IHtmlDocumentSynchronizer htmlDocumentSynchronizer,
6155
ILoggerFactory loggerFactory)
6256
{
63-
if (documentManager is null)
64-
{
65-
throw new ArgumentNullException(nameof(documentManager));
66-
}
67-
6857
if (documentManager is not TrackingLSPDocumentManager trackingDocumentManager)
6958
{
7059
throw new ArgumentException($"The LSP document manager should be of type {typeof(TrackingLSPDocumentManager).FullName}", nameof(documentManager));
7160
}
7261

73-
if (joinableTaskContext is null)
74-
{
75-
throw new ArgumentNullException(nameof(joinableTaskContext));
76-
}
77-
7862
_documentManager = trackingDocumentManager;
7963
_joinableTaskFactory = joinableTaskContext.Factory;
8064

@@ -87,8 +71,6 @@ public RazorCustomMessageTarget(
8771
_languageServerFeatureOptions = languageServerFeatureOptions ?? throw new ArgumentNullException(nameof(languageServerFeatureOptions));
8872
_projectManager = projectManager ?? throw new ArgumentNullException(nameof(projectManager));
8973
_snippetCompletionItemProvider = snippetCompletionItemProvider ?? throw new ArgumentNullException(nameof(snippetCompletionItemProvider));
90-
_workspaceProvider = workspaceProvider;
91-
_htmlDocumentSynchronizer = htmlDocumentSynchronizer;
9274
_logger = loggerFactory.GetOrCreateLogger<RazorCustomMessageTarget>();
9375
}
9476

@@ -133,19 +115,13 @@ public RazorCustomMessageTarget(
133115
private record struct DelegationRequestDetails(string LanguageServerName, Uri ProjectedUri, ITextBuffer TextBuffer);
134116

135117
private async Task<SynchronizedResult<TVirtualDocumentSnapshot>> TrySynchronizeVirtualDocumentAsync<TVirtualDocumentSnapshot>(
136-
int requiredHostDocumentVersion,
137-
TextDocumentIdentifier hostDocument,
138-
CancellationToken cancellationToken,
139-
bool rejectOnNewerParallelRequest = true,
140-
[CallerMemberName] string? caller = null)
141-
where TVirtualDocumentSnapshot : VirtualDocumentSnapshot
118+
int requiredHostDocumentVersion,
119+
TextDocumentIdentifier hostDocument,
120+
CancellationToken cancellationToken,
121+
bool rejectOnNewerParallelRequest = true,
122+
[CallerMemberName] string? caller = null)
123+
where TVirtualDocumentSnapshot : VirtualDocumentSnapshot
142124
{
143-
if (_languageServerFeatureOptions.UseRazorCohostServer &&
144-
typeof(TVirtualDocumentSnapshot) == typeof(HtmlVirtualDocumentSnapshot))
145-
{
146-
return await TempForCohost_TrySynchronizeVirtualDocumentAsync<TVirtualDocumentSnapshot>(hostDocument, cancellationToken);
147-
}
148-
149125
_logger.LogDebug($"Trying to synchronize for {caller} to version {requiredHostDocumentVersion} of {hostDocument.Uri} for {hostDocument.GetProjectContext()?.Id ?? "(no project context)"}");
150126

151127
// For Html documents we don't do anything fancy, just call the standard service
@@ -205,47 +181,6 @@ private async Task<SynchronizedResult<TVirtualDocumentSnapshot>> TrySynchronizeV
205181
return result;
206182
}
207183

208-
private async Task<SynchronizedResult<TVirtualDocumentSnapshot>> TempForCohost_TrySynchronizeVirtualDocumentAsync<TVirtualDocumentSnapshot>(TextDocumentIdentifier hostDocument, CancellationToken cancellationToken)
209-
where TVirtualDocumentSnapshot : VirtualDocumentSnapshot
210-
{
211-
Debug.Assert(typeof(TVirtualDocumentSnapshot) == typeof(HtmlVirtualDocumentSnapshot));
212-
// Cohosting is responsible for Html, so we have to go through its service instead
213-
var workspace = _workspaceProvider.GetWorkspace();
214-
var documentIds = workspace.CurrentSolution.GetDocumentIdsWithFilePath(RazorUri.GetDocumentFilePathFromUri(hostDocument.Uri));
215-
216-
if (documentIds.Length != 1)
217-
{
218-
_logger.LogError($"Couldn't get document id from the workspace for {hostDocument.Uri}");
219-
return new SynchronizedResult<TVirtualDocumentSnapshot>(false, null);
220-
}
221-
222-
var document = workspace.CurrentSolution.GetAdditionalDocument(documentIds[0]);
223-
if (document is null)
224-
{
225-
_logger.LogError($"Couldn't get document from the workspace for {documentIds[0]} which should be {hostDocument.Uri}");
226-
return new SynchronizedResult<TVirtualDocumentSnapshot>(false, null);
227-
}
228-
229-
if (!await _htmlDocumentSynchronizer.TrySynchronizeAsync(document, cancellationToken).ConfigureAwait(false))
230-
{
231-
return new SynchronizedResult<TVirtualDocumentSnapshot>(false, null);
232-
}
233-
234-
if (!_documentManager.TryGetDocument(hostDocument.Uri, out var snapshot))
235-
{
236-
_logger.LogError($"Couldn't find document in LSPDocumentManager for {hostDocument.Uri}");
237-
return new SynchronizedResult<TVirtualDocumentSnapshot>(false, null);
238-
}
239-
240-
if (!snapshot.TryGetVirtualDocument<TVirtualDocumentSnapshot>(out var virtualDocument))
241-
{
242-
_logger.LogError($"Couldn't find virtual document snapshot for {hostDocument.Uri}");
243-
return new SynchronizedResult<TVirtualDocumentSnapshot>(false, null);
244-
}
245-
246-
return new SynchronizedResult<TVirtualDocumentSnapshot>(true, virtualDocument);
247-
}
248-
249184
private SynchronizedResult<TVirtualDocumentSnapshot>? TryReturnPossiblyFutureSnapshot<TVirtualDocumentSnapshot>(
250185
int requiredHostDocumentVersion, TextDocumentIdentifier hostDocument)
251186
where TVirtualDocumentSnapshot : VirtualDocumentSnapshot

0 commit comments

Comments
 (0)