RewriteAndMerge() private method

private RewriteAndMerge ( Microsoft.CodeAnalysis.SyntaxTree syntaxTrees, Microsoft.CodeAnalysis.CSharp.CSharpCompilation compilationNode, string excludeTypes = null ) : Microsoft.CodeAnalysis.SyntaxTree
syntaxTrees Microsoft.CodeAnalysis.SyntaxTree
compilationNode Microsoft.CodeAnalysis.CSharp.CSharpCompilation
excludeTypes string
return Microsoft.CodeAnalysis.SyntaxTree
コード例 #1
0
        public static void Rewrite(string[] input, string[] assemblies, string[] output, bool dontWriteIfNoChanges)
        {
            var log = TextAsyncRewriterLogger.ConsoleLogger;

            var rewriter = new Rewriter(log);
            var code     = rewriter.RewriteAndMerge(input, assemblies);

            foreach (var outputFile in output)
            {
                var changed  = true;
                var filename = outputFile;

                try
                {
                    using (TextReader left = File.OpenText(filename), right = new StringReader(code))
                    {
                        if (Equal(left, right))
                        {
                            log.LogMessage($"{filename} has not changed");

                            changed = false;
                        }
                    }
                }
                catch (Exception)
                {
                }

                if (!changed && dontWriteIfNoChanges)
                {
                    log.LogMessage($"Skipping writing {filename}");

                    continue;
                }

                File.WriteAllText(filename, code);
            }
        }