/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ 'use strict'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { TPromise } from 'vs/base/common/winjs.base'; import { CancellationToken } from 'vs/base/common/cancellation'; import { ResolvedKeybinding } from 'vs/base/common/keyCodes'; export interface IPickOpenEntry { id?: string; label: string; description?: string; detail?: string; picked?: boolean; } export interface IQuickNavigateConfiguration { keybindings: ResolvedKeybinding[]; } export interface IPickOptions { /** * an optional string to show as place holder in the input box to guide the user what she picks on */ placeHolder?: string; /** * an optional flag to include the description when filtering the picks */ matchOnDescription?: boolean; /** * an optional flag to include the detail when filtering the picks */ matchOnDetail?: boolean; /** * an optional flag to not close the picker on focus lost */ ignoreFocusLost?: boolean; /** * an optional flag to make this picker multi-select */ canPickMany?: boolean; } export interface IInputOptions { /** * the value to prefill in the input box */ value?: string; /** * the selection of value, default to the whole word */ valueSelection?: [number, number]; /** * the text to display underneath the input box */ prompt?: string; /** * an optional string to show as place holder in the input box to guide the user what to type */ placeHolder?: string; /** * set to true to show a password prompt that will not show the typed value */ password?: boolean; ignoreFocusLost?: boolean; /** * an optional function that is used to validate user input. */ validateInput?: (input: string) => TPromise; } export interface IQuickInput { /** * Opens the quick input box for selecting items and returns a promise with the user selected item(s) if any. */ pick(picks: TPromise, options?: O, token?: CancellationToken): TPromise; /** * Opens the quick input box for text input and returns a promise with the user typed value if any. */ input(options?: IInputOptions, token?: CancellationToken): TPromise; } export const IQuickInputService = createDecorator('quickInputService'); export interface IQuickInputService extends IQuickInput { _serviceBrand: any; multiStepInput(handler: (input: IQuickInput, token: CancellationToken) => Thenable, token?: CancellationToken): Thenable; focus(): void; toggle(): void; navigate(next: boolean, quickNavigate?: IQuickNavigateConfiguration): void; accept(): TPromise; cancel(): TPromise; }