将任务列表切换到评论模式

Switch Task List to comments mode

我写了一个 Visual Studio 项目模板,其中包含很多文件。其中一些文件有一些额外的元素需要在模板完成后填写1,所以我用 //TODO - 样式注释标记了它们。

模板执行完毕后,我想通过以 "Comments" 模式显示任务列表(与 "User Tasks" 模式相反,该模式是select从任务列表顶部的下拉菜单中编辑 window)。

项目模板已经有一个向导(基于IWizard)所以我只是想稍微扩展一下向导以添加这一步。

RunStarted 中,我正在抓取 automationObject 并将其转换为 DTE:

_dte = (DTE)automationObject;

然后在 RunFinished 方法中,我调用了我自己的 ShowTaskList 方法:

protected void ShowTaskList()
{
    //Can't use EnvDTE.Constants class here because of embedded interop types
    var wind = _dte.Windows.Item(EnvDTE_Constants_vsWindowKindTaskList);
    wind.Activate();
}

private const string EnvDTE_Constants_vsWindowKindTaskList =
    "{4A9B7E51-AA16-11D0-A8C5-00A0C921A4D2}";

是的,它有效。不幸的是,它默认为任务列表上次显示的任何模式,我相信默认为 "User Tasks"。我真的希望它处于 "Comments" 模式。

我查看了 TaskList 界面和 Window 界面(两者都是 EnvDTE 的一部分),但我只是运气不好,无法找到正确的界面和 method/property 要求它改变模式。

如何扩展我的 ShowTaskList 方法来实现这一点?


1理想情况下,我会收集这些信息作为模板的一部分,但我能找到的方法就是用基本的文本输入来制作看起来相当乏味的表格,而不是在这一点上帮助用户 select 其他 assemblies/types/methods 的方法,所以我决定将它们保留为 //TODOs 然后至少用户可以获得例如的好处智能感知。

有一个命令可以过滤接收过滤器作为命令参数的任务列表。参见:

HOWTO:从 Visual Studio 加载项

添加带导航的筛选任务到任务列表

http://www.visualstudioextensibility.com/articles/add-ins/

您还可以从 DTE 获取本机服务:

HOWTO:从加载项获取 Visual Studio 服务 (同link)

然后使用本机 IVSTaskList 接口,接收类别参数(用户评论、TODO 等)的 AutoFilter 方法:

https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivstasklist.autofilter.aspx