/// /// import * as ls from 'vscode-languageserver-types'; import type { TextDocument } from 'vscode-languageserver-textdocument'; import type { FoldingRange } from 'vscode-languageserver-types'; import * as s from './schema'; import type { LanguageSettings } from './settings'; import 'language-service'; import k = Kusto.Data.IntelliSense; import k2 = Kusto.Language.Editor; import { Database } from './schema'; import type { RenderInfo } from './renderInfo'; import type { ClusterReference, DatabaseReference, GetReferencedGlobalParamsResult } from '../types'; import { ClassificationRange } from '../syntaxHighlighting/types'; export declare enum TokenKind { TableToken = 2, TableColumnToken = 4, OperatorToken = 8,// where, project, ... SubOperatorToken = 16,// has, contains, ... CalculatedColumnToken = 32, StringLiteralToken = 64, FunctionNameToken = 128, UnknownToken = 256, CommentToken = 512, PlainTextToken = 1024, DataTypeToken = 2048, ControlCommandToken = 4096, CommandPartToken = 8192, QueryParametersToken = 16384, CslCommandToken = 32768, LetVariablesToken = 65536, PluginToken = 131072, BracketRangeToken = 262144, ClientDirectiveToken = 524288 } /** * A plain old javascript object that is roughly equivalent to the @kusto/language-service-next object, but without * all the Bridge.Net properties and methods. this object is being sent from web worker to main thread and turns out * that when posting the message we lose all properties (and functions), thus we use a POJO instead. * This issue started happening once upgrading to 0.20.0 from 0.15.5. */ export interface ClassifiedRange { kind: k2.ClassificationKind; start: number; length: number; end: number; } /** * colorization data for specific line range. */ export interface ColorizationRange { classifications: ClassifiedRange[]; absoluteStart: number; absoluteEnd: number; } export interface ResultAction { title: string; changes: { start: number; deleteLength: number; insertText: string | null; }[]; kind: string; } export interface LanguageService { doComplete(document: TextDocument, position: ls.Position): Promise; doRangeFormat(document: TextDocument, range: ls.Range): Promise; doDocumentFormat(document: TextDocument): Promise; doCurrentCommandFormat(document: TextDocument, caretPosition: ls.Position): Promise; doFolding(document: TextDocument): Promise; doValidation(document: TextDocument, intervals: { start: number; end: number; }[], includeWarnings?: boolean, includeSuggestions?: boolean): Promise; getResultActions(document: TextDocument, start: number, end: number): Promise; getClassifications(document: TextDocument): Promise; doRename(document: TextDocument, position: ls.Position, newName: string): Promise; doHover(document: TextDocument, position: ls.Position): Promise; setParameters(scalarParameters: readonly s.ScalarParameter[], tabularParameters: readonly s.TabularParameter[]): Promise; setSchema(schema: s.Schema): Promise; setSchemaFromShowSchema(schema: s.showSchema.Result, clusterConnectionString: string, databaseInContextName: string, globalScalarParameters?: s.ScalarParameter[], globalTabularParameters?: s.TabularParameter[], databaseInContextAlternateName?: string): Promise; normalizeSchema(schema: s.showSchema.Result, clusterConnectionString: string, databaseInContextName: string, databaseInContextAlternateName?: string): Promise; getSchema(): Promise; getCommandInContext(document: TextDocument, cursorOffset: number): Promise; getCommandAndLocationInContext(document: TextDocument, cursorOffset: number): Promise<{ text: string; location: ls.Location; } | null>; getCommandsInDocument(document: TextDocument): Promise<{ absoluteStart: number; absoluteEnd: number; text: string; }[]>; configure(languageSettings: LanguageSettings): void; getClientDirective(text: string): Promise<{ isClientDirective: boolean; directiveWithoutLeadingComments: string; }>; getAdminCommand(text: string): Promise<{ isAdminCommand: boolean; adminCommandWithoutLeadingComments: string; }>; findDefinition(document: TextDocument, position: ls.Position): Promise; findReferences(document: TextDocument, position: ls.Position): Promise; getQueryParams(document: TextDocument, cursorOffset: number): Promise<{ name: string; type: string; }[]>; getGlobalParams(document: TextDocument): Promise<{ name: string; type: string; }[]>; getReferencedSymbols(document: TextDocument, offset?: number): Promise<{ name: string; kind: string; display: string; }[]>; getReferencedGlobalParams(document: TextDocument, offset?: number): Promise; getRenderInfo(document: TextDocument, cursorOffset: number): Promise; getDatabaseReferences(document: TextDocument, cursorOffset: number): Promise; getClusterReferences(document: TextDocument, cursorOffset: number): Promise; addDatabaseToSchema(document: TextDocument, clusterName: string, databaseSchema: Database): Promise; addClusterToSchema(document: TextDocument, clusterName: string, databases: readonly { name: string; alternativeName?: string; }[]): Promise; } export type CmSchema = { accounts: k.KustoIntelliSenseAccountEntity[]; services: k.KustoIntelliSenseServiceEntity[]; connectionString: string; }; /** * Obtain an instance of the kusto language service. */ export declare function getKustoLanguageService(): LanguageService;