private static void AnalyzeSolution(FileInfo inputFile, IDedoxConfig config, IDedoxMetrics metrics) { var dir = inputFile.Directory; if (dir != null) { var projects = File.ReadAllLines(inputFile.FullName) .Where(s => s.StartsWith("Project(")) .Select(s => s.Split('=')[1].Trim().Split(',')[1].Trim()) .Select(s => s.Substring(1, s.Length - 2)) .Where(s => s.EndsWith(".csproj")) .ToList(); foreach (var p in projects) { config.Writer.Info(); var projectPath = Path.Combine(dir.FullName, p); var projectFileInfo = new FileInfo(projectPath); if (projectFileInfo.Exists) { AnalyzeProject(projectFileInfo, config, metrics); } } } }
private static void ProcessInputFile(FileInfo inputFile, IDedoxConfig config, IDedoxMetrics metrics) { var writer = config.Writer; if (inputFile.Exists) { writer.Info("Processing file: " + inputFile.Name); if (inputFile.Name.EndsWith(".sln")) { AnalyzeSolution(inputFile, config, metrics); } else if (inputFile.Name.EndsWith(".csproj")) { AnalyzeProject(inputFile, config, metrics); } else if (inputFile.Name.EndsWith(".cs")) { AnalyzeCodeFile(inputFile, config, metrics); } } else { writer.Info("No such file: " + inputFile.FullName); } }
protected GeneratedCommentsChecker(T it, IDedoxConfig config, IDedoxMetrics metrics) { It = it; _config = config; _writer = config.Writer; _metrics = metrics; }
private static IConsoleWriter GetConsoleWriter(IDedoxConfig config) { if (config.VeryVerbose) { return(new DebugConsoleWriter(Console.Out)); } if (config.Verbose) { return(new InfoConsoleWriter(Console.Out)); } return(new NullConsoleWriter()); }
private static void AnalyzeCodeFile(FileInfo inputFile, IDedoxConfig config, IDedoxMetrics metrics) { config.Writer.Info("> Processing code file {0}.", inputFile.Name); var source = File.ReadAllText(inputFile.FullName); var output = new Dedoxifier(config, metrics).Run(source); if (output != null) { var outDir = config.OutputDirectory ?? inputFile.DirectoryName ?? @"C:\temp"; var outFile = Path.Combine(outDir, inputFile.Name); File.WriteAllText(outFile, output); } config.Writer.Info(); config.Writer.Info(); }
private static void AnalyzeProject(FileInfo projectFile, IDedoxConfig config, IDedoxMetrics metrics) { var dir = projectFile.Directory; if (dir == null) { return; } var fileInfos = GetCodeFilesFromProjectFile(projectFile) .Select(file => Path.Combine(dir.FullName, file)) .Select(filePath => new FileInfo(filePath)) .ToList(); foreach (var file in fileInfos) { AnalyzeCodeFile(file, config, metrics); } }
private static void Run(IDedoxConfig config) { IConsoleWriter writer = GetConsoleWriter(config); config.Writer = writer; writer.Debug("Verbose? " + config.Verbose); writer.Debug("Output dir? " + config.OutputDirectory); writer.Debug("Levenshtein? " + config.LevenshteinLimit); writer.Debug("Metrics? " + config.Metrics); writer.Debug(); var metrics = new DedoxMetrics(); var inputFiles = config.GetInputFiles(); if (inputFiles.Any()) { foreach (var inputFile in config.GetInputFiles()) { ProcessInputFile(inputFile, config, metrics); } } else { var sampleOutput = new Dedoxifier(config, metrics).Run(GetSampleProgram()); Console.WriteLine(sampleOutput); } if (config.Metrics) { // Always write to console, even in non-verbose mode. Console.WriteLine("Code elements (all): " + metrics.AllCodeElements); Console.WriteLine("Code elements (included): " + metrics.CodeElements); Console.WriteLine("Code elements (documented): " + metrics.CodeElementsWithDocumentation); Console.WriteLine("Code elements (generated): " + metrics.CodeElementsWithGeneratedDocumentation); } }
public GeneratedPropertyCommentsChecker(PropertyDeclarationSyntax it, IDedoxConfig config, IDedoxMetrics metrics) : base(it, config, metrics) { }
public GeneratedFieldCommentsChecker(FieldDeclarationSyntax it, IDedoxConfig config, IDedoxMetrics metrics) : base(it, config, metrics) { }
public GeneratedIndexerCommentsChecker(IndexerDeclarationSyntax declaration, IDedoxConfig config, IDedoxMetrics metrics) : base(declaration, config, metrics) { }
public GeneratedEnumMemberCommentsChecker(EnumMemberDeclarationSyntax it, IDedoxConfig config, IDedoxMetrics metrics) : base(it, config, metrics) { }
public GeneratedInterfaceCommentsChecker(InterfaceDeclarationSyntax it, IDedoxConfig config, IDedoxMetrics metrics) : base(it, config, metrics) { }
protected GeneratedSummaryCommentsChecker(T it, IDedoxConfig config, IDedoxMetrics metrics) : base(it, config, metrics) { }
public Dedoxifier(IDedoxConfig config, IDedoxMetrics metrics) { _config = config; _writer = config.Writer; _metrics = metrics; }
public GeneratedClassCommentsChecker(ClassDeclarationSyntax classDeclaration, IDedoxConfig config, IDedoxMetrics metrics) : base(classDeclaration, config, metrics) { }
public GeneratedConstructorCommentsChecker(ConstructorDeclarationSyntax it, IDedoxConfig config, IDedoxMetrics metrics) : base(it, config, metrics) { }