VS2015扩展 - 获取错误列表中的选定项目

时间:2016-08-08 08:37:32

标签: visual-studio-2015 vs-extensibility

我正在尝试为Visual Studio 2015制作一个扩展程序,该扩展程序取决于错误列表视图中的所选项目。

我正在使用以下代码检索列表:

#!/bin/bash
dataFile=$1
varFile=$2
line=$(awk -F = '{print $2}' $varFile | tr '\n' ' ')
awk -v variables="${line}" '{print variables "extrastring " $0 }' $dataFile


user@host:/tmp$ cat dataFile 
string1 43245 7.45
string2 23452 9.34
string3 23652 2.57

user@host:/tmp$ cat varFile 
i = x01
j = y01

user@host:/tmp$ ./test.sh dataFile varFile 
 x01  y01 extrastring string1 43245 7.45
 x01  y01 extrastring string2 23452 9.34
 x01  y01 extrastring string3 23652 2.57

但我现在的问题是我能够获得描述(文本)而不是错误代码(HelpKeyword)。 我的描述是这样的:

var errorList = this.dte2.ToolWindows.ErrorList as IVsTaskList2;
IVsEnumTaskItems items;
errorList.EnumSelectedItems(out items);

希望有人可以帮助我,因为我现在很沮丧。

1 个答案:

答案 0 :(得分:4)

我能够使用完全不同的方法来实现这一目标:

            var errorList = dte.ToolWindows.ErrorList as IErrorList;
            var selected = errorList.TableControl.SelectedEntry;
            if (selected != null)
            {
                object content;
                if (selected.TryGetValue("errorcode", out content))
                {
                    return (string)content;
                }
            }   

这会将错误窗口所选项目作为一个表格访问,只获取正确的列(文本列中包含键"文本",BTW)。

要弄明白这一点当然不容易。感谢Microsoft:1)几乎完全没有任何这些东西的文档,2)完全破坏在VS2013中工作的接口,3)不仅仅是将代码添加为ErrorItem的属性。