Skip to content

Commit 29234d2

Browse files
committed
ignoreNamedExport option
1 parent fdf15ef commit 29234d2

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ function init() {
2525
return original;
2626
}
2727

28-
original.entries = [...original.entries, ...namespaceImportPlugin.getCompletionEntries(info)];
28+
const originalEntries = namespaceImportPlugin.filterNamedImportEntries(original.entries, info);
29+
const namespaceImportEntries = namespaceImportPlugin.getCompletionEntries(info);
30+
original.entries = [...originalEntries, ...namespaceImportEntries];
2931
return original;
3032
};
3133

src/lib/import.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import ts, { CodeFixAction, InferencePriority, ScriptElementKind } from 'typescript/lib/tsserverlibrary';
1+
import ts, { CodeFixAction, ScriptElementKind } from 'typescript/lib/tsserverlibrary';
22
import * as path from 'path';
33

4-
type PluginOptions = {
4+
export type PluginOptions = {
55
paths: readonly string[];
6+
ignoreNamedExport?: boolean;
67
};
78

89
export function getCompletionEntries(info: ts.server.PluginCreateInfo): ts.CompletionEntry[] {
@@ -25,6 +26,22 @@ export function getCompletionEntries(info: ts.server.PluginCreateInfo): ts.Compl
2526
});
2627
}
2728

29+
export function filterNamedImportEntries(
30+
entries: ts.CompletionEntry[],
31+
info: ts.server.PluginCreateInfo,
32+
): ts.CompletionEntry[] {
33+
const options: PluginOptions = info.config.options;
34+
if (!options.ignoreNamedExport) {
35+
return entries;
36+
}
37+
38+
const currentDir = info.project.getCurrentDirectory();
39+
const dirPaths = options.paths.map((dirPath) => path.resolve(currentDir, dirPath));
40+
return entries.filter((entry) => {
41+
return !dirPaths.some((dirPath) => entry.data?.exportName && entry.data.fileName?.startsWith(dirPath));
42+
});
43+
}
44+
2845
export function getCompletionEntryDetails(
2946
name: string,
3047
selfPath: string,

0 commit comments

Comments
 (0)