visual-studio-code - 如何将始终可见的“查看操作”按钮添加到视图?
问题描述
我正在编写一个 vs 代码扩展来在侧边栏中的内置视图中创建始终可见的按钮,但我无法将其中一些放置在视图容器的顶部。还有一些视图我只能在视图未折叠时才显示它们,而有些视图根本不会出现!
自定义视图容器中的自定义视图按预期工作,但我在内置容器中花了很多时间进行某些活动。
以下是每个示例(请参见下面的代码片段)...
活动栏上的“扩展”在“启用”和“推荐”视图上正确显示了我的 HelloWorld 按钮。
如何在“清除扩展输入”按钮旁边的容器顶部添加按钮?
在“调试”容器中,我可以添加到调试/工具栏,但工具栏仅在调试时出现。
如何添加到侧边栏顶部的“运行”行?
为什么“变量”(和其他)视图中不显示 HelloWorld 按钮 - 即使它们已打开以便显示内置图标?
Debug 容器中的自定义视图似乎只在打开时显示它的按钮。
如何让它始终可见?
同样,资源管理器容器中的“未打开文件夹”和自定义视图似乎只在打开和悬停时显示按钮。一旦你打开一个文件夹,HelloWorld 按钮就根本不会出现。“打开的编辑器”从不显示 HelloWorld。
参考
我主要是用这些作为参考...
- https://code.visualstudio.com/docs/getstarted/userinterface
- https://code.visualstudio.com/api/references/contribution-points
- https://code.visualstudio.com/api/extension-guides/tree-view
测试代码和设置
我添加了这些设置来尝试强制显示操作,但是当树视图折叠时它似乎没有帮助:
"workbench.view.alwaysShowHeaderActions": true
"scm.alwaysShowActions": true
我一直在使用由yo code
(接受所有默认值)生成的基本 HelloWorld 进行测试,并将“贡献”部分替换为:
"contributes": {
"commands": [
{
"command": "hello1.helloWorld",
"title": "Hello World 1",
"icon": "resources/HelloWorld.svg"
},
{
"command": "hello1.helloWorld2",
"title": "Hello World 2",
"icon": "resources/HelloWorld2.svg"
}
],
"views": {
"debug": [
{
"id": "HelloWorldD",
"name": "HelloWorldD"
}
],
"explorer": [
{
"id": "HelloWorldE",
"name": "HelloWorldE"
}
]
},
"menus": {
"view/title": [
{
"command": "hello1.helloWorld",
"group": "navigation"
},
{
"command": "hello1.helloWorld2"
}
]
}
}
我尝试了其他各种贡献点,但如果我能弄清楚它是如何工作的,那么“菜单 - 视图/标题”似乎是正确的。
背景:
当我不主动编码时,我试图避免使用键盘,所以我希望在不同的地方都有按钮来完成手头的任务。我有各种软件和硬件来协助完成常见的 PC 活动,但我依靠应用程序中的按钮来执行特定于该应用程序的活动。
我探索过的替代方案:
代码中没有“主”工具栏。
状态栏离动作太远 - 编辑器/标题工具栏也是如此。
两者似乎都不是可重定位的,而且无论如何它们都已经从各种内部和工具相关的按钮中溢出。
似乎没有办法创建浮动工具栏。
内置调试栏看起来很有希望,但我不知道如何让它始终出现,而且它在浮动时奇怪地限制在应用程序的前两“行”(它必须阻止其他 UI 元素)。
我认为 Code 是一个 java/浏览器应用程序,会有一些方法可以通过代码向上导航 UI/树并插入元素 - 但这是锁定的。
我玩弄了一个 webview 来按住一些按钮,但它看起来很慢,看起来很笨拙并且占用了大量的屏幕空间。如果侧边栏在我需要按钮时无法显示按钮,我会进一步研究。
Monkey 修补 exe 以运行任意 JS 是最后的手段,因为它非常 hacky,并且很难在我们的环境中获得授权(这不是 90 年代!)。我什至不确定 js 是否可以向工作台添加额外的按钮?
我可以尝试其他任何想法吗?
解决方案
一直在寻找自己添加此功能。不幸的是,api似乎还不支持它:https ://github.com/microsoft/vscode-extension-samples/issues/285 。
推荐阅读
- makefile - Makefile 动态变量作为先决条件
- c# - 停用组合框中的 SelectionChanged
- python - 将用户重定向到登录时的单独页面
- azure-devops - 如何在服务器(Windows 操作系统)上重新配置 Azure DevOps 代理?
- python - 如何在 python 上使用 pytesseract 阅读其他语言?
- python-3.x - 为什么我在 python3.7.3 上运行时会收到 opencv2 的 ImportError?
- javascript - 如何解决点 .01 返回 0 的两位小数问题
- datetime - 如何通过 SSIS 连接来自 excel 源的日期和时间字段
- powershell - 在线查找/获取文本文件中 url 的标题并保存到同一个文件
- java - javax.security.sasl.SaslException:GSS 启动失败