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 [];

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…