flink-sql-language-server
Version:
A LSP-based language server for Apache Flink SQL
110 lines (109 loc) • 6.94 kB
TypeScript
import { CommonTokenStream, Token } from 'antlr4ts';
import { AbstractParseTreeVisitor, ErrorNode } from 'antlr4ts/tree';
import { TerminalNode } from 'antlr4ts/tree/TerminalNode';
import { FormattingOptions } from 'vscode-languageserver';
import { AggregateFilterContext, AggregateWithinContext, AsDatabaseContext, AsTableContext, CaseEndContext, CharsetIntroducerContext, CharsetLiteralContext, ColumnsContext, CommentContext, CreateViewContext, DefineItemsContext, DefineMatchContext, DefineValuesContext, ElseExprContext, ExcludingTableContext, ExplainContext, ExpressionsContext, ForPivotListContext, FromTableContext, GroupByContext, GroupingSetsContext, GroupItemContext, GroupItemsContext, HavingContext, HintsContext, IncludingTableContext, InPivotExprsContext, InsertContext, JsonFunctionContext, LikeConfigContext, LikeOptionsContext, LikeTableContext, LogicalBindContext, MapQueryContext, MapTableContext, MatchRecognizeContext, MeasureColumnsContext, MeasuresContext, OrderByContext, OrderItemsContext, OverWindowContext, ParenthesisExpressionsContext, ParenthesisGroupItemsContext, ParenthesisQueryContext, PartitionByContext, PartitionContext, PartitionedByContext, PatternMatchContext, PivotContext, ProgramContext, ProjectItemsContext, QueryFetchContext, QueryLimitContext, QueryOffsetContext, QueryOrderByContext, RenameToContext, SelectContext, SetValuesContext, StatementEndContext, SubsetItemsContext, SubsetMatchContext, TableExpressionContext, TableLateralContext, TableQueryContext, TableReferenceContext, TemporalFunctionContext, ThenExprContext, ValueAssignmentsContext, ValuesRowsContext, ValuesRowsParenthesisContext, WhenExprContext, WhereContext, WindowSelectContext, WindowSpecContext, WithValuesContext } from '../lib/FlinkSQLParser';
import { FlinkSQLParserVisitor } from '../lib/FlinkSQLParserVisitor';
export declare class AssembleTokensVisitor extends AbstractParseTreeVisitor<string> implements FlinkSQLParserVisitor<string> {
private tokens;
private config;
private indentNumber;
private indentString;
private readonly newline;
private readonly maxLineLength;
visitedCommentTokens: WeakSet<Token>;
constructor(tokens: CommonTokenStream, config: FormattingOptions);
defaultResult(): string;
aggregateResult(aggregate: string, nextResult: string): string;
private get indent();
private get newlineIndent();
private addIndent;
private minusIndent;
private handleInlineClause;
private handleInlineParenthesis;
private handleInvocation;
private addNewlineVisit;
private addNewlineIndent;
private isBeforeComment;
private isAfterComment;
private getNewlineIfNotAfterComment;
private handleComma;
private containComment;
visitTerminal(node: TerminalNode): string;
visitErrorNode(node: ErrorNode): string;
visitProgram(ctx: ProgramContext): string;
visitStatementEnd(ctx: StatementEndContext): string;
visitTemporalFunction(ctx: TemporalFunctionContext): string;
visitJsonFunction(ctx: JsonFunctionContext): string;
visitWhenExpr(ctx: WhenExprContext): string;
visitThenExpr(ctx: ThenExprContext): string;
visitElseExpr(ctx: ElseExprContext): string;
visitCaseEnd(ctx: CaseEndContext): string;
visitColumns(ctx: ColumnsContext): string;
visitValueAssignments(ctx: ValueAssignmentsContext): string;
visitParenthesisQuery(ctx: ParenthesisQueryContext): string;
visitLogicalBind(ctx: LogicalBindContext): string;
visitParenthesisExpressions(ctx: ParenthesisExpressionsContext): string;
visitExpressions(ctx: ExpressionsContext): string;
visitAggregateFilter(ctx: AggregateFilterContext): string;
visitAggregateWithin(ctx: AggregateWithinContext): string;
visitOverWindow(ctx: OverWindowContext): string;
visitExplain(ctx: ExplainContext): string;
visitInsert(ctx: InsertContext): string;
visitPartition(ctx: PartitionContext): string;
visitCreateView(ctx: CreateViewContext): string;
visitDefineValues(ctx: DefineValuesContext): string;
visitLikeConfig(ctx: LikeConfigContext): string;
visitLikeOptions(ctx: LikeOptionsContext): string;
visitComment(ctx: CommentContext): string;
visitPartitionedBy(ctx: PartitionedByContext): string;
visitWithValues(ctx: WithValuesContext): string;
visitLikeTable(ctx: LikeTableContext): string;
visitAsTable(ctx: AsTableContext): string;
visitAsDatabase(ctx: AsDatabaseContext): string;
visitIncludingTable(ctx: IncludingTableContext): string;
visitExcludingTable(ctx: ExcludingTableContext): string;
visitMapQuery(ctx: MapQueryContext): string;
visitMapTable(ctx: MapTableContext): string;
visitValuesRows(ctx: ValuesRowsContext): string;
visitValuesRowsParenthesis(ctx: ValuesRowsParenthesisContext): string;
visitQueryOrderBy(ctx: QueryOrderByContext): string;
visitQueryLimit(ctx: QueryLimitContext): string;
visitQueryOffset(ctx: QueryOffsetContext): string;
visitQueryFetch(ctx: QueryFetchContext): string;
visitTableQuery(ctx: TableQueryContext): string;
visitProjectItems(ctx: ProjectItemsContext): string;
visitTableExpression(ctx: TableExpressionContext): string;
visitTableReference(ctx: TableReferenceContext): string;
visitTableLateral(ctx: TableLateralContext): string;
visitOrderItems(ctx: OrderItemsContext): string;
visitGroupItem(ctx: GroupItemContext): string;
visitGroupItems(ctx: GroupItemsContext): string;
visitParenthesisGroupItems(ctx: ParenthesisGroupItemsContext): string;
visitGroupingSets(ctx: GroupingSetsContext): string;
visitPartitionBy(ctx: PartitionByContext): string;
visitOrderBy(ctx: OrderByContext): string;
visitWindowSpec(ctx: WindowSpecContext): string;
visitSelect(ctx: SelectContext): string;
visitFromTable(ctx: FromTableContext): string;
visitWhere(ctx: WhereContext): string;
visitGroupBy(ctx: GroupByContext): string;
visitHaving(ctx: HavingContext): string;
visitWindowSelect(ctx: WindowSelectContext): string;
visitHints(ctx: HintsContext): string;
visitPivot(ctx: PivotContext): string;
visitForPivotList(ctx: ForPivotListContext): string;
visitInPivotExprs(ctx: InPivotExprsContext): string;
visitMatchRecognize(ctx: MatchRecognizeContext): string;
visitMeasures(ctx: MeasuresContext): string;
visitSubsetMatch(ctx: SubsetMatchContext): string;
visitPatternMatch(ctx: PatternMatchContext): string;
visitDefineMatch(ctx: DefineMatchContext): string;
visitMeasureColumns(ctx: MeasureColumnsContext): string;
visitSubsetItems(ctx: SubsetItemsContext): string;
visitDefineItems(ctx: DefineItemsContext): string;
visitRenameTo(ctx: RenameToContext): string;
visitSetValues(ctx: SetValuesContext): string;
visitCharsetIntroducer(ctx: CharsetIntroducerContext): string;
visitCharsetLiteral(ctx: CharsetLiteralContext): string;
}