2016-09-14 150 views

回答

7

您不能创建新的UI元素,但如果你想从用户那里得到输入,你可以使用类似的代码如下:

let options: InputBoxOptions = { 
    prompt: "Label: ", 
    placeHolder: "(placeholder)" 
} 

window.showInputBox(options).then(value => { 
    if (!value) return; 
    answer1 = value; 
    // show the next dialog, etc. 
}); 

这将使用相同的用户界面的命令面板(当您按CTRL + p或任何打开顶部输入框的其他命令)。

+0

这在2017年仍然如此吗?另外我想知道是否有提及vscode的“UI策略”,或者他们在讨论为什么这还不是api的一部分,或者他们是否计划在未来实现它? –

+1

是的,这仍然是事实。你可以在这里阅读这个决定背后的原则:https://code.visualstudio.com/docs/extensionAPI/patterns-and-principles – Llewey

+1

“我们不提供对扩展编写者的底层UI DOM的直接访问。使用VS Code,我们不断尝试优化底层网络技术的使用......并且随着这些技术和产品的发展,我们将继续调整对DOM的使用......我们在自己的主机进程中运行扩展,并阻止直接访问DOM。VS Code还包含一组用于常见场景(例如IntelliSense)的内置UI组件,以便这些体验在各种编程语言和扩展中保持一致,并且扩展开发人员不需要自行构建。“ – Llewey