diff --git a/src/vs/editor/contrib/find/simpleFindWidget.ts b/src/vs/editor/contrib/find/simpleFindWidget.ts index e6e992dc4da572a6d153bf467f4ca89fb5838503..27a89a40b674247d4264d88a9f008a29897609a3 100644 --- a/src/vs/editor/contrib/find/simpleFindWidget.ts +++ b/src/vs/editor/contrib/find/simpleFindWidget.ts @@ -26,7 +26,7 @@ const NLS_NEXT_MATCH_BTN_LABEL = nls.localize('label.nextMatchButton', "Next mat const NLS_CLOSE_BTN_LABEL = nls.localize('label.closeButton', "Close"); export abstract class SimpleFindWidget extends Widget { - private readonly _findInput: FindInput; + protected readonly _findInput: FindInput; private readonly _domNode: HTMLElement; private readonly _innerDomNode: HTMLElement; private _isVisible: boolean = false; @@ -36,15 +36,18 @@ export abstract class SimpleFindWidget extends Widget { private prevBtn: SimpleButton; private nextBtn: SimpleButton; private foundMatch: boolean; + private readonly _invertDefaultDirection: boolean | undefined; constructor( @IContextViewService private readonly _contextViewService: IContextViewService, @IContextKeyService contextKeyService: IContextKeyService, private readonly _state: FindReplaceState = new FindReplaceState(), - showOptionButtons?: boolean + showOptionButtons?: boolean, + invertDefaultDirection?: boolean ) { super(); + this._invertDefaultDirection = invertDefaultDirection; this._findInput = this._register(new ContextScopedFindInput(null, this._contextViewService, { label: NLS_FIND_INPUT_LABEL, placeholder: NLS_FIND_INPUT_PLACEHOLDER, @@ -93,13 +96,14 @@ export abstract class SimpleFindWidget extends Widget { this._register(this._findInput.onKeyDown((e) => { if (e.equals(KeyCode.Enter)) { - this.find(true); + // Flip the direction search goes in the terminal case so it matches other terminals + this.find(this._invertDefaultDirection ? true : false); e.preventDefault(); return; } if (e.equals(KeyMod.Shift | KeyCode.Enter)) { - this.find(false); + this.find(this._invertDefaultDirection ? false : true); e.preventDefault(); return; } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts b/src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts index b214d4a7bccc414d0581b54c0ca97b2d5c75bdc1..f8035e70b4fcee1ad94def4a2f2b802d5266516e 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts @@ -8,7 +8,6 @@ import { IContextViewService } from 'vs/platform/contextview/browser/contextView import { ITerminalService, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_INPUT_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED } from 'vs/workbench/contrib/terminal/common/terminal'; import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { FindReplaceState } from 'vs/editor/contrib/find/findState'; - export class TerminalFindWidget extends SimpleFindWidget { protected _findInputFocused: IContextKey; protected _findWidgetFocused: IContextKey; @@ -19,7 +18,7 @@ export class TerminalFindWidget extends SimpleFindWidget { @IContextKeyService private readonly _contextKeyService: IContextKeyService, @ITerminalService private readonly _terminalService: ITerminalService ) { - super(_contextViewService, _contextKeyService, findState, true); + super(_contextViewService, _contextKeyService, findState, true, true); this._register(findState.onFindReplaceStateChange(() => { this.show(); }));