public GenerateDocRootCommand( GenerateDocRootCommandLineOptions options, DocumentationDepth depth, RootDocumentationParts ignoredParts, IncludeContainingNamespaceFilter includeContainingNamespaceFilter, Visibility visibility, in ProjectFilter projectFilter) : base(projectFilter)
private static async Task <int> GenerateDocRootAsync(GenerateDocRootCommandLineOptions options) { if (!TryParseOptionValueAsEnum(options.Visibility, ParameterNames.Visibility, out Visibility visibility)) { return(1); } if (!TryParseOptionValueAsEnum(options.Depth, ParameterNames.Depth, out DocumentationDepth depth, DocumentationOptions.Default.Depth)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredParts, ParameterNames.IgnoredRootParts, out RootDocumentationParts ignoredParts, DocumentationOptions.Default.IgnoredRootParts)) { return(1); } if (!options.TryGetProjectFilter(out ProjectFilter projectFilter)) { return(1); } var command = new GenerateDocRootCommand( options, depth, ignoredParts, visibility, projectFilter); CommandResult result = await command.ExecuteAsync(options.Path, options.MSBuildPath, options.Properties); return((result.Kind == CommandResultKind.Success) ? 0 : 1); }
private static int GenerateDocRoot(GenerateDocRootCommandLineOptions options) { if (!TryParseVisibility(options.Visibility, out Visibility visibility)) { return(1); } DocumentationModel documentationModel = CreateDocumentationModel(options.References, options.Assemblies, visibility); if (documentationModel == null) { return(1); } if (!TryParseIgnoredRootParts(options.IgnoredParts, out RootDocumentationParts ignoredParts)) { return(1); } var documentationOptions = new DocumentationOptions( ignoredNames: options.IgnoredNames, rootDirectoryUrl: options.RootDirectoryUrl, includeClassHierarchy: !options.NoClassHierarchy, placeSystemNamespaceFirst: !options.NoPrecedenceForSystem, markObsolete: !options.NoMarkObsolete, depth: options.Depth, ignoredRootParts: ignoredParts, omitContainingNamespaceParts: (options.OmitContainingNamespace) ? OmitContainingNamespaceParts.Root : OmitContainingNamespaceParts.None, scrollToContent: options.ScrollToContent); var generator = new MarkdownDocumentationGenerator(documentationModel, WellKnownUrlProviders.GitHub, documentationOptions); string path = options.OutputPath; WriteLine($"Documentation root is being generated to '{path}'.", Verbosity.Minimal); string heading = options.Heading; if (string.IsNullOrEmpty(heading)) { string fileName = Path.GetFileName(options.OutputPath); heading = (fileName.EndsWith(".dll", StringComparison.Ordinal)) ? Path.GetFileNameWithoutExtension(fileName) : fileName; } DocumentationGeneratorResult result = generator.GenerateRoot(heading); File.WriteAllText(path, result.Content, _defaultEncoding); WriteLine($"Documentation root successfully generated to '{path}'.", Verbosity.Minimal); return(0); }
private static async Task <int> GenerateDocRootAsync(GenerateDocRootCommandLineOptions options) { if (!TryParseOptionValueAsEnumFlags(options.IncludeContainingNamespace, OptionNames.IncludeContainingNamespace, out IncludeContainingNamespaceFilter includeContainingNamespaceFilter, DocumentationOptions.Default.IncludeContainingNamespaceFilter)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnum(options.Visibility, OptionNames.Visibility, out Visibility visibility)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnum(options.Depth, OptionNames.Depth, out DocumentationDepth depth, DocumentationOptions.Default.Depth)) { return(ExitCodes.Error); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredParts, OptionNames.IgnoredRootParts, out RootDocumentationParts ignoredParts, DocumentationOptions.Default.IgnoredRootParts)) { return(ExitCodes.Error); } if (!options.TryGetProjectFilter(out ProjectFilter projectFilter)) { return(ExitCodes.Error); } if (!TryParsePaths(options.Path, out ImmutableArray <string> paths)) { return(ExitCodes.Error); } var command = new GenerateDocRootCommand( options, depth, ignoredParts, includeContainingNamespaceFilter: includeContainingNamespaceFilter, visibility, projectFilter); CommandStatus status = await command.ExecuteAsync(paths, options.MSBuildPath, options.Properties); return(GetExitCode(status)); }
public GenerateDocRootCommand( GenerateDocRootCommandLineOptions options, DocumentationDepth depth, RootDocumentationParts ignoredParts, Visibility visibility, in ProjectFilter projectFilter) : base(projectFilter)