diff --git a/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioBaseDiagnosticListTable.LiveTableDataSource.cs b/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioBaseDiagnosticListTable.LiveTableDataSource.cs index 65451bcdef136..adf319e05b04d 100644 --- a/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioBaseDiagnosticListTable.LiveTableDataSource.cs +++ b/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioBaseDiagnosticListTable.LiveTableDataSource.cs @@ -287,6 +287,9 @@ public override bool TryGetValue(int index, string columnName, out object conten case StandardTableKeyNames.ErrorCodeToolTip: content = GetHelpLinkToolTipText(data); return content != null; + case StandardTableKeyNames.HelpKeyword: + content = data.Id; + return content != null; case StandardTableKeyNames.HelpLink: content = GetHelpLink(data); return content != null; diff --git a/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioDiagnosticListTable.BuildTableDataSource.cs b/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioDiagnosticListTable.BuildTableDataSource.cs index 32ac4ea10fb92..0c3626dcfd5e8 100644 --- a/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioDiagnosticListTable.BuildTableDataSource.cs +++ b/src/VisualStudio/Core/Def/Implementation/TableDataSource/VisualStudioDiagnosticListTable.BuildTableDataSource.cs @@ -193,6 +193,9 @@ public override bool TryGetValue(int index, string columnName, out object conten case StandardTableKeyNames.ErrorCodeToolTip: content = GetHelpLinkToolTipText(data); return content != null; + case StandardTableKeyNames.HelpKeyword: + content = data.Id; + return content != null; case StandardTableKeyNames.HelpLink: content = GetHelpLink(data); return content != null; diff --git a/src/VisualStudio/Core/Test/Diagnostics/DiagnosticTableDataSourceTests.vb b/src/VisualStudio/Core/Test/Diagnostics/DiagnosticTableDataSourceTests.vb index f265f081c7053..5fce7a00852f0 100644 --- a/src/VisualStudio/Core/Test/Diagnostics/DiagnosticTableDataSourceTests.vb +++ b/src/VisualStudio/Core/Test/Diagnostics/DiagnosticTableDataSourceTests.vb @@ -434,6 +434,35 @@ Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.Diagnostics End Using End Sub + + Public Sub TestHelpKeyword() + Using workspace = CSharpWorkspaceFactory.CreateWorkspaceFromLines(String.Empty) + Dim documentId = workspace.CurrentSolution.Projects.First().DocumentIds.First() + Dim projectId = documentId.ProjectId + + Dim item1 = CreateItem(workspace, projectId, documentId, DiagnosticSeverity.Error, "http://link/") + Dim provider = New TestDiagnosticService(item1) + + Dim tableManagerProvider = New TestTableManagerProvider() + + Dim table = New VisualStudioDiagnosticListTable(workspace, provider, tableManagerProvider) + provider.RaiseDiagnosticsUpdated(workspace) + + Dim manager = DirectCast(table.TableManager, TestTableManagerProvider.TestTableManager) + Dim source = DirectCast(manager.Sources.First(), AbstractRoslynTableDataSource(Of DiagnosticData)) + Dim sinkAndSubscription = manager.Sinks_TestOnly.First() + + Dim sink = DirectCast(sinkAndSubscription.Key, TestTableManagerProvider.TestTableManager.TestSink) + Dim snapshot = sink.Entries.First().GetCurrentSnapshot() + Assert.Equal(1, snapshot.Count) + + Dim keyword As Object = Nothing + Assert.True(snapshot.TryGetValue(0, StandardTableKeyNames.HelpKeyword, keyword)) + + Assert.Equal(item1.Id, keyword.ToString()) + End Using + End Sub + Public Sub TestBingHelpLink() Using workspace = CSharpWorkspaceFactory.CreateWorkspaceFromLines(String.Empty)