Skip to content
This repository was archived by the owner on Apr 6, 2024. It is now read-only.

Commit 76cfda5

Browse files
committed
(GH-135) Add IDE integration with Visual Studio using TeamCity addin
1 parent 59eb1be commit 76cfda5

File tree

3 files changed

+51
-1
lines changed

3 files changed

+51
-1
lines changed

src/Cake.Issues.Reporting.Generic.Tests/IdeIntegrationSettingsTests.cs

+16-1
Original file line numberDiff line numberDiff line change
@@ -158,5 +158,20 @@ public void Should_Replace_Line_Token()
158158
result.ShouldBe("FoolineBar");
159159
}
160160
}
161+
162+
public sealed class TheForVisualStudioUsingTeamCityAddinMethod
163+
{
164+
[Fact]
165+
public void Should_Return_Settings()
166+
{
167+
// Given
168+
169+
// When
170+
var settings = IdeIntegrationSettings.ForVisualStudioUsingTeamCityAddin();
171+
172+
// Then
173+
settings.ShouldNotBeNull();
174+
}
175+
}
161176
}
162-
}
177+
}

src/Cake.Issues.Reporting.Generic/GenericIssueReportFormatAliases.cs

+15
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,21 @@ public static FileLinkSettings GenericIssueReportFileLinkSettingsForTeamFoundati
107107
return FileLinkSettings.TeamFoundationServer(repositoryUrl, branch, rootPath);
108108
}
109109

110+
/// <summary>
111+
/// Gets an instance of the IDE integration settings for opening files in Visual Studio using the TeamCity addin.
112+
/// </summary>
113+
/// <param name="context">The context.</param>
114+
/// <returns>IDE integration settings.</returns>
115+
[CakeMethodAlias]
116+
[CakeAliasCategory(ReportingAliasConstants.ReportingFormatCakeAliasCategory)]
117+
public static IdeIntegrationSettings GenericIssueReportIdeIntegrationSettingsForVisualStudioUsingTeamCityAddin(
118+
this ICakeContext context)
119+
{
120+
context.NotNull(nameof(context));
121+
122+
return IdeIntegrationSettings.ForVisualStudioUsingTeamCityAddin();
123+
}
124+
110125
/// <summary>
111126
/// Gets an instance of a the generic report format using an embedded template.
112127
/// </summary>

src/Cake.Issues.Reporting.Generic/IdeIntegrationSettings.cs

+20
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,26 @@ public class IdeIntegrationSettings
2222
/// </summary>
2323
public string MenuEntryText { get; set; } = "Open in IDE";
2424

25+
/// <summary>
26+
/// Returns settings for integrating with Visual Studio using the TeamCity addin.
27+
/// </summary>
28+
/// <returns>Settings for integrating with Visual Studio using the TeamCity addin.</returns>
29+
public static IdeIntegrationSettings ForVisualStudioUsingTeamCityAddin()
30+
{
31+
return new IdeIntegrationSettings()
32+
{
33+
MenuEntryText = "Open in Visual Studio",
34+
JavaScript =
35+
@"function sendHttpGetRequest(filePath, lineNumber) {
36+
var url = 'http://127.0.0.1:63330/file?file=' + filePath + '&line=' + lineNumber;
37+
var xmlHttp = new XMLHttpRequest();
38+
xmlHttp.open('GET', url, false);
39+
xmlHttp.send(null);
40+
}",
41+
OpenInIdeCall = "sendHttpGetRequest({FilePath}, {Line});"
42+
};
43+
}
44+
2545
/// <summary>
2646
/// Returns the JavaScript which should be called to open the file affected by an issue in an IDE
2747
/// with all patterns of <see cref="OpenInIdeCall"/> replaced.

0 commit comments

Comments
 (0)