Skip to content

Commit db2e8d4

Browse files
committed
Load XAML components as server extension
1 parent 075c94a commit db2e8d4

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ node_modules
44
out
55
.roslyn/
66
.roslynDevKit/
7+
.xamlDesignTools/
78
.omnisharp/
89
.omnisharp-*/
910
.vs/

src/lsptoolshost/roslynLanguageServer.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -506,10 +506,6 @@ export class RoslynLanguageServer {
506506
args.push('--logLevel', logLevel);
507507
}
508508

509-
for (const extensionPath of additionalExtensionPaths) {
510-
args.push('--extension', extensionPath);
511-
}
512-
513509
args.push(
514510
'--razorSourceGenerator',
515511
path.join(context.extension.extensionPath, '.razor', 'Microsoft.CodeAnalysis.Razor.Compiler.dll')
@@ -540,7 +536,7 @@ export class RoslynLanguageServer {
540536
// Set command enablement as soon as we know devkit is available.
541537
vscode.commands.executeCommand('setContext', 'dotnet.server.activationContext', 'RoslynDevKit');
542538

543-
const csharpDevKitArgs = this.getCSharpDevKitExportArgs();
539+
const csharpDevKitArgs = this.getCSharpDevKitExportArgs(additionalExtensionPaths);
544540
args = args.concat(csharpDevKitArgs);
545541

546542
await this.setupDevKitEnvironment(dotnetInfo.env, csharpDevkitExtension);
@@ -553,6 +549,10 @@ export class RoslynLanguageServer {
553549
_wasActivatedWithCSharpDevkit = false;
554550
}
555551

552+
for (const extensionPath of additionalExtensionPaths) {
553+
args.push('--extension', extensionPath);
554+
}
555+
556556
if (logLevel && [Trace.Messages, Trace.Verbose].includes(this.GetTraceLevel(logLevel))) {
557557
_channel.appendLine(`Starting server at ${serverPath}`);
558558
}
@@ -806,7 +806,7 @@ export class RoslynLanguageServer {
806806
);
807807
}
808808

809-
private static getCSharpDevKitExportArgs(): string[] {
809+
private static getCSharpDevKitExportArgs(additionalExtensionPaths: string[]): string[] {
810810
const args: string[] = [];
811811

812812
const clientRoot = __dirname;
@@ -819,6 +819,14 @@ export class RoslynLanguageServer {
819819
args.push('--devKitDependencyPath', devKitDepsPath);
820820

821821
args.push('--sessionId', getSessionId());
822+
823+
// Also include the Xaml Dev Kit extensions
824+
const xamlBasePath = path.join(clientRoot, '..', '.xamlDesignTools', 'lib', 'netstandard2.0');
825+
additionalExtensionPaths.push(path.join(xamlBasePath, 'Microsoft.VisualStudio.DesignTools.CodeAnalysis.dll'));
826+
additionalExtensionPaths.push(
827+
path.join(xamlBasePath, 'Microsoft.VisualStudio.DesignTools.CodeAnalysis.Diagnostics.dll')
828+
);
829+
822830
return args;
823831
}
824832

0 commit comments

Comments
 (0)