gpt4 book ai didi

javascript - VSCode 扩展直接使用多步输入

转载 作者:行者123 更新时间:2023-12-04 09:41:47 34 4
gpt4 key购买 nike

我想直接使用多步输入,例如用户选择
F1 - 并开始选择项目的步骤。

目前我找到了以下示例,并删除了 quickOpen 和基本输入

https://github.com/microsoft/vscode-extension-samples/blob/master/quickinput-sample/src/extension.ts

import { window, commands, ExtensionContext } from 'vscode';
import { multiStepInput } from './multiStepInput';

export function activate(context: ExtensionContext) {
context.subscriptions.push(commands.registerCommand('samples.quickInput', async () => {
const options: { [key: string]: (context: ExtensionContext) => Promise<void> } = {
multiStepInput,
};
const quickPick = window.createQuickPick();
quickPick.items = Object.keys(options).map(label => ({ label }));
quickPick.onDidChangeSelection(selection => {
if (selection[0]) {
options[selection[0].label](context)
.catch(console.error);
}
});
quickPick.onDidHide(() => quickPick.dispose());
quickPick.show();
}));
}

但是,当我开始扩展时,我迈出了第一步 多步输入入门选择,我要 避免它并直接从选择资源组的选项开始,(来自示例)
我该怎么做?
当用户应该选择以下时,我无法省略第一个(虚拟)步骤,
    showQuickPick,
showInputBox,
multiStepInput,
quickOpen,

因为我直接想明确使用 多步输入不要求选它

https://github.com/microsoft/vscode-extension-samples/blob/master/quickinput-sample/src/multiStepInput.ts#L24

我不想从这个开始

enter image description here

我要从这个开始当用户使用 F1

enter image description here

最佳答案

目前第一时间选项是[multiStepInput]

const options = { multiStepInput }

如果您不想显示该步骤,请设置 options作为您真正想要的选项
类型 QuickPickItem )

类似的东西:
commands.registerCommand('samples.quickInput', async () => {
const options = ['vscode-data-function', 'vscode-appservice-microservices', 'vscode-appservice-monitor', 'vscode-appservice-preview', 'vscode-appservice-prod'].map(label => ({label}));
const quickPick = window.createQuickPick();
quickPick.items = options;
quickPick.onDidChangeSelection(([{label}]) => {
window.showInformationMessage(label);
quickPick.hide();
});
quickPick.show();
})

Screen Record

更新
如果您只想跳过第一个快速输入并启动 multiStepInput立即,您可以删除命令处理程序中的所有其余代码,然后使用它
context.subscriptions.push(commands.registerCommand('samples.quickInput', async () => {
multiStepInput(context);
}));

这相当于
options[selection[0].label](context)

因为 options[selection[0].label]multiStepInputmultiStepInput被选中。

关于javascript - VSCode 扩展直接使用多步输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62298858/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com