mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 02:48:30 -05:00
* Kusto extension * Add kusto to extensions.ts * Remove objectExplorerNodeProvider * Removed some BDC items + CR cleanup * Cleanup unused strings in package.nls.json * Remove unused svgs, and some cleanup * Bringing objectExplorerNode back and hygiene changes * rename to KustoObjectExplorerNodeProvider * rename to KustoIconProvider * Cleanup SQL code * Fix compilation error * Clean up in objectExplorerNodeProvider folder * Some more clean up based on comments * apiWrapper add * changed to camelCase * Remove unused functions/files * Removed AgentServicesFeature * dacfx, cms, schemacompare clean up * Clean up and addressed few comments * Remove apWrapper from kusto extension * Addressed few comments * credentialstore and escapeexception changes * Added strict check for Kusto extension * Fix error and addressed comment * Saving Kusto files shoulf default to .kql * package.json changes * Fix objectExplorerNodeProvider * Amir/kusto fix (#11972) * Add the compiled extensions.js * Fix strict compile rules Co-authored-by: Monica Gupta <mogupt@microsoft.com> Co-authored-by: Amir Omidi <amomidi@microsoft.com>
74 lines
2.9 KiB
TypeScript
74 lines
2.9 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
// TODO: Common file with mssql
|
|
import vscode = require('vscode');
|
|
|
|
export class QuestionTypes {
|
|
public static get input(): string { return 'input'; }
|
|
public static get password(): string { return 'password'; }
|
|
public static get list(): string { return 'list'; }
|
|
public static get confirm(): string { return 'confirm'; }
|
|
public static get checkbox(): string { return 'checkbox'; }
|
|
public static get expand(): string { return 'expand'; }
|
|
}
|
|
|
|
// Question interface to clarify how to use the prompt feature
|
|
// based on Bower Question format: https://github.com/bower/bower/blob/89069784bb46bfd6639b4a75e98a0d7399a8c2cb/packages/bower-logger/README.md
|
|
export interface IQuestion {
|
|
// Type of question (see QuestionTypes)
|
|
type: string;
|
|
// Name of the question for disambiguation
|
|
name: string;
|
|
// Message to display to the user
|
|
message: string;
|
|
// Optional placeHolder to give more detailed information to the user
|
|
placeHolder?: any;
|
|
// Optional default value - this will be used instead of placeHolder
|
|
default?: any;
|
|
// optional set of choices to be used. Can be QuickPickItems or a simple name-value pair
|
|
choices?: Array<vscode.QuickPickItem | INameValueChoice>;
|
|
// Optional validation function that returns an error string if validation fails
|
|
validate?: (value: any) => string;
|
|
// Optional pre-prompt function. Takes in set of answers so far, and returns true if prompt should occur
|
|
shouldPrompt?: (answers: { [id: string]: any }) => boolean;
|
|
// Optional action to take on the question being answered
|
|
onAnswered?: (value: any) => void;
|
|
// Optional set of options to support matching choices.
|
|
matchOptions?: vscode.QuickPickOptions;
|
|
}
|
|
|
|
// Pair used to display simple choices to the user
|
|
export interface INameValueChoice {
|
|
name: string;
|
|
value: any;
|
|
}
|
|
|
|
// Generic object that can be used to define a set of questions and handle the result
|
|
export interface IQuestionHandler {
|
|
// Set of questions to be answered
|
|
questions: IQuestion[];
|
|
// Optional callback, since questions may handle themselves
|
|
callback?: IPromptCallback;
|
|
}
|
|
|
|
export type Answers<T> = { [key: string]: T };
|
|
|
|
export interface IPrompter {
|
|
promptSingle<T>(question: IQuestion, ignoreFocusOut?: boolean): Promise<T | undefined>;
|
|
/**
|
|
* Prompts for multiple questions
|
|
*
|
|
* @returns Map of question IDs to results, or undefined if
|
|
* the user canceled the question session
|
|
*/
|
|
prompt<T>(questions: IQuestion[], ignoreFocusOut?: boolean): Promise<Answers<T> | undefined>;
|
|
promptCallback(questions: IQuestion[], callback: IPromptCallback): void;
|
|
}
|
|
|
|
export interface IPromptCallback {
|
|
(answers: { [id: string]: any }): void;
|
|
}
|