Skip to content

Commit 8ad23cf

Browse files
committed
feat: add volar.vueserver.reverseConfigFilePriority setting
close #1815
1 parent bf661eb commit 8ad23cf

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed

extensions/vscode-vue-language-features/package.json

+5
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,11 @@
343343
"default": false,
344344
"description": "Ignore project references settings of tsconfig in language server for resolve issue #1916."
345345
},
346+
"volar.vueserver.reverseConfigFilePriority": {
347+
"type": "boolean",
348+
"default": false,
349+
"description": "Reverse priority for tsconfig pickup."
350+
},
346351
"volar.vueserver.additionalExtensions": {
347352
"type": "array",
348353
"items": {

extensions/vscode-vue-language-features/src/common.ts

+6
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ async function doActivate(context: vscode.ExtensionContext, createLc: CreateLang
126126
e.affectsConfiguration('volar.vueserver.maxOldSpaceSize')
127127
|| e.affectsConfiguration('volar.vueserver.diagnosticModel')
128128
|| e.affectsConfiguration('volar.vueserver.noProjectReferences')
129+
|| e.affectsConfiguration('volar.vueserver.reverseConfigFilePriority')
129130
|| e.affectsConfiguration('volar.vueserver.petiteVue.processHtmlFile')
130131
|| e.affectsConfiguration('volar.vueserver.vitePress.processMdFile')
131132
|| e.affectsConfiguration('volar.vueserver.additionalExtensions')
@@ -204,6 +205,10 @@ export function noProjectReferences() {
204205
return !!vscode.workspace.getConfiguration('volar').get<boolean>('vueserver.noProjectReferences');
205206
}
206207

208+
export function reverseConfigFilePriority() {
209+
return !!vscode.workspace.getConfiguration('volar').get<boolean>('vueserver.reverseConfigFilePriority');
210+
}
211+
207212
export function diagnosticModel() {
208213
return vscode.workspace.getConfiguration('volar').get<'push' | 'pull'>('vueserver.diagnosticModel');
209214
}
@@ -283,6 +288,7 @@ function getInitializationOptions(
283288
customBlockSchemaUrls: vscode.workspace.getConfiguration('volar').get<Record<string, string>>('vueserver.json.customBlockSchemaUrls')
284289
},
285290
noProjectReferences: noProjectReferences(),
291+
reverseConfigFilePriority: reverseConfigFilePriority(),
286292
additionalExtensions: additionalExtensions()
287293
};
288294
return initializationOptions;

packages/language-server/src/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ export interface LanguageServerInitializationOptions {
112112
*/
113113
cancellationPipeName?: string;
114114
noProjectReferences?: boolean;
115+
reverseConfigFilePriority?: boolean;
115116
/**
116117
* Enable this option to make language server setup server capabilities based on client capabilities to support multiple servers.
117118
*/

packages/language-server/src/utils/workspaceProjects.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,11 @@ export async function createWorkspaceProjects(
162162
const project = await projects.pathGet(rootUri, rootTsConfig);
163163
if (project) {
164164

165-
const chains = await getReferencesChains(project.getParsedCommandLine(), rootTsConfig, []);
165+
let chains = await getReferencesChains(project.getParsedCommandLine(), rootTsConfig, []);
166+
167+
if (serverOptions.reverseConfigFilePriority) {
168+
chains = chains.reverse();
169+
}
166170

167171
for (const chain of chains) {
168172
for (let i = chain.length - 1; i >= 0; i--) {

0 commit comments

Comments
 (0)