allow tasks to be in the editor area, respect waitOnExit (#168341)

This commit is contained in:
Megan Rogge 2022-12-09 17:22:47 -06:00 committed by GitHub
parent 4f1190b1d7
commit 82a0060547
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 3 deletions

View file

@ -31,7 +31,7 @@ import { URI } from 'vs/base/common/uri';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { ILogService } from 'vs/platform/log/common/log';
import { INotificationService } from 'vs/platform/notification/common/notification';
import { IShellLaunchConfig, TerminalLocation, TerminalSettingId, WaitOnExitValue } from 'vs/platform/terminal/common/terminal';
import { IShellLaunchConfig, TerminalSettingId, WaitOnExitValue } from 'vs/platform/terminal/common/terminal';
import { formatMessageForTerminal } from 'vs/platform/terminal/common/terminalStrings';
import { ThemeIcon } from 'vs/platform/theme/common/themeService';
import { IViewDescriptorService, IViewsService, ViewContainerLocation } from 'vs/workbench/common/views';
@ -1336,7 +1336,7 @@ export class TerminalTaskSystem extends Disposable implements ITaskSystem {
this._logService.trace(`No terminal found to split for group ${group}`);
}
// Either no group is used, no terminal with the group exists or splitting an existing terminal failed.
const createdTerminal = await this._terminalService.createTerminal({ location: TerminalLocation.Panel, config: launchConfigs });
const createdTerminal = await this._terminalService.createTerminal({ config: launchConfigs });
createdTerminal.onDisposed((terminal) => this._fireTaskEvent({ kind: TaskEventKind.Terminated, exitReason: terminal.exitReason, taskId: task.getRecentlyUsedKey() }));
return createdTerminal;
}

View file

@ -162,7 +162,11 @@ export class TerminalEditorInput extends EditorInput implements IEditorCloseHand
}));
const disposeListeners = [
instance.onExit(() => this.dispose()),
instance.onExit((e) => {
if (!instance.waitOnExit) {
this.dispose();
}
}),
instance.onDisposed(() => this.dispose()),
instance.onTitleChanged(() => this._onDidChangeLabel.fire()),
instance.onIconChanged(() => this._onDidChangeLabel.fire()),