Add support to focus terminal and to control terminal instance reuse

This commit is contained in:
Dirk Baeumer
2017-06-15 16:04:42 +02:00
parent 972b9a12f3
commit 23c631879a
17 changed files with 389 additions and 194 deletions

View File

@@ -489,6 +489,7 @@ export function createApiFactory(
ThemeColor: extHostTypes.ThemeColor,
// functions
TaskRevealKind: extHostTypes.TaskRevealKind,
TaskInstanceKind: extHostTypes.TaskInstanceKind,
TaskGroup: extHostTypes.TaskGroup,
ShellTask: extHostTypes.ShellTask,
ProcessTask: extHostTypes.ProcessTask

View File

@@ -207,12 +207,33 @@ namespace TaskRevealKind {
}
}
namespace TaskInstanceKind {
export function from(value: vscode.TaskInstanceKind): TaskSystem.InstanceKind {
if (value === void 0 || value === null) {
return TaskSystem.InstanceKind.Shared;
}
switch (value) {
case types.TaskInstanceKind.Same:
return TaskSystem.InstanceKind.Same;
case types.TaskInstanceKind.New:
return TaskSystem.InstanceKind.New;
default:
return TaskSystem.InstanceKind.Shared;
}
}
}
namespace TerminalBehaviour {
export function from(value: vscode.TaskTerminalBehavior): TaskSystem.TerminalBehavior {
if (value === void 0 || value === null) {
return { reveal: TaskSystem.RevealKind.Always, echo: false };
return { reveal: TaskSystem.RevealKind.Always, echo: true, focus: false, instance: TaskSystem.InstanceKind.Shared };
}
return { reveal: TaskRevealKind.from(value.reveal), echo: !!value.echo };
return {
reveal: TaskRevealKind.from(value.reveal),
echo: value.echo === void 0 ? true : !!value.echo,
focus: !!value.focus,
instance: TaskInstanceKind.from(value.instance)
};
}
}

View File

@@ -1037,6 +1037,14 @@ export enum TaskRevealKind {
Never = 3
}
export enum TaskInstanceKind {
Shared = 1,
Same = 2,
New = 3
}
export class BaseTask {
private _name: string;