diff options
Diffstat (limited to 'Source/cmDocumentationFormatter.h')
-rw-r--r-- | Source/cmDocumentationFormatter.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Source/cmDocumentationFormatter.h b/Source/cmDocumentationFormatter.h new file mode 100644 index 0000000..17b63da --- /dev/null +++ b/Source/cmDocumentationFormatter.h @@ -0,0 +1,66 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef _cmDocumentationFormatter_h +#define _cmDocumentationFormatter_h + +#include "cmConfigure.h" // IWYU pragma: keep + +#include <iosfwd> + +/** This is just a helper class to make it build with MSVC 6.0. +Actually the enums and internal classes could directly go into +cmDocumentation, but then MSVC6 complains in RequestedHelpItem that +cmDocumentation is an undefined type and so it doesn't know the enums. +Moving the enums to a class which is then already completely parsed helps +against this. */ +class cmDocumentationEnums +{ +public: + /** Types of help provided. */ + enum Type + { + None, + Version, + Usage, + Help, + Full, + ListManuals, + ListCommands, + ListModules, + ListProperties, + ListVariables, + ListPolicies, + ListGenerators, + OneManual, + OneCommand, + OneModule, + OneProperty, + OneVariable, + OnePolicy, + OldCustomModules + }; +}; + +class cmDocumentationSection; + +/** Print documentation in a simple text format. */ +class cmDocumentationFormatter +{ +public: + cmDocumentationFormatter(); + virtual ~cmDocumentationFormatter(); + void PrintFormatted(std::ostream& os, const char* text); + + virtual void PrintSection(std::ostream& os, + cmDocumentationSection const& section); + virtual void PrintPreformatted(std::ostream& os, const char* text); + virtual void PrintParagraph(std::ostream& os, const char* text); + void PrintColumn(std::ostream& os, const char* text); + void SetIndent(const char* indent); + +private: + int TextWidth = 77; + const char* TextIndent = ""; +}; + +#endif |