flink-sql-language-server
Version:
A LSP-based language server for Apache Flink SQL
55 lines (54 loc) • 1.87 kB
TypeScript
import { CatalogContext, DatabaseContext, DereferenceContext, TableContext, ViewContext } from '../lib/FlinkSQLParser';
import { FlinkSQLParserListener } from '../lib/FlinkSQLParserListener';
export declare enum SchemaContextKindEnum {
VIEW = "view",
CATALOG = "catalog",
DATABASE = "database",
TABLE = "table",
COLUMN = "column"
}
interface SchemaBaseContext {
kind: SchemaContextKindEnum;
text: string;
startOffset: number;
endOffset: number;
}
export interface SchemaCatalogContext extends SchemaBaseContext {
kind: SchemaContextKindEnum.CATALOG;
catalogName: string;
}
export interface SchemaDatabaseContext extends SchemaBaseContext {
kind: SchemaContextKindEnum.DATABASE;
catalogName?: string;
databaseName: string;
}
export interface SchemaTableContext extends SchemaBaseContext {
kind: SchemaContextKindEnum.TABLE;
catalogName?: string;
databaseName?: string;
tableName: string;
}
export interface SchemaColumnContext extends SchemaBaseContext {
kind: SchemaContextKindEnum.COLUMN;
catalogName?: string;
databaseName?: string;
tableName?: string;
columnName: string;
}
export interface SchemaViewContext extends SchemaBaseContext {
kind: SchemaContextKindEnum.VIEW;
catalogName?: string;
databaseName?: string;
viewName: string;
}
export declare type SchemaContext = SchemaCatalogContext | SchemaDatabaseContext | SchemaTableContext | SchemaViewContext | SchemaColumnContext;
export declare class SchemaListener implements FlinkSQLParserListener {
private _schemaContexts;
getSchemaContexts(): SchemaContext[];
enterView(ctx: ViewContext): void;
enterCatalog(ctx: CatalogContext): void;
enterDatabase(ctx: DatabaseContext): void;
enterTable(ctx: TableContext): void;
enterDereference(ctx: DereferenceContext): void;
}
export {};