plaxtony
Version:
Static code analysis of SC2 Galaxy Script
120 lines (119 loc) • 4.35 kB
TypeScript
import * as lsp from 'vscode-languageserver';
import { TextDocument } from 'vscode-languageserver-textdocument';
import * as trig from './trigger';
import * as cat from './datacatalog';
import * as loc from './localization';
export declare enum BuiltinDeps {
'mods/core.sc2mod' = 0,
'mods/glue.sc2mod' = 1,
'mods/liberty.sc2mod' = 2,
'mods/swarm.sc2mod' = 3,
'mods/void.sc2mod' = 4,
'mods/libertymulti.sc2mod' = 5,
'mods/swarmmulti.sc2mod' = 6,
'mods/voidmulti.sc2mod' = 7,
'mods/balancemulti.sc2mod' = 8,
'mods/starcoop/starcoop.sc2mod' = 9,
'mods/war3.sc2mod' = 10,
'mods/novastoryassets.sc2mod' = 11,
'campaigns/liberty.sc2campaign' = 12,
'campaigns/swarm.sc2campaign' = 13,
'campaigns/void.sc2campaign' = 14,
'campaigns/libertystory.sc2campaign' = 15,
'campaigns/swarmstory.sc2campaign' = 16,
'campaigns/voidstory.sc2campaign' = 17
}
export declare type builtinDepName = keyof typeof BuiltinDeps;
export declare function isSC2Archive(directory: string): RegExpMatchArray;
export declare function findSC2ArchiveDirectories(directory: string, opts?: {
exclude?: string[];
}): Promise<string[]>;
export declare abstract class Component {
protected workspace: SC2Workspace;
constructor(workspace: SC2Workspace);
load(): Promise<boolean>;
abstract loadData(): Promise<boolean>;
}
export declare class TriggerComponent extends Component {
protected store: trig.TriggerStore;
loadData(): Promise<boolean>;
getStore(): trig.TriggerStore;
}
export declare class CatalogComponent extends Component {
protected store: cat.CatalogStore;
loadData(): Promise<boolean>;
getStore(): cat.CatalogStore;
}
export declare class LocalizationComponent extends Component {
lang: string;
triggers: loc.LocalizationTriggers;
strings: Map<string, loc.LocalizationTextStore>;
private loadStrings;
loadData(): Promise<boolean>;
}
export interface ArchiveLink {
name: string;
src: string;
}
export declare function resolveArchiveDirectory(name: string, sources: string[]): Promise<string>;
declare type ResolveDependencyOpts = {
overrides?: Map<string, string>;
fallbackResolve?: (name: string) => Promise<string | undefined>;
};
export declare function resolveArchiveDependencyList(rootArchive: SC2Archive, sources: string[], opts?: ResolveDependencyOpts): Promise<{
list: ArchiveLink[];
unresolvedNames: string[];
}>;
export declare function openArchiveWorkspace(archive: SC2Archive, sources: string[], overrides?: Map<string, string>, extra?: Map<string, string>): Promise<SC2Workspace>;
export declare class SC2Archive {
readonly name: string;
readonly directory: string;
/** lower-cased `fsPath` */
readonly lcFsPath: string;
priority: number;
constructor(name: string, directory: string);
findFiles(pattern: string | string[]): Promise<string[]>;
hasFile(filename: string): Promise<boolean>;
readFile(filename: string): Promise<string>;
relativePath(uri: lsp.DocumentUri): string;
/**
* returns lowercased and forward slash normalized list
*/
getDependencyList(): Promise<string[]>;
get isBuiltin(): boolean;
}
export declare enum S2ArchiveNsNameKind {
base = 0,
enus = 1
}
export declare enum S2ArchiveNsTypeKind {
sc2assets = 0,
sc2data = 1
}
export interface S2FileNs {
name: keyof typeof S2ArchiveNsNameKind;
type: keyof typeof S2ArchiveNsTypeKind;
}
export interface S2QualifiedFile {
fsPath: string;
relativePath: string;
archiveRelpath: string;
namespace?: S2FileNs;
archive?: SC2Archive;
priority: number;
}
export declare class SC2Workspace {
rootArchive?: SC2Archive;
allArchives: SC2Archive[];
dependencies: SC2Archive[];
metadataArchives: SC2Archive[];
trigComponent: TriggerComponent;
locComponent: LocalizationComponent;
catalogComponent: CatalogComponent;
readonly arvMap: Map<string, SC2Archive>;
constructor(rootArchive?: SC2Archive, dependencies?: SC2Archive[]);
findFiles(pattern: string | string[]): AsyncGenerator<[SC2Archive, string], void, unknown>;
static documentFromFile(archive: SC2Archive, filename: string, languageId?: string): Promise<TextDocument>;
resolvePath(fsPath: lsp.URI): S2QualifiedFile | undefined;
}
export {};