Skip to content

Commit 0f30bbd

Browse files
Conditionally load OmniSharp server plugin
1 parent c0c1ac6 commit 0f30bbd

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

src/main.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,9 @@ export async function activate(context: vscode.ExtensionContext): Promise<CSharp
135135
coreClrDebugPromise = coreclrdebug.activate(extension, context, platformInfo, eventStream);
136136
}
137137

138-
await activateRazorExtension(context, eventStream);
138+
if (!optionProvider.GetLatestOptions().razorDisabled) {
139+
await activateRazorExtension(context, eventStream);
140+
}
139141

140142
return {
141143
initializationFinished: async () => {

src/omnisharp/options.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ export class Options {
2323
public minFindSymbolsFilterLength: number,
2424
public maxFindSymbolsItems: number,
2525
public defaultLaunchSolution?: string,
26-
public monoPath?: string) { }
26+
public monoPath?: string,
27+
public razorDisabled?: boolean) { }
2728

2829

2930
public static Read(vscode: vscode): Options {
@@ -36,6 +37,7 @@ export class Options {
3637

3738
const omnisharpConfig = vscode.workspace.getConfiguration('omnisharp');
3839
const csharpConfig = vscode.workspace.getConfiguration('csharp');
40+
const razorConfig = vscode.workspace.getConfiguration('razor');
3941

4042
const path = Options.readPathOption(csharpConfig, omnisharpConfig);
4143
const useGlobalMono = Options.readUseGlobalMonoOption(omnisharpConfig, csharpConfig);
@@ -68,6 +70,8 @@ export class Options {
6870
const minFindSymbolsFilterLength = omnisharpConfig.get<number>('minFindSymbolsFilterLength', 0);
6971
const maxFindSymbolsItems = omnisharpConfig.get<number>('maxFindSymbolsItems', 1000); // The limit is applied only when this setting is set to a number greater than zero
7072

73+
const razorDisabled = razorConfig.get<boolean>('disabled', false);
74+
7175
return new Options(
7276
path,
7377
useGlobalMono,
@@ -86,6 +90,7 @@ export class Options {
8690
maxFindSymbolsItems,
8791
defaultLaunchSolution,
8892
monoPath,
93+
razorDisabled
8994
);
9095
}
9196

src/omnisharp/server.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,15 @@ export class OmniSharpServer {
304304
'--loglevel', options.loggingLevel
305305
];
306306

307+
if (!options.razorDisabled) {
308+
const razorPluginPath = path.join(
309+
utils.getExtensionPath(),
310+
'.razor',
311+
'OmniSharpPlugin',
312+
'Microsoft.AspNetCore.Razor.OmniSharpPlugin.dll');
313+
args.push('--plugin', razorPluginPath);
314+
}
315+
307316
if (options.waitForDebugger === true) {
308317
args.push('--debug');
309318
}

src/razor/razor.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,7 @@ import * as Razor from 'microsoft.aspnetcore.razor.vscode';
1010
import { EventStream } from '../EventStream';
1111

1212
export async function activateRazorExtension(context: vscode.ExtensionContext, eventStream: EventStream) {
13-
// Bail out as early as possible if Razor language features are disabled
1413
const razorConfig = vscode.workspace.getConfiguration('razor');
15-
const razorDisabled = razorConfig.get<boolean>('disabled', false);
16-
if (razorDisabled) {
17-
return;
18-
}
19-
2014
const configuredLanguageServerDir = razorConfig.get<string>('languageServer.directory', null);
2115
const languageServerDir = configuredLanguageServerDir || path.join(context.extensionPath, '.razor');
2216

0 commit comments

Comments
 (0)