UNPKG

plaxtony

Version:

Static code analysis of SC2 Galaxy Script

120 lines (119 loc) 4.35 kB
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 {};