feat(completion): improve SQL function suggestions
This commit is contained in:
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,
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user