PowerShell / PowerShell/PowerShellEditorServices
Add task provider APIs
还没有人认领这个 Issue。
- 主要语言
- C#
- 星标
- 767
- 派生
- 266
- 平均合并
- 3 天 16 小时
- 30 天内合并 PR
- 1
描述
VS Code 1.14 includes a new task provider concept which allows extensions to dynamcially register tasks that show up in the "Tasks: Run Task" menu. I think this would be really useful for the following scenarios:
- Generating tasks from psake or Invoke-Build scripts (@nightroman)
- Generating tasks for Pester tests if any are detected in the project
- Generating tasks for PSGallery operations (publish, etc)
However, I think that generating tasks from build scripts is probably what people would be doing 99% of the time.
@nightroman, I'd love to work with you to get Invoke-Build hooked up with this for the next PowerShell extension update. Here's what I'm thinking:
-
Editor Services will provide new cmdlets for registering "editor tasks" with a syntax like this:
Register-EditorTask -Name "Build" -Source "Invoke-Build" -Command "Invoke-Build .\build.ps1 Build" -
Invoke-Build will provide a new command (very similar to New-VSCodeTask.ps1) which will check for the existence of Register-EditorTask (or PSES being loaded) and then register all available tasks in the editor using the aforementioned command
-
The user will create a workspace profile which will invoke your command on their build script so that the build tasks are auto-registered when they load the project in VS Code.
How does that sound? Can you see any problems with this approach? Any better ideas?
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先阅读链接的 VS Code 1.14 task provider 文档,以及 issue 中提到的现有 New-VSCodeTask.ps1 方法。提案还引用了 Register-EditorTask 和 workspace profiles,但没有确定任何实现文件或测试。要视为完成,需要达成一致的 API,以及一个用于从构建脚本和其他 provider 注册 task 的具体实现计划。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- powershell, vscode
- 领域
- api, developer-experience, tooling
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 20/100