feat: udfs autocomplete
This commit is contained in:
@@ -9,7 +9,7 @@ export function setupLanguage(
|
||||
operators: string[] = []
|
||||
) {
|
||||
monaco.languages.register({ id });
|
||||
monaco.languages.setMonarchTokensProvider('clickhouse', {
|
||||
monaco.languages.setMonarchTokensProvider(id, {
|
||||
ignoreCase: true,
|
||||
keywords: keywords.map((k) => k.split(' ')[0]),
|
||||
functions: functions,
|
||||
@@ -90,5 +90,5 @@ export function setupLanguage(
|
||||
}
|
||||
};
|
||||
|
||||
monaco.languages.registerCompletionItemProvider('clickhouse', sql);
|
||||
monaco.languages.registerCompletionItemProvider(id, sql);
|
||||
}
|
||||
|
||||
@@ -62,21 +62,22 @@
|
||||
let history = $state.raw<HistoryEntry[]>([]);
|
||||
let queries = $state.raw<Query[]>([]);
|
||||
|
||||
$effect(
|
||||
() =>
|
||||
void engine.getSchema().then((t) => {
|
||||
tables = t;
|
||||
async function setupEditor() {
|
||||
const [t, udfs] = await Promise.all([engine.getSchema(), engine.getUDFs()]);
|
||||
tables = t;
|
||||
|
||||
setupLanguage(
|
||||
'clickhouse',
|
||||
keywords,
|
||||
[...functions, ...udfs],
|
||||
tables.map((t) => t.name),
|
||||
types,
|
||||
operators
|
||||
);
|
||||
}
|
||||
|
||||
setupEditor();
|
||||
|
||||
setupLanguage(
|
||||
'clickhouse',
|
||||
keywords,
|
||||
functions,
|
||||
tables.map((t) => t.name),
|
||||
types,
|
||||
operators
|
||||
);
|
||||
})
|
||||
);
|
||||
$effect(() => void historyRepository.getAll().then((entries) => (history = entries)));
|
||||
$effect(() => void queryRepository.getAll().then((q) => (queries = q)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user