Interface TerminalShellExecutionEndEvent

An event signalling that an execution has ended in a terminal.

Stubbed

interface TerminalShellExecutionEndEvent {
    execution: TerminalShellExecution;
    exitCode: undefined | number;
    shellIntegration: TerminalShellIntegration;
    terminal: Terminal;
}

Properties

The terminal shell execution that has ended.

Stubbed

exitCode: undefined | number

The exit code reported by the shell.

When this is undefined it can mean several things:

  • The shell either did not report an exit code (ie. the shell integration script is misbehaving)
  • The shell reported a command started before the command finished (eg. a sub-shell was opened).
  • The user canceled the command via ctrl+c.
  • The user pressed enter when there was no input.

Generally this should not happen. Depending on the use case, it may be best to treat this as a failure.

Example

const execution = shellIntegration.executeCommand({
command: 'echo',
args: ['Hello world']
});
window.onDidEndTerminalShellExecution(event => {
if (event.execution === execution) {
if (event.exitCode === undefined) {
console.log('Command finished but exit code is unknown');
} else if (event.exitCode === 0) {
console.log('Command succeeded');
} else {
console.log('Command failed');
}
}
});
shellIntegration: TerminalShellIntegration

The shell integration object.

Stubbed

terminal: Terminal

The terminal that shell integration has been activated in.

Stubbed