interface TaskConfiguration extends BaseTaskConfiguration {
version: "0.2.0";
windows?: BaseTaskConfiguration;
osx?: BaseTaskConfiguration;
linux?: BaseTaskConfiguration;
}
interface BaseTaskConfiguration {
type: "shell" | "process";
command: string;
isBackground?: boolean;
options?: CommandOptions;
args?: string[];
presentation?: PresentationOptions;
problemMatcher?: string | ProblemMatcher | (string | ProblemMatcher)[];
tasks?: TaskDescription[];
}
export interface CommandOptions {
cwd?: string;
env?: { [key:string]:string; };
shell: {
executable: string;
args?: string[];
}
}
interface TaskDescription {
taskName: string;
type: "shell" | "process";
command: string;
isBackground?: boolean;
args?: string[];
group?: "build" | "string";
presentation?: PresentationOptions;
problemMatcher?: string | ProblemMatcher | (string | ProblemMatcher)[];
}
interface PresentationOptions {
reveal?: "never" | "silent" | "always";
echo?: boolean;
focus?: boolean;
panel?: "shared" | "dedicated" | "new";
}
interface ProblemMatcher {
base?: string;
owner?: string;
severity?: string;
fileLocation?: string | string[];
pattern?: string | ProblemPattern | ProblemPattern[];
background?: BackgroundMatcher;
}
interface BackgroundMatcher {
activeOnStart?: boolean;
beginsPattern?: string;
endsPattern?: string;
}
interface ProblemPattern {
regexp: string;
file: number;
location?: number;
line?: number;
column?: number;
endLine?: number;
endColumn?: number;
severity?: number;
code?: number;
message: number;
loop?: boolean;
}