Skip to content

Commit b34da5f

Browse files
committed
Move endpoints to its own file, as we're going to need more
1 parent e811c15 commit b34da5f

File tree

4 files changed

+34
-35
lines changed

4 files changed

+34
-35
lines changed

src/lsptoolshost/activate.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import { RoslynLanguageServer } from './server/roslynLanguageServer';
3030
import { registerCopilotRelatedFilesProvider } from './copilot/relatedFilesProvider';
3131
import { registerCopilotContextProviders } from './copilot/contextProviders';
3232
import { RazorLogger } from '../razor/src/razorLogger';
33+
import { registerRazorEndpoints } from './razor/razorEndpoints';
3334

3435
let _channel: vscode.LogOutputChannel;
3536
let _traceChannel: vscode.OutputChannel;
@@ -71,8 +72,7 @@ export async function activateRoslynLanguageServer(
7172
additionalExtensionPaths,
7273
languageServerEvents,
7374
_channel,
74-
_traceChannel,
75-
razorLogger
75+
_traceChannel
7676
);
7777

7878
registerLanguageStatusItems(context, languageServer, languageServerEvents);
@@ -86,6 +86,7 @@ export async function activateRoslynLanguageServer(
8686
registerCodeActionFixAllCommands(context, languageServer, _channel);
8787

8888
registerRazorCommands(context, languageServer);
89+
registerRazorEndpoints(context, languageServer, razorLogger);
8990

9091
registerUnitTestingCommands(context, languageServer);
9192

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { RoslynLanguageServer } from '../server/roslynLanguageServer';
7+
import * as vscode from 'vscode';
8+
import { LogMessageParams, NotificationType } from 'vscode-languageclient';
9+
import { RazorLogger } from '../../razor/src/razorLogger';
10+
11+
export function registerRazorEndpoints(
12+
context: vscode.ExtensionContext,
13+
languageServer: RoslynLanguageServer,
14+
razorLogger: RazorLogger
15+
) {
16+
const logNotificationType = new NotificationType<LogMessageParams>('razor/log');
17+
languageServer.registerOnNotificationWithParams(logNotificationType, (params) =>
18+
razorLogger.log(params.message, params.type)
19+
);
20+
}

src/lsptoolshost/server/roslynLanguageServer.ts

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import * as uuid from 'uuid';
1010
import * as net from 'net';
1111
import {
1212
LanguageClientOptions,
13-
LogMessageParams,
1413
MessageTransports,
14+
NotificationHandler,
1515
NotificationType,
1616
ProtocolRequestType,
1717
ServerOptions,
@@ -78,7 +78,6 @@ import {
7878
copilotLanguageServerExtensionAssemblyName,
7979
copilotLanguageServerExtensionComponentName,
8080
} from '../copilot/contextProviders';
81-
import { RazorLogger } from '../../razor/src/razorLogger';
8281

8382
// Flag indicating if C# Devkit was installed the last time we activated.
8483
// Used to determine if we need to restart the server on extension changes.
@@ -88,7 +87,6 @@ export class RoslynLanguageServer {
8887
// These are notifications we will get from the LSP server and will forward to the Razor extension.
8988
private static readonly provideRazorDynamicFileInfoMethodName: string = 'razor/provideDynamicFileInfo';
9089
private static readonly removeRazorDynamicFileInfoMethodName: string = 'razor/removeDynamicFileInfo';
91-
private static readonly razorLogMessageMethodName: string = 'razor/log';
9290

9391
/**
9492
* The encoding to use when writing to and from the stream.
@@ -128,8 +126,7 @@ export class RoslynLanguageServer {
128126
private _context: vscode.ExtensionContext,
129127
private _telemetryReporter: TelemetryReporter,
130128
private _languageServerEvents: RoslynLanguageServerEvents,
131-
private _channel: vscode.LogOutputChannel,
132-
logger: RazorLogger
129+
private _channel: vscode.LogOutputChannel
133130
) {
134131
this.registerSetTrace();
135132
this.registerSendOpenSolution();
@@ -148,7 +145,6 @@ export class RoslynLanguageServer {
148145

149146
// Register Razor dynamic file info handling
150147
this.registerDynamicFileInfo();
151-
this.registerRazorLogger(logger);
152148

153149
this.registerDebuggerAttach();
154150

@@ -264,8 +260,7 @@ export class RoslynLanguageServer {
264260
additionalExtensionPaths: string[],
265261
languageServerEvents: RoslynLanguageServerEvents,
266262
channel: vscode.LogOutputChannel,
267-
traceChannel: vscode.OutputChannel,
268-
razorlogger: RazorLogger
263+
traceChannel: vscode.OutputChannel
269264
): Promise<RoslynLanguageServer> {
270265
const devKit = getCSharpDevKit();
271266
if (devKit) {
@@ -328,8 +323,7 @@ export class RoslynLanguageServer {
328323
context,
329324
telemetryReporter,
330325
languageServerEvents,
331-
channel,
332-
razorlogger
326+
channel
333327
);
334328

335329
client.registerFeature(server._onAutoInsertFeature);
@@ -450,6 +444,13 @@ export class RoslynLanguageServer {
450444
this._languageClient.addDisposable(this._languageClient.onNotification(method, handler));
451445
}
452446

447+
public registerOnNotificationWithParams<Params>(
448+
type: NotificationType<Params>,
449+
handler: NotificationHandler<Params>
450+
) {
451+
this._languageClient.addDisposable(this._languageClient.onNotification(type, handler));
452+
}
453+
453454
public async registerSolutionSnapshot(token: vscode.CancellationToken): Promise<SolutionSnapshotId> {
454455
const response = await this.sendRequest0(RoslynProtocol.RegisterSolutionSnapshotRequest.type, token);
455456
if (response) {
@@ -845,19 +846,6 @@ export class RoslynLanguageServer {
845846
);
846847
}
847848

848-
private RazorLoggerNotification: NotificationType<LogMessageParams> = new NotificationType(
849-
RoslynLanguageServer.razorLogMessageMethodName
850-
);
851-
852-
private registerRazorLogger(logger: RazorLogger) {
853-
this._languageClient.onNotification<LogMessageParams>(
854-
this.RazorLoggerNotification,
855-
(params: LogMessageParams) => {
856-
logger.log(params.message, params.type);
857-
}
858-
);
859-
}
860-
861849
// eslint-disable-next-line @typescript-eslint/promise-function-async
862850
private WaitForAttachCompleteAsync(attachRequestId: string): Promise<boolean> {
863851
return new Promise<boolean>((resolve) => {

src/razor/src/razorLoggerNotification.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)