コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
ファイル: RoslynatorInfo.cs プロジェクト: wushian/Roslynator
 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));
 }
コード例 #5
0
        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"));
        }
コード例 #6
0
        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)));
                }
            }
        }