作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在较新版本的 VSCode 中,我可以为我在 tasks.json
中定义的任何任务创建绑定(bind)。例如,下面的 3 个任务
{
"version": "2.0.0",
"tasks": [
{
"label": "Clean",
"type": "shell",
"command": "clean.cmd",
"problemMatcher": []
},
{
"label": "Build",
"type": "shell",
"command": "build.cmd",
"problemMatcher": [],
"group": { "kind": "build", "isDefault": true }
},
{
"label": "Flash",
"type": "shell",
"command": "flash.cmd",
"problemMatcher": []
}
]
}
我可以创建键绑定(bind)
[
{
"key": "alt+f9",
"command": "workbench.action.tasks.runTask",
"args": "Clean"
},
{
"key": "ctrl+f9",
"command": "workbench.action.tasks.build"
},
{
"key": "f9",
"command": "workbench.action.tasks.runTask",
"args": "Flash"
}
]
一切都按预期进行。我正在尝试使用 VSCode API 从扩展(例如 Script Commands)中做同样的事情,但它仅适用于 build
和 test
任务。
打电话
vscode.commands.executeCommand("workbench.action.tasks.build")
有效但是
vscode.commands.executeCommand("workbench.action.tasks.runTask", ["Clean"])
打开任务选择列表。
除了 build
和 test
之外,我如何使用 JavaScript 代码直接开始其他任务?
最佳答案
您的任务配置文件看起来很旧。如果您使用的是新版本的 Visual Studio Code,则应进行升级。
我认为 api 期望任务有一个“标签”字段。
https://code.visualstudio.com/docs/editor/tasks#_convert-from-010-to-200
所以 intsead:
{
"taskName": "Clean",
"type": "shell",
"command": "clean.cmd",
"problemMatcher": []
},
应该是:
{
"label": "Clean",
"type": "shell",
"command": "clean.cmd",
"problemMatcher": []
},
更新:尝试只用字符串调用它,而不是像这样将它包装在数组中:
vscode.commands.executeCommand("workbench.action.tasks.runTask", "Clean")
关于visual-studio-code - VS代码: How can I execute an arbitrary task using the JavaScript API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46768080/
我是一名优秀的程序员,十分优秀!