diff --git a/src/vs/base/browser/ui/findinput/findInput.ts b/src/vs/base/browser/ui/findinput/findInput.ts index 80666c079ec50..139ec12651f51 100644 --- a/src/vs/base/browser/ui/findinput/findInput.ts +++ b/src/vs/base/browser/ui/findinput/findInput.ts @@ -8,7 +8,7 @@ import 'vs/css!./findInput'; import * as nls from 'vs/nls'; import * as dom from 'vs/base/browser/dom'; -import { IMessage as InputBoxMessage, IInputValidator, InputBox, IInputBoxStyles } from 'vs/base/browser/ui/inputbox/inputBox'; +import { IMessage as InputBoxMessage, IInputValidator, IInputBoxStyles, HistoryInputBox } from 'vs/base/browser/ui/inputbox/inputBox'; import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview'; import { Widget } from 'vs/base/browser/ui/widget'; import { Event, Emitter } from 'vs/base/common/event'; @@ -28,6 +28,7 @@ export interface IFindInputOptions extends IFindInputStyles { readonly appendCaseSensitiveLabel?: string; readonly appendWholeWordsLabel?: string; readonly appendRegexLabel?: string; + readonly history?: string[]; } export interface IFindInputStyles extends IInputBoxStyles { @@ -62,7 +63,7 @@ export class FindInput extends Widget { private wholeWords: WholeWordsCheckbox; private caseSensitive: CaseSensitiveCheckbox; public domNode: HTMLElement; - public inputBox: InputBox; + public inputBox: HistoryInputBox; private readonly _onDidOptionChange = this._register(new Emitter()); public readonly onDidOptionChange: Event = this._onDidOptionChange.event; @@ -108,7 +109,7 @@ export class FindInput extends Widget { this.domNode = null; this.inputBox = null; - this.buildDomNode(options.appendCaseSensitiveLabel || '', options.appendWholeWordsLabel || '', options.appendRegexLabel || ''); + this.buildDomNode(options.appendCaseSensitiveLabel || '', options.appendWholeWordsLabel || '', options.appendRegexLabel || '', options.history); if (Boolean(parent)) { parent.appendChild(this.domNode); @@ -259,12 +260,12 @@ export class FindInput extends Widget { this.inputBox.width = w; } - private buildDomNode(appendCaseSensitiveLabel: string, appendWholeWordsLabel: string, appendRegexLabel: string): void { + private buildDomNode(appendCaseSensitiveLabel: string, appendWholeWordsLabel: string, appendRegexLabel: string, history: string[]): void { this.domNode = document.createElement('div'); this.domNode.style.width = this.width + 'px'; dom.addClass(this.domNode, 'monaco-findInput'); - this.inputBox = this._register(new InputBox(this.domNode, this.contextViewProvider, { + this.inputBox = this._register(new HistoryInputBox(this.domNode, this.contextViewProvider, { placeholder: this.placeholder || '', ariaLabel: this.label || '', validationOptions: { @@ -278,7 +279,8 @@ export class FindInput extends Widget { inputValidationWarningBackground: this.inputValidationWarningBackground, inputValidationWarningBorder: this.inputValidationWarningBorder, inputValidationErrorBackground: this.inputValidationErrorBackground, - inputValidationErrorBorder: this.inputValidationErrorBorder + inputValidationErrorBorder: this.inputValidationErrorBorder, + history })); this.regex = this._register(new RegexCheckbox({