feat(completion): improve SQL function suggestions

This commit is contained in:
zipg authored and GitHub committed 2026-07-20 01:55:52 +08:00
1 parent 21652bc797
commit f5cdbb8662
12 files changed
+412 -40

No files matched your search

@@ -7,6 +7,11 @@ export interface SqlCompletionTableLookupTarget {
qualifierDatabase?: string;
}
export interface SqlCompletionRoutineLookupTarget {
schema?: string;
mask: string;
}
function findExactName(names: readonly string[] | undefined, value: string): string | undefined {
return names?.find((name) => name.toLowerCase() === value.toLowerCase());
}
@@ -40,3 +45,15 @@ export function resolveSqlCompletionTableLookupTarget(options: {
filter: qualifier && completionContext.suggestTables ? completionContext.prefix : qualifier || completionContext.prefix,
};
}
export function resolveSqlCompletionRoutineLookupTarget(options: { currentSchema?: string; completionContext: Pick<SqlCompletionContext, "qualifier" | "qualifierParts" | "prefix"> }): SqlCompletionRoutineLookupTarget {
const qualifierParts = options.completionContext.qualifierParts?.filter(Boolean);
const schema = qualifierParts?.[qualifierParts.length - 1] ?? options.completionContext.qualifier?.trim() ?? options.currentSchema;
// A qualified routine uses the qualifier as metadata scope; only the final
// identifier fragment is the function/procedure name mask.
return {
schema: schema || undefined,
mask: options.completionContext.prefix,
};
}