Skip to content

Commit

Permalink
feat: add volar.vueserver.reverseConfigFilePriority setting
Browse files Browse the repository at this point in the history
close #1815
  • Loading branch information
johnsoncodehk committed Nov 28, 2022
1 parent bf661eb commit 8ad23cf
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 1 deletion.
5 changes: 5 additions & 0 deletions extensions/vscode-vue-language-features/package.json
Expand Up @@ -343,6 +343,11 @@
"default": false,
"description": "Ignore project references settings of tsconfig in language server for resolve issue #1916."
},
"volar.vueserver.reverseConfigFilePriority": {
"type": "boolean",
"default": false,
"description": "Reverse priority for tsconfig pickup."
},
"volar.vueserver.additionalExtensions": {
"type": "array",
"items": {
Expand Down
6 changes: 6 additions & 0 deletions extensions/vscode-vue-language-features/src/common.ts
Expand Up @@ -126,6 +126,7 @@ async function doActivate(context: vscode.ExtensionContext, createLc: CreateLang
e.affectsConfiguration('volar.vueserver.maxOldSpaceSize')
|| e.affectsConfiguration('volar.vueserver.diagnosticModel')
|| e.affectsConfiguration('volar.vueserver.noProjectReferences')
|| e.affectsConfiguration('volar.vueserver.reverseConfigFilePriority')
|| e.affectsConfiguration('volar.vueserver.petiteVue.processHtmlFile')
|| e.affectsConfiguration('volar.vueserver.vitePress.processMdFile')
|| e.affectsConfiguration('volar.vueserver.additionalExtensions')
Expand Down Expand Up @@ -204,6 +205,10 @@ export function noProjectReferences() {
return !!vscode.workspace.getConfiguration('volar').get<boolean>('vueserver.noProjectReferences');
}

export function reverseConfigFilePriority() {
return !!vscode.workspace.getConfiguration('volar').get<boolean>('vueserver.reverseConfigFilePriority');
}

export function diagnosticModel() {
return vscode.workspace.getConfiguration('volar').get<'push' | 'pull'>('vueserver.diagnosticModel');
}
Expand Down Expand Up @@ -283,6 +288,7 @@ function getInitializationOptions(
customBlockSchemaUrls: vscode.workspace.getConfiguration('volar').get<Record<string, string>>('vueserver.json.customBlockSchemaUrls')
},
noProjectReferences: noProjectReferences(),
reverseConfigFilePriority: reverseConfigFilePriority(),
additionalExtensions: additionalExtensions()
};
return initializationOptions;
Expand Down
1 change: 1 addition & 0 deletions packages/language-server/src/types.ts
Expand Up @@ -112,6 +112,7 @@ export interface LanguageServerInitializationOptions {
*/
cancellationPipeName?: string;
noProjectReferences?: boolean;
reverseConfigFilePriority?: boolean;
/**
* Enable this option to make language server setup server capabilities based on client capabilities to support multiple servers.
*/
Expand Down
6 changes: 5 additions & 1 deletion packages/language-server/src/utils/workspaceProjects.ts
Expand Up @@ -162,7 +162,11 @@ export async function createWorkspaceProjects(
const project = await projects.pathGet(rootUri, rootTsConfig);
if (project) {

const chains = await getReferencesChains(project.getParsedCommandLine(), rootTsConfig, []);
let chains = await getReferencesChains(project.getParsedCommandLine(), rootTsConfig, []);

if (serverOptions.reverseConfigFilePriority) {
chains = chains.reverse();
}

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

0 comments on commit 8ad23cf

Please sign in to comment.