mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-27 12:56:39 +01:00
fix #194547
This commit is contained in:
@@ -116,6 +116,7 @@ export const enum TerminalSettingId {
|
||||
SmoothScrolling = 'terminal.integrated.smoothScrolling',
|
||||
IgnoreBracketedPasteMode = 'terminal.integrated.ignoreBracketedPasteMode',
|
||||
FocusAfterRun = 'terminal.integrated.focusAfterRun',
|
||||
AccessibleViewPreserveCursorPosition = 'terminal.integrated.accessibleViewPreserveCursorPosition',
|
||||
|
||||
// Debug settings that are hidden from user
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ import { ILayoutService } from 'vs/platform/layout/browser/layoutService';
|
||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||
import { IPickerQuickAccessItem } from 'vs/platform/quickinput/browser/pickerQuickAccess';
|
||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||
import { TerminalSettingId } from 'vs/platform/terminal/common/terminal';
|
||||
import { AccessibilityVerbositySettingId, AccessibleViewProviderId, accessibilityHelpIsShown, accessibleViewCurrentProviderId, accessibleViewGoToSymbolSupported, accessibleViewIsShown, accessibleViewOnLastLine, accessibleViewSupportsNavigation, accessibleViewVerbosityEnabled } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
||||
import { AccessibilityCommandId } from 'vs/workbench/contrib/accessibility/common/accessibilityCommands';
|
||||
import { getSimpleEditorOptions } from 'vs/workbench/contrib/codeEditor/browser/simpleEditorOptions';
|
||||
@@ -463,11 +464,17 @@ export class AccessibleView extends Disposable {
|
||||
this._editorWidget.updateOptions({ ariaLabel });
|
||||
this._editorWidget.focus();
|
||||
if (this._currentProvider?.options.positionBottom) {
|
||||
const lastLine = this.editorWidget.getModel()?.getLineCount();
|
||||
const position = lastLine !== undefined && lastLine > 0 ? new Position(lastLine, 1) : undefined;
|
||||
if (position) {
|
||||
this._editorWidget.setPosition(position);
|
||||
this._editorWidget.revealLine(position.lineNumber);
|
||||
const currentPosition = this.editorWidget.getPosition();
|
||||
const defaultPosition = currentPosition && currentPosition?.lineNumber === 1 && currentPosition?.column === 1;
|
||||
if (currentPosition && this._configurationService.getValue(TerminalSettingId.AccessibleViewPreserveCursorPosition) && !defaultPosition) {
|
||||
this._editorWidget.setPosition(currentPosition);
|
||||
} else {
|
||||
const lastLine = this.editorWidget.getModel()?.getLineCount();
|
||||
const position = lastLine !== undefined && lastLine > 0 ? new Position(lastLine, 1) : undefined;
|
||||
if (position) {
|
||||
this._editorWidget.setPosition(position);
|
||||
this._editorWidget.revealLine(position.lineNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -614,6 +614,11 @@ const terminalConfiguration: IConfigurationNode = {
|
||||
localize('terminal.integrated.focusAfterRun.accessible-buffer', "Always focus the accessible buffer."),
|
||||
localize('terminal.integrated.focusAfterRun.none', "Do nothing."),
|
||||
]
|
||||
},
|
||||
[TerminalSettingId.AccessibleViewPreserveCursorPosition]: {
|
||||
markdownDescription: localize('terminal.integrated.accessibleViewPreserveCursorPosition', "Preserve the cursor position on reopen of the terminal's accessible view rather than setting it to the bottom of the buffer."),
|
||||
type: 'boolean',
|
||||
default: false
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user