| // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef TOOLS_GN_STANDARD_OUT_H_ | 
 | #define TOOLS_GN_STANDARD_OUT_H_ | 
 |  | 
 | #include <string> | 
 |  | 
 | enum TextDecoration { | 
 |   DECORATION_NONE = 0, | 
 |   DECORATION_DIM, | 
 |   DECORATION_RED, | 
 |   DECORATION_GREEN, | 
 |   DECORATION_BLUE, | 
 |   DECORATION_YELLOW | 
 | }; | 
 |  | 
 | void OutputString(const std::string& output, | 
 |                   TextDecoration dec = DECORATION_NONE); | 
 |  | 
 | // If printing markdown, this generates table-of-contents entries with | 
 | // links to the actual help; otherwise, prints a one-line description. | 
 | void PrintSectionHelp(const std::string& line, | 
 |                       const std::string& topic, | 
 |                       const std::string& tag); | 
 |  | 
 | // Prints a line for a command, assuming there is a colon. Everything before | 
 | // the colon is the command (and is highlighted). After the colon if there is | 
 | // a square bracket, the contents of the bracket is dimmed. | 
 | // | 
 | // The line is indented 2 spaces. | 
 | void PrintShortHelp(const std::string& line); | 
 |  | 
 | // Rules: | 
 | // - Lines beginning with non-whitespace are highlighted up to the first | 
 | //   colon (or the whole line if not). | 
 | // - Lines whose first non-whitespace character is a # are dimmed. | 
 | void PrintLongHelp(const std::string& text, const std::string& tag = ""); | 
 |  | 
 | #endif  // TOOLS_GN_STANDARD_OUT_H_ |