UNPKG

@neo4j-cypher/language-support

Version:
41 lines (40 loc) 1.52 kB
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[];