INNER CODE UNIT · TypeScript
registerLanguageForSql
q2316367743/es-client · src/components/SqlEditor/index.ts:14
export function registerLanguageForSql() {
monaco.languages.register({id: 'es-sql'});
// 语法高亮
monaco.languages.setMonarchTokensProvider('es-sql', esSqlLanguage);
// 语言括号配置
monaco.languages.setLanguageConfiguration('es-sql', configuration);
// 语法提示
monaco.languages.registerCompletionItemProvider('es-sql', createESQLCompletionProvider({
listTableNames: async () => {
const tableName = new Set<string>();
useIndexStore().list.forEach((index) => {
[...index.alias, index.name].forEach(i => tableName.add(i));
})
return Array.from(tableName);
},
getFields: async (tableName: string) => {
const index = useIndexStore().list.find(i => i.name === tableName || i.alias.includes(tableName));
if (!index) return [];