diff --git a/package.json b/package.json index f7ee5e009a..e08497a808 100644 --- a/package.json +++ b/package.json @@ -182,6 +182,15 @@ "default": [], "description": "Per-workspace list of module directories for the language server to exclude" }, + "terraform-ls.ignoreDirectoryNames": { + "scope": "resource", + "type": "array", + "items": { + "type": "string" + }, + "default": [], + "description": "Per-workspace list of directory names for the language server to ignore when indexing files" + }, "terraform-ls.experimentalFeatures": { "scope": "resource", "type": "object", diff --git a/src/clientHandler.ts b/src/clientHandler.ts index f789f786af..ea56a81883 100644 --- a/src/clientHandler.ts +++ b/src/clientHandler.ts @@ -112,6 +112,7 @@ export class ClientHandler { let terraformLogFilePath: string; let excludeModulePaths: string[]; let enableReferenceCountCodeLens: boolean; + let ignoreDirectoryNames: string[]; let documentSelector: DocumentSelector; let outputChannel: vscode.OutputChannel; if (location) { @@ -129,6 +130,7 @@ export class ClientHandler { rootModulePaths = config('terraform-ls', wsFolder).get('rootModules'); excludeModulePaths = config('terraform-ls', wsFolder).get('excludeRootModules'); enableReferenceCountCodeLens = config('terraform', wsFolder).get('enableReferenceCountCodeLens'); + ignoreDirectoryNames = config('terraform-ls', wsFolder).get('ignoreDirectoryNames'); outputChannel = vscode.window.createOutputChannel(channelName); outputChannel.appendLine(`Launching language server: ${cmd} ${serverArgs.join(' ')} for folder: ${location}`); } else { @@ -142,6 +144,7 @@ export class ClientHandler { rootModulePaths = config('terraform-ls').get('rootModules'); excludeModulePaths = config('terraform-ls').get('excludeRootModules'); enableReferenceCountCodeLens = config('terraform').get('enableReferenceCountCodeLens'); + ignoreDirectoryNames = config('terraform-ls').get('ignoreDirectoryNames'); outputChannel = vscode.window.createOutputChannel(channelName); outputChannel.appendLine(`Launching language server: ${cmd} ${serverArgs.join(' ')}`); } @@ -169,6 +172,9 @@ export class ClientHandler { if (excludeModulePaths.length > 0) { initializationOptions = Object.assign(initializationOptions, { excludeModulePaths }); } + if (ignoreDirectoryNames.length > 0) { + initializationOptions = Object.assign(initializationOptions, { ignoreDirectoryNames }); + } const executable: Executable = { command: cmd,