From 9a4675cf2bbad00b733b238a1a76d43e95f4853c Mon Sep 17 00:00:00 2001 From: KungFuDonkey Date: Thu, 16 Oct 2025 19:38:36 +0200 Subject: [PATCH] Added hlsl to file selector --- package.json | 9 ++++++++- src/clangd-context.ts | 15 +++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index cf5263c3..15c16955 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "C++", "clang", "clangd", - "LLVM" + "LLVM", + "HLSL" ], "activationEvents": [ "onLanguage:c", @@ -28,6 +29,7 @@ "onLanguage:cuda-cpp", "onLanguage:objective-c", "onLanguage:objective-cpp", + "onLanguage:hlsl", "onCommand:clangd.activate", "onCommand:clangd.install", "onCommand:clangd.update" @@ -150,6 +152,11 @@ "type": "boolean", "default": true, "description": "Warn about conflicting extensions and suggest disabling them." + }, + "clangd.enableHLSL": { + "type": "boolean", + "default": false, + "description": "Enable experimental HLSL Support." } } }, diff --git a/src/clangd-context.ts b/src/clangd-context.ts index 3742d85c..f056e207 100644 --- a/src/clangd-context.ts +++ b/src/clangd-context.ts @@ -20,8 +20,18 @@ export const clangdDocumentSelector = [ {scheme: 'file', language: 'objective-cpp'}, ]; +function getDocumentSelector() +{ + var documentSelector = clangdDocumentSelector; + if (vscode.workspace.getConfiguration('clangd').get('enableHLSL')) + documentSelector.push({scheme: 'file', language: 'hlsl'}); + return documentSelector; +} + export function isClangdDocument(document: vscode.TextDocument) { - return vscode.languages.match(clangdDocumentSelector, document); + const documentSelector = getDocumentSelector(); + + return vscode.languages.match(documentSelector, document); } class ClangdLanguageClient extends vscodelc.LanguageClient { @@ -61,6 +71,7 @@ export class ClangdContext implements vscode.Disposable { async activate(globalStoragePath: string, outputChannel: vscode.OutputChannel, workspaceState: vscode.Memento) { + const clangdPath = await install.activate(this, globalStoragePath, workspaceState); if (!clangdPath) @@ -81,7 +92,7 @@ export class ClangdContext implements vscode.Disposable { const clientOptions: vscodelc.LanguageClientOptions = { // Register the server for c-family and cuda files. - documentSelector: clangdDocumentSelector, + documentSelector: getDocumentSelector(), initializationOptions: { clangdFileStatus: true, fallbackFlags: config.get('fallbackFlags')