提交 01be0003 编写于 作者: D Daniel Imms

Update to work with latest xterm.js

上级 3904a9d8
......@@ -332,6 +332,12 @@ declare module 'vscode-xterm' {
*/
deregisterLinkMatcher(matcherId: number): void;
/**
* Enters screen reader navigation mode. This will only work when
* the screenReaderMode option is true.
*/
enterNavigationMode(): void;
/**
* Gets whether the terminal has an active selection.
*/
......
......@@ -388,4 +388,9 @@ export interface ITerminalInstance {
* Sets the title of the terminal instance.
*/
setTitle(title: string, eventFromProcess: boolean): void;
/**
* Enter screen reader navigation mode.
*/
enterNavigationMode(): void;
}
......@@ -127,7 +127,7 @@
cursor: text;
}
.xterm .accessibility {
.xterm .xterm-accessibility {
position: absolute;
left: 0;
top: 0;
......@@ -136,10 +136,14 @@
z-index: 100;
}
.xterm .accessibility-tree {
.xterm .xterm-accessibility-tree {
color: transparent;
}
.xterm .xterm-accessibility-tree:focus [id^="xterm-active-item-"] {
outline: 1px solid #F80;
}
.xterm .live-region {
position: absolute;
left: -9999px;
......
......@@ -18,7 +18,7 @@ import { TERMINAL_DEFAULT_SHELL_UNIX_LIKE, TERMINAL_DEFAULT_SHELL_WINDOWS } from
import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actions';
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
import { KillTerminalAction, CopyTerminalSelectionAction, CreateNewTerminalAction, CreateNewInActiveWorkspaceTerminalAction, FocusActiveTerminalAction, FocusNextTerminalAction, FocusPreviousTerminalAction, SelectDefaultShellWindowsTerminalAction, RunSelectedTextInTerminalAction, RunActiveFileInTerminalAction, ScrollDownTerminalAction, ScrollDownPageTerminalAction, ScrollToBottomTerminalAction, ScrollUpTerminalAction, ScrollUpPageTerminalAction, ScrollToTopTerminalAction, TerminalPasteAction, ToggleTerminalAction, ClearTerminalAction, AllowWorkspaceShellTerminalCommand, DisallowWorkspaceShellTerminalCommand, RenameTerminalAction, SelectAllTerminalAction, FocusTerminalFindWidgetAction, HideTerminalFindWidgetAction, ShowNextFindTermTerminalFindWidgetAction, ShowPreviousFindTermTerminalFindWidgetAction, DeleteWordLeftTerminalAction, DeleteWordRightTerminalAction, QuickOpenActionTermContributor, QuickOpenTermAction, TERMINAL_PICKER_PREFIX } from 'vs/workbench/parts/terminal/electron-browser/terminalActions';
import { KillTerminalAction, CopyTerminalSelectionAction, CreateNewTerminalAction, CreateNewInActiveWorkspaceTerminalAction, FocusActiveTerminalAction, FocusNextTerminalAction, FocusPreviousTerminalAction, SelectDefaultShellWindowsTerminalAction, RunSelectedTextInTerminalAction, RunActiveFileInTerminalAction, ScrollDownTerminalAction, ScrollDownPageTerminalAction, ScrollToBottomTerminalAction, ScrollUpTerminalAction, ScrollUpPageTerminalAction, ScrollToTopTerminalAction, TerminalPasteAction, ToggleTerminalAction, ClearTerminalAction, AllowWorkspaceShellTerminalCommand, DisallowWorkspaceShellTerminalCommand, RenameTerminalAction, SelectAllTerminalAction, FocusTerminalFindWidgetAction, HideTerminalFindWidgetAction, ShowNextFindTermTerminalFindWidgetAction, ShowPreviousFindTermTerminalFindWidgetAction, DeleteWordLeftTerminalAction, DeleteWordRightTerminalAction, QuickOpenActionTermContributor, QuickOpenTermAction, TERMINAL_PICKER_PREFIX, EnterLineNavigationModeTerminalAction } from 'vs/workbench/parts/terminal/electron-browser/terminalActions';
import { Registry } from 'vs/platform/registry/common/platform';
import { ShowAllCommandsAction } from 'vs/workbench/parts/quickopen/browser/commandsHandler';
import { SyncActionDescriptor } from 'vs/platform/actions/common/actions';
......@@ -204,6 +204,7 @@ configurationRegistry.registerConfiguration({
FocusActiveTerminalAction.ID,
FocusPreviousTerminalAction.ID,
FocusNextTerminalAction.ID,
EnterLineNavigationModeTerminalAction.ID,
'workbench.action.tasks.build',
'workbench.action.tasks.restartTask',
'workbench.action.tasks.runTask',
......@@ -386,6 +387,9 @@ actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(DeleteWordRightT
primary: KeyMod.CtrlCmd | KeyCode.Delete,
mac: { primary: KeyMod.Alt | KeyCode.Delete }
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Delete Word Right', category);
actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(EnterLineNavigationModeTerminalAction, EnterLineNavigationModeTerminalAction.ID, EnterLineNavigationModeTerminalAction.LABEL, {
primary: KeyMod.CtrlCmd | KeyCode.KEY_L
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Enter Line Navigation Mode', category);
terminalCommands.setup();
......
......@@ -196,6 +196,27 @@ export class DeleteWordRightTerminalAction extends Action {
}
}
export class EnterLineNavigationModeTerminalAction extends Action {
public static readonly ID = 'workbench.action.terminal.enterLineNavigationMode';
public static readonly LABEL = nls.localize('workbench.action.terminal.enterLineNavigationMode', "Enter Line Navigation Mode");
constructor(
id: string, label: string,
@ITerminalService private terminalService: ITerminalService
) {
super(id, label);
}
public run(event?: any): TPromise<any> {
let terminalInstance = this.terminalService.getActiveInstance();
if (terminalInstance) {
terminalInstance.enterNavigationMode();
}
return TPromise.as(void 0);
}
}
export class CreateNewTerminalAction extends Action {
public static readonly ID = 'workbench.action.terminal.new';
......
......@@ -1123,6 +1123,15 @@ export class TerminalInstance implements ITerminalInstance {
private _updateTheme(theme?: ITheme): void {
this._xterm.setOption('theme', this._getXtermTheme(theme));
}
public enterNavigationMode(): void {
// Perform this asynchronously as entering navigation mode will override
// the key event handlers which seemed to mess with the keybindings
// system
setTimeout(() => {
this._xterm.enterNavigationMode();
}, 100);
}
}
registerThemingParticipant((theme: ITheme, collector: ICssStyleCollector) => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册