From 66a5bc334f412bf1473d71b156df2e1b4a5f7b32 Mon Sep 17 00:00:00 2001 From: Brian Schlenker Date: Sun, 2 Apr 2017 12:25:56 -0700 Subject: [PATCH] Add noValuePreselect option to showInputBox Allow extensions to decide if a value passed to vscode.window.showInputBox should start selected or not. Defaults to current behavior as to not break the experience of existing extensions. Fixes https://github.com/Microsoft/vscode/issues/10582. --- src/vs/platform/quickOpen/common/quickOpen.ts | 7 ++++++- src/vs/vscode.d.ts | 5 +++++ src/vs/workbench/api/node/mainThreadQuickOpen.ts | 1 + .../browser/parts/quickopen/quickOpenController.ts | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/vs/platform/quickOpen/common/quickOpen.ts b/src/vs/platform/quickOpen/common/quickOpen.ts index 7a87bd37f07..2a589bf3aec 100644 --- a/src/vs/platform/quickOpen/common/quickOpen.ts +++ b/src/vs/platform/quickOpen/common/quickOpen.ts @@ -66,6 +66,11 @@ export interface IInputOptions { */ value?: string; + /** + * whether to automatically select the first value set + */ + noValuePreselect?: boolean; + /** * the text to display underneath the input box */ @@ -154,4 +159,4 @@ export interface IQuickOpenService { * Allows to register on the event that quick open is hiding */ onHide: Event; -} \ No newline at end of file +} diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 70b052ae622..9d3a5840924 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -1465,6 +1465,11 @@ declare module 'vscode' { */ value?: string; + /** + * Whether to preselect the given `value` when the box is first shown. + */ + noValuePreselect?: boolean; + /** * The text to display underneath the input box. */ diff --git a/src/vs/workbench/api/node/mainThreadQuickOpen.ts b/src/vs/workbench/api/node/mainThreadQuickOpen.ts index ff1e2656049..1662317bfe5 100644 --- a/src/vs/workbench/api/node/mainThreadQuickOpen.ts +++ b/src/vs/workbench/api/node/mainThreadQuickOpen.ts @@ -82,6 +82,7 @@ export class MainThreadQuickOpen extends MainThreadQuickOpenShape { if (options) { inputOptions.password = options.password; inputOptions.placeHolder = options.placeHolder; + inputOptions.noValuePreselect = options.noValuePreselect; inputOptions.prompt = options.prompt; inputOptions.value = options.value; inputOptions.ignoreFocusLost = options.ignoreFocusOut; diff --git a/src/vs/workbench/browser/parts/quickopen/quickOpenController.ts b/src/vs/workbench/browser/parts/quickopen/quickOpenController.ts index 9a33e1306ab..b8bd64ecceb 100644 --- a/src/vs/workbench/browser/parts/quickopen/quickOpenController.ts +++ b/src/vs/workbench/browser/parts/quickopen/quickOpenController.ts @@ -183,7 +183,7 @@ export class QuickOpenController extends Component implements IQuickOpenService password: options.password, placeHolder: options.placeHolder, value: lastValue === void 0 ? options.value : lastValue, - valueSelect: lastValue === void 0, + valueSelect: options.noValuePreselect ? false : lastValue === void 0, inputDecoration: currentDecoration, onDidType: (value) => { lastValue = value;