未验证 提交 793fe93b 编写于 作者: S Sam Harwell 提交者: GitHub

Merge pull request #32375 from sharwell/fix-errorlist-test

Avoid navigating to message severity items unless requested
......@@ -51,7 +51,8 @@ static void Main(string[] args)
};
var actualContents = VisualStudio.ErrorList.GetErrorListContents();
Assert.Equal(expectedContents, actualContents);
VisualStudio.ErrorList.NavigateToErrorListItem(0);
var target = VisualStudio.ErrorList.NavigateToErrorListItem(0);
Assert.Equal(expectedContents[0], target);
VisualStudio.Editor.Verify.CaretPosition(25);
VisualStudio.SolutionExplorer.BuildSolution(waitForBuildToFinish: true);
VisualStudio.ErrorList.ShowErrorList();
......
......@@ -30,15 +30,20 @@ public void WaitForNoErrorsInErrorList()
}
}
public void NavigateToErrorListItem(int itemIndex)
public ErrorListItem NavigateToErrorListItem(int itemIndex, __VSERRORCATEGORY minimumSeverity = __VSERRORCATEGORY.EC_WARNING)
{
var errorItems = GetErrorItems().AsEnumerable().ToArray();
var errorItems = GetErrorItems()
.AsEnumerable()
.Where(e => ((IVsErrorItem)e).GetCategory() <= minimumSeverity)
.ToArray();
if (itemIndex > errorItems.Count())
{
throw new ArgumentException($"Cannot Navigate to Item '{itemIndex}', Total Items found '{errorItems.Count()}'.");
}
ErrorHandler.ThrowOnFailure(errorItems.ElementAt(itemIndex).NavigateTo());
var item = errorItems.ElementAt(itemIndex);
ErrorHandler.ThrowOnFailure(item.NavigateTo());
return new ErrorListItem(item.GetSeverity(), item.GetDescription(), item.GetProject(), item.GetFileName(), item.GetLine(), item.GetColumn());
}
public int GetErrorCount(__VSERRORCATEGORY minimumSeverity = __VSERRORCATEGORY.EC_WARNING)
......
......@@ -46,13 +46,13 @@ public ErrorListItem[] GetErrorListContents()
return _inProc.GetErrorListContents();
}
public void NavigateToErrorListItem(int itemIndex)
public ErrorListItem NavigateToErrorListItem(int itemIndex)
{
_instance.Workspace.WaitForAsyncOperations(FeatureAttribute.SolutionCrawler);
_instance.Workspace.WaitForAsyncOperations(FeatureAttribute.DiagnosticService);
_instance.Workspace.WaitForAsyncOperations(FeatureAttribute.ErrorSquiggles);
_instance.Workspace.WaitForAsyncOperations(FeatureAttribute.ErrorList);
_inProc.NavigateToErrorListItem(itemIndex);
return _inProc.NavigateToErrorListItem(itemIndex);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册