protected sealed override FileMetadataInfo CreateMessage(SyntaxTree syntaxTree, SemanticModel semanticModel) => new FileMetadataInfo { FilePath = syntaxTree.FilePath, IsGenerated = GeneratedCodeRecognizer.IsGenerated(syntaxTree), Encoding = syntaxTree.Encoding?.WebName.ToLowerInvariant() ?? string.Empty };
protected sealed override FileMetadataInfo GetMessage(SyntaxTree syntaxTree, SemanticModel semanticModel) { return(new FileMetadataInfo { FilePath = syntaxTree.FilePath, IsGenerated = GeneratedCodeRecognizer.IsGenerated(syntaxTree) }); }
private static bool IsGenerated(string content, GeneratedCodeRecognizer generatedCodeRecognizer) { var compilation = SolutionBuilder .Create() .AddProject(AnalyzerLanguage.CSharp, createExtraEmptyFile: false) .AddSnippet(content) .GetCompilation(); var tree = compilation.SyntaxTrees.First(); return(tree.IsGenerated(generatedCodeRecognizer, compilation)); }
private static async Task <bool> IsGeneratedAsync(string content, GeneratedCodeRecognizer generatedCodeRecognizer) { using (var workspace = new AdhocWorkspace()) { var document = workspace.CurrentSolution.AddProject("foo", "foo.dll", LanguageNames.CSharp) .AddMetadataReference(MetadataReference.CreateFromFile(typeof(object).Assembly.Location)) .AddMetadataReference(MetadataReference.CreateFromFile(typeof(Enumerable).Assembly.Location)) .AddDocument("Foo.cs", content); var compilation = document.Project.GetCompilationAsync().Result; var tree = await document.GetSyntaxTreeAsync(); return(tree.IsGenerated(generatedCodeRecognizer, compilation)); } }
private static async Task <bool> IsGeneratedAsync(string content, GeneratedCodeRecognizer generatedCodeRecognizer) { using (var workspace = new AdhocWorkspace()) { var document = workspace.CurrentSolution.AddProject("foo", "foo.dll", LanguageNames.CSharp) .AddMetadataReference(AssemblyReferenceService.GetMetadataReference(AssemblyReference.FromFramework("mscorlib.dll"))) .AddMetadataReference(AssemblyReferenceService.GetMetadataReference(AssemblyReference.FromFramework("System.dll"))) .AddMetadataReference(AssemblyReferenceService.GetMetadataReference(AssemblyReference.FromFramework("System.Core.dll"))) .AddDocument("Foo.cs", content); var compilation = document.Project.GetCompilationAsync().Result; var tree = await document.GetSyntaxTreeAsync(); return(tree.IsGenerated(generatedCodeRecognizer, compilation)); } }