UNPKG

flink-sql-language-server

Version:

A LSP-based language server for Apache Flink SQL

55 lines (54 loc) 1.87 kB
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 {};