public override async Task <CommandResult> ExecuteAsync(ProjectOrSolution projectOrSolution, CancellationToken cancellationToken = default) { var codeMetricsOptions = new CodeMetricsOptions(includeGenerated: Options.IncludeGeneratedCode); if (projectOrSolution.IsProject) { Project project = projectOrSolution.AsProject(); CodeMetricsCounter counter = CodeMetricsCounterFactory.GetLogicalLinesCounter(project.Language); if (counter != null) { await CountLinesAsync(project, counter, codeMetricsOptions, cancellationToken); } else { WriteLine($"Cannot count logical lines for language '{project.Language}'", ConsoleColor.Yellow, Verbosity.Minimal); } } else { CountLines(projectOrSolution.AsSolution(), codeMetricsOptions, cancellationToken); } return(CommandResult.Success); }
public override async Task <CommandResult> ExecuteAsync(ProjectOrSolution projectOrSolution, CancellationToken cancellationToken = default) { var codeMetricsOptions = new CodeMetricsOptions( includeGenerated: Options.IncludeGeneratedCode, includeWhitespace: Options.IncludeWhitespace, includeComments: Options.IncludeComments, includePreprocessorDirectives: Options.IncludePreprocessorDirectives, ignoreBlockBoundary: Options.IgnoreBlockBoundary); if (projectOrSolution.IsProject) { Project project = projectOrSolution.AsProject(); CodeMetricsCounter counter = CodeMetricsCounterFactory.GetPhysicalLinesCounter(project.Language); if (counter != null) { await CountLinesAsync(project, counter, codeMetricsOptions, cancellationToken); } else { WriteLine($"Cannot count lines for '{project.FilePath}', language '{project.Language}' is not supported", ConsoleColor.Yellow, Verbosity.Minimal); } } else { CountLines(projectOrSolution.AsSolution(), codeMetricsOptions, cancellationToken); } return(CommandResult.Success); }