Skip to content

Commit

Permalink
Merge pull request #1059 from JoeRobich/support-slnf
Browse files Browse the repository at this point in the history
Allow Solution Filter files to be passed as the workspace path
  • Loading branch information
JoeRobich committed Mar 23, 2021
2 parents 30edabd + 89a4bb0 commit 564a3d6
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 5 deletions.
5 changes: 3 additions & 2 deletions src/MSBuild/MSBuildWorkspaceFinder.cs
Expand Up @@ -60,7 +60,7 @@ public static (bool isSolution, string workspacePath) FindWorkspace(string searc
private static (bool isSolution, string workspacePath) FindFile(string workspacePath)
{
var workspaceExtension = Path.GetExtension(workspacePath);
var isSolution = workspaceExtension.Equals(".sln", StringComparison.OrdinalIgnoreCase);
var isSolution = workspaceExtension.Equals(".sln", StringComparison.OrdinalIgnoreCase) || workspaceExtension.Equals(".slnf", StringComparison.OrdinalIgnoreCase);
var isProject = !isSolution
&& workspaceExtension.EndsWith("proj", StringComparison.OrdinalIgnoreCase)
&& !workspaceExtension.Equals(DnxProjectExtension, StringComparison.OrdinalIgnoreCase);
Expand All @@ -81,7 +81,8 @@ private static (bool isSolution, string workspacePath) FindFile(string workspace
return (isSolution, workspacePath);
}

private static IEnumerable<string> FindSolutionFiles(string basePath) => Directory.EnumerateFileSystemEntries(basePath, "*.sln", SearchOption.TopDirectoryOnly);
private static IEnumerable<string> FindSolutionFiles(string basePath) => Directory.EnumerateFileSystemEntries(basePath, "*.sln", SearchOption.TopDirectoryOnly)
.Concat(Directory.EnumerateFileSystemEntries(basePath, "*.slnf", SearchOption.TopDirectoryOnly));

private static IEnumerable<string> FindProjectFiles(string basePath) => Directory.EnumerateFileSystemEntries(basePath, "*.*proj", SearchOption.TopDirectoryOnly)
.Where(f => !DnxProjectExtension.Equals(Path.GetExtension(f), StringComparison.OrdinalIgnoreCase));
Expand Down
26 changes: 23 additions & 3 deletions tests/CodeFormatterTests.cs
Expand Up @@ -36,6 +36,8 @@ public class CodeFormatterTests
private static readonly string s_codeStyleSolutionPath = Path.Combine("for_code_formatter", "codestyle_solution");
private static readonly string s_codeStyleSolutionFilePath = Path.Combine(s_codeStyleSolutionPath, "codestyle_solution.sln");

private static readonly string s_codeStyleSolutionFilterFilePath = Path.Combine(s_codeStyleSolutionPath, "codestyle_solution_filter.slnf");

private static readonly string s_analyzersSolutionPath = Path.Combine("for_code_formatter", "analyzers_solution");
private static readonly string s_analyzersSolutionFilePath = Path.Combine(s_analyzersSolutionPath, "analyzers_solution.sln");

Expand Down Expand Up @@ -455,6 +457,24 @@ public async Task FilesFormattedInCodeStyleSolution_WhenFixingCodeStyleWarnings(
codeStyleSeverity: DiagnosticSeverity.Warning);
}

[MSBuildFact]
public async Task FilesFormattedInCodeStyleSolutionFilter_WhenFixingCodeStyleWarnings()
{
var restoreExitCode = await NuGetHelper.PerformRestore(s_codeStyleSolutionFilterFilePath, _output);
Assert.Equal(0, restoreExitCode);

await TestFormatWorkspaceAsync(
s_codeStyleSolutionFilterFilePath,
include: EmptyFilesList,
exclude: EmptyFilesList,
includeGenerated: false,
expectedExitCode: 0,
expectedFilesFormatted: 1,
expectedFileCount: 3,
fixCategory: FixCategory.Whitespace | FixCategory.CodeStyle,
codeStyleSeverity: DiagnosticSeverity.Warning);
}

[MSBuildFact]
public async Task NoFilesFormattedInAnalyzersSolution_WhenNotFixingAnalyzers()
{
Expand Down Expand Up @@ -510,9 +530,9 @@ public async Task FilesFormattedInAnalyzersSolution_WhenFixingAnalyzerErrors()
}
else
{
workspaceType = workspacePath.EndsWith(".sln")
? WorkspaceType.Solution
: WorkspaceType.Project;
workspaceType = workspacePath.EndsWith("proj")
? WorkspaceType.Project
: WorkspaceType.Solution;
}

var logger = new TestLogger();
Expand Down
@@ -0,0 +1,8 @@
{
"solution": {
"path": "codestyle_solution.sln",
"projects": [
".\\library\\library.csproj"
]
}
}

0 comments on commit 564a3d6

Please sign in to comment.