Back button constant (#49340)

This commit is contained in:
Christof Marti
2018-06-18 17:41:38 +02:00
parent 2afaa0d682
commit c361c4a31c
9 changed files with 82 additions and 11 deletions

View File

@@ -455,6 +455,11 @@ export function createApiFactory(
registerProtocolHandler: proposedApiFunction(extension, (handler: vscode.ProtocolHandler) => {
return extHostUrls.registerProtocolHandler(extension.id, handler);
}),
get quickInputBackButton() {
return proposedApiFunction(extension, (): vscode.QuickInputButton => {
return extHostQuickOpen.backButton;
})();
},
createQuickPick: proposedApiFunction(extension, (): vscode.QuickPick => {
return extHostQuickOpen.createQuickPick(extension.id);
}),

View File

@@ -16,6 +16,8 @@ import { ExtHostQuickOpenShape, IMainContext, MainContext, MainThreadQuickOpenSh
import URI from 'vs/base/common/uri';
import { ThemeIcon } from 'vs/workbench/api/node/extHostTypes';
const backButton: QuickInputButton = { iconPath: 'back.svg' };
export type Item = string | QuickPickItem;
export class ExtHostQuickOpen implements ExtHostQuickOpenShape {
@@ -151,6 +153,8 @@ export class ExtHostQuickOpen implements ExtHostQuickOpenShape {
// ---- QuickInput
backButton = backButton;
createQuickPick(extensionId: string): QuickPick {
const session = new ExtHostQuickPick(this._proxy, extensionId, () => this._sessions.delete(session._id));
this._sessions.set(session._id, session);
@@ -324,13 +328,14 @@ class ExtHostQuickInput implements QuickInput {
this._buttons = buttons;
this._handlesToButtons.clear();
buttons.forEach((button, i) => {
this._handlesToButtons.set(i, button);
const handle = button === backButton ? -1 : i;
this._handlesToButtons.set(handle, button);
});
this.update({
buttons: buttons.map<TransferQuickInputButton>((button, i) => ({
iconPath: getIconUris(button.iconPath),
tooltip: button.tooltip,
handle: i,
handle: button === backButton ? -1 : i,
}))
});
}