aqua/language-server/language-server-npm/aqua-lsp-api.d.ts
InversionSpaces 5bc01a9c02
feat(lsp-api): Fix interface definition [LNG-298] (#1027)
* Fix interface definition

* Fix comment
2023-12-19 17:01:34 +01:00

66 lines
1.2 KiB
TypeScript

export interface TokenLocation {
name: string;
startLine: number;
startCol: number;
endLine: number;
endCol: number;
}
export interface TokenInfo {
location: TokenLocation;
type: string;
}
export interface TokenLink {
current: TokenLocation;
definition: TokenLocation;
}
export interface TokenImport {
current: TokenLocation;
path: string;
}
export interface ErrorInfo {
infoType: "error";
start: number;
end: number;
message: string;
location: string | null;
}
export interface WarningInfo {
infoType: "warning";
start: number;
end: number;
message: string;
location: string | null;
}
export interface CompilationResult {
errors: ErrorInfo[];
warnings: WarningInfo[];
locations: TokenLink[];
importLocations: TokenImport[];
tokens: TokenInfo[];
}
/*
* Imports configuration for the compiler.
* Structure:
* {
* "<compiled-path-prefix-1>": {
* "<import-path-prefix-1>": ["<import-path-1>", "<import-path-2>"],
* ...
* }
* ...
* }
*/
export type Imports = Record<string, Record<string, string[]>>;
export class Compiler {
compile(path: string, imports: Imports): Promise<CompilationResult>;
}
export var AquaLSP: Compiler;