plaxtony
Version:
Static code analysis of SC2 Galaxy Script
66 lines (65 loc) • 2.89 kB
TypeScript
import * as gt from '../compiler/types';
import { SourceFile } from '../compiler/types';
import { Parser } from '../compiler/parser';
import { S2WorkspaceMetadata } from './s2meta';
import { SC2Workspace, S2QualifiedFile } from '../sc2mod/archive';
import * as lsp from 'vscode-languageserver';
import { TextDocument } from 'vscode-languageserver-textdocument';
import { DataCatalogConfig, MetadataConfig } from './server';
export declare function createTextDocument(uri: string, text: string): TextDocument;
export declare function createTextDocumentFromFs(filepath: string): TextDocument;
export declare function readDocumentFile(fsPath: string): Promise<TextDocument>;
export declare function createTextDocumentFromUri(uri: string): TextDocument;
export declare function openSourceFilesInLocation(...srcFolders: string[]): AsyncGenerator<TextDocument, void, unknown>;
export declare class IndexedDocument {
textDocument: TextDocument;
sourceNode: SourceFile;
}
export interface S2WorkspaceChangeEvent {
src: string;
workspace: SC2Workspace;
}
export declare class WorkspaceWatcher {
readonly folders: string[];
protected _onDidOpen: lsp.Emitter<lsp.TextDocumentChangeEvent<TextDocument>>;
constructor(...folders: string[]);
get onDidOpen(): lsp.Event<lsp.TextDocumentChangeEvent<TextDocument>>;
}
export declare class S2WorkspaceWatcher extends WorkspaceWatcher {
protected _onDidOpenS2Workspace: lsp.Emitter<S2WorkspaceChangeEvent>;
protected modSources: string[];
constructor(workspacePath: string, modSources: string[]);
get onDidOpenS2Archive(): lsp.Event<S2WorkspaceChangeEvent>;
watch(): Promise<void>;
}
export interface IStoreSymbols {
resolveGlobalSymbol(name: string): gt.Symbol | undefined;
}
export interface SourceFileS2Meta {
file: S2QualifiedFile;
docName: string;
}
export interface QualifiedSourceFile extends SourceFile {
s2meta?: SourceFileS2Meta;
}
export declare class Store implements IStoreSymbols {
protected parser: Parser;
rootPath?: string;
documents: Map<string, QualifiedSourceFile>;
readonly qualifiedDocuments: Map<string, Map<string, QualifiedSourceFile>>;
openDocuments: Set<string>;
s2workspace: SC2Workspace;
s2metadata: S2WorkspaceMetadata;
constructor(opts?: {
parser?: Parser;
});
clear(): void;
protected removeQualifiedDocument(qsFile: QualifiedSourceFile): void;
protected requalifyFile(qsFile: QualifiedSourceFile): void;
removeDocument(documentUri: string): void;
updateDocument(document: TextDocument, check?: boolean): void;
updateS2Workspace(workspace: SC2Workspace): Promise<void>;
rebuildS2Metadata(metadataCfg?: MetadataConfig, dataCatalogConfig?: DataCatalogConfig): Promise<void>;
isUriInWorkspace(documentUri: string): boolean;
resolveGlobalSymbol(name: string): gt.Symbol | undefined;
}