我正在尝试为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);
希望有人可以帮助我,因为我现在很沮丧。
答案 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的属性。