@neo4j-cypher/language-support
Version:
Cypher language support
41 lines (40 loc) • 1.52 kB
TypeScript
import { SemanticTokenTypes } from 'vscode-languageserver-types';
import { Token } from 'antlr4';
import { CypherTokenType } from '../lexerSymbols';
export interface TokenPosition {
line: number;
startCharacter: number;
startOffset: number;
}
export declare function tokenPositionToString(tokenPosition: TokenPosition): string;
export interface ParsedCypherToken {
position: TokenPosition;
length: number;
tokenType: CypherTokenType;
token: string;
bracketInfo?: BracketInfo;
}
export interface BracketInfo {
bracketType: BracketType;
bracketLevel: number;
}
export declare enum BracketType {
bracket = "bracket",
parenthesis = "parenthesis",
curly = "curly"
}
export interface ColouredToken {
position: TokenPosition;
length: number;
tokenColour: SemanticTokenTypes;
token: string;
}
export declare function getTokenPosition(token: Token): TokenPosition;
export declare function toParsedTokens(tokenPosition: TokenPosition, tokenType: CypherTokenType, tokenStr: string, token: Token, bracketsLevel?: Map<BracketType, number>): ParsedCypherToken[];
export declare function getCypherTokenType(token: Token, nextToken: Token | undefined): {
tokenType: CypherTokenType;
finished: boolean;
};
export declare function shouldAssignTokenType(token: Token): boolean;
export declare function sortTokens(tokens: ParsedCypherToken[]): ParsedCypherToken[];
export declare function removeOverlappingTokens(tokens: ParsedCypherToken[]): ParsedCypherToken[];