mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-28 05:37:48 +01:00
add onDidRunText
This commit is contained in:
@@ -591,6 +591,7 @@ export interface ITerminalInstance {
|
||||
onDidBlur: Event<ITerminalInstance>;
|
||||
onDidInputData: Event<ITerminalInstance>;
|
||||
onDidChangeSelection: Event<ITerminalInstance>;
|
||||
onDidRunText: Event<void>;
|
||||
|
||||
/**
|
||||
* An event that fires when a terminal is dropped on this instance via drag and drop.
|
||||
|
||||
@@ -15,7 +15,7 @@ import { URI } from 'vs/base/common/uri';
|
||||
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService';
|
||||
import { EndOfLinePreference } from 'vs/editor/common/model';
|
||||
import { localize } from 'vs/nls';
|
||||
import { CONTEXT_ACCESSIBILITY_MODE_ENABLED, IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||
import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from 'vs/platform/accessibility/common/accessibility';
|
||||
import { Action2, registerAction2, IAction2Options } from 'vs/platform/actions/common/actions';
|
||||
import { ICommandService } from 'vs/platform/commands/common/commands';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
@@ -549,8 +549,6 @@ export function registerTerminalActions() {
|
||||
title: { value: localize('workbench.action.terminal.runSelectedText', "Run Selected Text In Active Terminal"), original: 'Run Selected Text In Active Terminal' },
|
||||
run: async (c, accessor) => {
|
||||
const codeEditorService = accessor.get(ICodeEditorService);
|
||||
const configurationService = accessor.get(IConfigurationService);
|
||||
const accessibilityService = accessor.get(IAccessibilityService);
|
||||
const editor = codeEditorService.getActiveCodeEditor();
|
||||
if (!editor || !editor.hasModel()) {
|
||||
return;
|
||||
@@ -566,13 +564,6 @@ export function registerTerminalActions() {
|
||||
}
|
||||
await instance.sendText(text, true, true);
|
||||
await c.service.revealActiveTerminal();
|
||||
const focusAfterRun = configurationService.getValue(TerminalSettingId.FocusAfterRun);
|
||||
const focusTerminal = focusAfterRun === 'terminal' || (focusAfterRun === 'auto' && accessibilityService.isScreenReaderOptimized());
|
||||
if (focusTerminal) {
|
||||
instance.focus(true);
|
||||
} else if (focusAfterRun === 'accessible-buffer') {
|
||||
instance.getContribution('terminal.accessible-buffer')?.requestFocus?.();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -322,6 +322,8 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
readonly onRequestAddInstanceToGroup = this._onRequestAddInstanceToGroup.event;
|
||||
private readonly _onDidChangeHasChildProcesses = this._register(new Emitter<boolean>());
|
||||
readonly onDidChangeHasChildProcesses = this._onDidChangeHasChildProcesses.event;
|
||||
private readonly _onDidRunText = this._register(new Emitter<void>());
|
||||
readonly onDidRunText = this._onDidRunText.event;
|
||||
|
||||
constructor(
|
||||
private readonly _terminalShellTypeContextKey: IContextKey<string>,
|
||||
@@ -1255,6 +1257,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
this._onDidInputData.fire(this);
|
||||
this.xterm?.suggestController?.handleNonXtermData(text);
|
||||
this.xterm?.scrollToBottom();
|
||||
this._onDidRunText.fire();
|
||||
}
|
||||
|
||||
async sendPath(originalPath: string | URI, addNewLine: boolean): Promise<void> {
|
||||
|
||||
+15
-3
@@ -6,12 +6,13 @@
|
||||
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
|
||||
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
||||
import { localize } from 'vs/nls';
|
||||
import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from 'vs/platform/accessibility/common/accessibility';
|
||||
import { CONTEXT_ACCESSIBILITY_MODE_ENABLED, IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
|
||||
import { IQuickPick, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput';
|
||||
import { terminalTabFocusModeContextKey } from 'vs/platform/terminal/common/terminal';
|
||||
import { TerminalSettingId, terminalTabFocusModeContextKey } from 'vs/platform/terminal/common/terminal';
|
||||
import { IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
|
||||
import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions';
|
||||
import { ITerminalContribution, ITerminalInstance, ITerminalService, IXtermTerminal } from 'vs/workbench/contrib/terminal/browser/terminal';
|
||||
@@ -59,9 +60,20 @@ class AccessibleBufferContribution extends DisposableStore implements ITerminalC
|
||||
private readonly _instance: ITerminalInstance,
|
||||
processManager: ITerminalProcessManager,
|
||||
widgetManager: TerminalWidgetManager,
|
||||
@IInstantiationService private readonly _instantiationService: IInstantiationService
|
||||
@IInstantiationService private readonly _instantiationService: IInstantiationService,
|
||||
@IConfigurationService configurationService: IConfigurationService,
|
||||
@IAccessibilityService accessibilityService: IAccessibilityService
|
||||
) {
|
||||
super();
|
||||
this.add(_instance.onDidRunText(() => {
|
||||
const focusAfterRun = configurationService.getValue(TerminalSettingId.FocusAfterRun);
|
||||
const focusTerminal = focusAfterRun === 'terminal' || (focusAfterRun === 'auto' && accessibilityService.isScreenReaderOptimized());
|
||||
if (focusTerminal) {
|
||||
_instance.focus(true);
|
||||
} else if (focusAfterRun === 'accessible-buffer') {
|
||||
_instance.getContribution('terminal.accessible-buffer')?.requestFocus?.();
|
||||
}
|
||||
}));
|
||||
}
|
||||
layout(xterm: IXtermTerminal & { raw: Terminal }): void {
|
||||
this._xterm = xterm;
|
||||
|
||||
Reference in New Issue
Block a user