Skip to content

Commit 35479f0

Browse files
committed
refactor(framework): move __VLS_ filters to vue-language-tools/*
1 parent fb84a00 commit 35479f0

File tree

5 files changed

+27
-17
lines changed

5 files changed

+27
-17
lines changed

packages/language-service/src/languageFeatures/codeActions.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,6 @@ export function register(context: LanguageServiceRuntimeContext) {
115115
);
116116

117117
if (codeActions) {
118-
119-
codeActions = codeActions.filter(codeAction => codeAction.title.indexOf('__VLS_') === -1);
120-
121118
return dedupe.withCodeAction(codeActions);
122119
}
123120
};

packages/language-service/src/languageFeatures/complete.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,10 +255,7 @@ export function register(context: LanguageServiceRuntimeContext) {
255255
return {
256256
isIncomplete: lists.some(list => list.isIncomplete),
257257
itemDefaults: lists.find(list => list.itemDefaults)?.itemDefaults,
258-
items: lists.map(list => list.items).flat().filter((result: vscode.CompletionItem) =>
259-
result.label.indexOf('__VLS_') === -1
260-
&& (!result.labelDetails?.description || result.labelDetails.description.indexOf('__VLS_') === -1)
261-
),
258+
items: lists.map(list => list.items).flat(),
262259
};
263260
}
264261
};

packages/typescript/src/index.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export function createLanguageService(host: embedded.LanguageServiceHost, mods:
1919
organizeImports,
2020

2121
// only support for .ts for now, not support for .vue
22-
getCompletionsAtPosition,
2322
getDefinitionAtPosition,
2423
getDefinitionAndBoundSpan,
2524
getTypeDefinitionAtPosition,
@@ -75,13 +74,6 @@ export function createLanguageService(host: embedded.LanguageServiceHost, mods:
7574
}
7675
return edits.map(transformFileTextChanges).filter(notEmpty);
7776
}
78-
function getCompletionsAtPosition(fileName: string, position: number, options: ts.GetCompletionsAtPositionOptions | undefined): ReturnType<ts.LanguageService['getCompletionsAtPosition']> {
79-
const finalResult = ls.getCompletionsAtPosition(fileName, position, options);
80-
if (finalResult) {
81-
finalResult.entries = finalResult.entries.filter(entry => entry.name.indexOf('__VLS_') === -1);
82-
}
83-
return finalResult;
84-
}
8577
function getReferencesAtPosition(fileName: string, position: number): ReturnType<ts.LanguageService['getReferencesAtPosition']> {
8678
return findLocations(fileName, position, 'references') as ts.ReferenceEntry[];
8779
}

vue-language-tools/vue-language-service/src/languageService.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,16 @@ export function getLanguageServicePlugins(vueCompilerOptions: VueCompilerOptions
5353
complete: {
5454
...base.complete,
5555
async on(document, position, context) {
56-
const result = await base.complete!.on!(document, position, context);
56+
const result = await base.complete?.on?.(document, position, context);
5757
if (result) {
58+
59+
// filter __VLS_
60+
result.items = result.items.filter(item =>
61+
item.label.indexOf('__VLS_') === -1
62+
&& (!item.labelDetails?.description || item.labelDetails.description.indexOf('__VLS_') === -1)
63+
);
64+
65+
// handle component auto-import patch
5866
for (const [_, map] of _context.documents.getMapsByVirtualFileUri(document.uri)) {
5967
const virtualFile = _context.documents.getRootFileBySourceFileUri(map.sourceFileDocument.uri);
6068
if (virtualFile instanceof vue.VueFile) {
@@ -148,6 +156,13 @@ export function getLanguageServicePlugins(vueCompilerOptions: VueCompilerOptions
148156
return item;
149157
},
150158
},
159+
codeAction: {
160+
...base.codeAction,
161+
async on(document, range, context) {
162+
const result = await base.codeAction?.on?.(document, range, context);
163+
return result?.filter(codeAction => codeAction.title.indexOf('__VLS_') === -1);
164+
},
165+
}
151166
};
152167
};
153168

vue-language-tools/vue-typescript/src/index.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,18 @@ import * as base from '@volar/typescript';
22
import * as vue from '@volar/vue-language-core';
33

44
export function createLanguageService(host: vue.VueLanguageServiceHost) {
5-
return base.createLanguageService(host, vue.createLanguageModules(
5+
const languageService = base.createLanguageService(host, vue.createLanguageModules(
66
host.getTypeScriptModule()!,
77
host.getCompilationSettings(),
88
vue.resolveVueCompilerOptions(host.getVueCompilationSettings()),
99
));
10+
const getCompletionsAtPosition = languageService.getCompletionsAtPosition;
11+
languageService.getCompletionsAtPosition = (fileName, position, options) => {
12+
const result = getCompletionsAtPosition(fileName, position, options);
13+
if (result) {
14+
result.entries = result.entries.filter(entry => entry.name.indexOf('__VLS_') === -1);
15+
}
16+
return result;
17+
};
18+
return languageService;
1019
}

0 commit comments

Comments
 (0)