From 876825059b0f1f9dc2be871839b54d90c74ef11f Mon Sep 17 00:00:00 2001 From: Christof Marti Date: Mon, 23 Apr 2018 11:44:32 +0200 Subject: [PATCH] Implement valueSelection (#48116) --- src/vs/workbench/browser/parts/quickinput/quickInput.ts | 4 ++++ src/vs/workbench/browser/parts/quickinput/quickInputBox.ts | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/quickinput/quickInput.ts b/src/vs/workbench/browser/parts/quickinput/quickInput.ts index cbe059709d6..7c99ce4f6fb 100644 --- a/src/vs/workbench/browser/parts/quickinput/quickInput.ts +++ b/src/vs/workbench/browser/parts/quickinput/quickInput.ts @@ -53,6 +53,7 @@ export interface SelectManyParameters export interface TextInputParameters extends BaseInputParameters { readonly type: 'textInput'; readonly value?: string; + readonly valueSelection?: [number, number]; readonly prompt?: string; readonly validateInput?: (input: string) => TPromise; } @@ -124,6 +125,8 @@ class TextInputController implements InputController { this.result.then(() => this.dispose()); ui.inputBox.value = parameters.value || ''; + const selection = parameters.valueSelection; + ui.inputBox.select(selection && { start: selection[0], end: selection[1] }); ui.inputBox.setPlaceholder(parameters.placeHolder || ''); const defaultMessage = parameters.prompt ? localize('inputModeEntryDescription', "{0} (Press 'Enter' to confirm or 'Escape' to cancel)", parameters.prompt) @@ -374,6 +377,7 @@ export class QuickInputService extends Component implements IQuickInputService { return this.show({ type: 'textInput', value: options.value, + valueSelection: options.valueSelection, prompt: options.prompt, placeHolder: options.placeHolder, ignoreFocusLost: options.ignoreFocusLost, diff --git a/src/vs/workbench/browser/parts/quickinput/quickInputBox.ts b/src/vs/workbench/browser/parts/quickinput/quickInputBox.ts index 92e632c5fad..3779d54c057 100644 --- a/src/vs/workbench/browser/parts/quickinput/quickInputBox.ts +++ b/src/vs/workbench/browser/parts/quickinput/quickInputBox.ts @@ -7,7 +7,7 @@ import 'vs/css!./quickInput'; import * as dom from 'vs/base/browser/dom'; -import { InputBox } from 'vs/base/browser/ui/inputbox/inputBox'; +import { InputBox, IRange } from 'vs/base/browser/ui/inputbox/inputBox'; import { localize } from 'vs/nls'; import { inputBackground, inputForeground, inputBorder } from 'vs/platform/theme/common/colorRegistry'; import { ITheme } from 'vs/platform/theme/common/themeService'; @@ -58,6 +58,10 @@ export class QuickInputBox { this.inputBox.value = value; } + select(range: IRange = null): void { + this.inputBox.select(range); + } + setPlaceholder(placeholder: string) { this.inputBox.setPlaceHolder(placeholder); } -- GitLab