private CommandResult ExecuteFile(string path) { string extension = Path.GetExtension(path); //if (string.Equals(extension, ".csproj", StringComparison.OrdinalIgnoreCase) // || string.Equals(extension, ".props", StringComparison.OrdinalIgnoreCase)) //{ // if (!GeneratedCodeUtility.IsGeneratedCodeFile(path)) // return ExecuteProject(path); //} if (string.Equals(extension, ".ruleset", StringComparison.OrdinalIgnoreCase)) { if (!GeneratedCodeUtility.IsGeneratedCodeFile(path)) { return(ExecuteRuleSet(path)); } } else { string fileName = Path.GetFileName(path); if (string.Equals(fileName, ".editorconfig", StringComparison.OrdinalIgnoreCase) && !GeneratedCodeUtility.IsGeneratedCodeFile(path)) { return(ExecuteEditorConfig(path)); } } WriteLine(path, Verbosity.Diagnostic); return(CommandResult.NotSuccess); }
public static async Task <Project> FormatProjectAsync( Project project, ISyntaxFactsService syntaxFacts, CodeFormatterOptions options, CancellationToken cancellationToken = default) { if (options == null) { options = CodeFormatterOptions.Default; } foreach (DocumentId documentId in project.DocumentIds) { Document document = project.GetDocument(documentId); if (options.IncludeGeneratedCode || !GeneratedCodeUtility.IsGeneratedCodeFile(document.FilePath)) { SyntaxNode root = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false); if (options.IncludeGeneratedCode || !syntaxFacts.BeginsWithAutoGeneratedComment(root)) { DocumentOptionSet optionSet = await document.GetOptionsAsync(cancellationToken).ConfigureAwait(false); Document newDocument = await Formatter.FormatAsync(document, optionSet, cancellationToken).ConfigureAwait(false); project = newDocument.Project; } } } return(project); }
public static void TestIsGeneratedCodeFile() { Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("TemporaryGeneratedFile_")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("TemporaryGeneratedFile_Foo")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("TemporaryGeneratedFile_.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("TemporaryGeneratedFile_Foo.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\TemporaryGeneratedFile_.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\TemporaryGeneratedFile_Foo.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(".designer.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(".generated.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(".g.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(".g.i.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(".AssemblyAttributes.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.designer.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.generated.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.g.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.g.i.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.AssemblyAttributes.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\.designer.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\.generated.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\.g.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\.g.i.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\.AssemblyAttributes.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\Foo.designer.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\Foo.generated.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\Foo.g.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\Foo.g.i.cs")); Assert.True(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\Foo.AssemblyAttributes.cs")); }
private IEnumerable <string> GetFilePaths(IEnumerable <ReferencedSymbol> referencedSymbols) { return(referencedSymbols .SelectMany(f => f.Locations) .Where(f => !f.IsCandidateLocation && !f.IsImplicit && !GeneratedCodeUtility.IsGeneratedCodeFile(f.Document.FilePath)) .Select(f => f.Document.FilePath.Replace(SolutionDirectory, "")) .Distinct() .OrderBy(f => f)); }
public static void TestIsNotGeneratedCodeFile() { Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile(null)); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile("")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile(" ")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile(".")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile(@"\")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile("foo")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile("foo.")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile(@"foo\")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile(@"foo\.")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\foo")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile(@"c:\foo\")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.designer")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.generated")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.g")); Assert.False(GeneratedCodeUtility.IsGeneratedCodeFile("Foo.AssemblyAttributes")); }
private static void AnalyzeCompilationUnit(SyntaxNodeAnalysisContext context) { var compilationUnit = (CompilationUnitSyntax)context.Node; SyntaxToken token = compilationUnit.EndOfFileToken; if (compilationUnit.Span == token.Span && !token.HasTrailingTrivia && token.LeadingTrivia.All(f => !f.IsDirective)) { SyntaxTree syntaxTree = compilationUnit.SyntaxTree; if (!GeneratedCodeUtility.IsGeneratedCodeFile(syntaxTree.FilePath)) { DiagnosticHelpers.ReportDiagnostic( context, DiagnosticRules.RemoveFileWithNoCode, Location.Create(syntaxTree, default(TextSpan))); } } }