r181617 - Reformat clang-format help strings, filter out irrelevant options.

Alexander Kornienko alexfh at google.com
Fri May 10 11:12:00 PDT 2013


Author: alexfh
Date: Fri May 10 13:12:00 2013
New Revision: 181617

URL: http://llvm.org/viewvc/llvm-project?rev=181617&view=rev
Log:
Reformat clang-format help strings, filter out irrelevant options.

Summary: +updated ClangFormat.rst

Reviewers: djasper, klimek

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D780

Modified:
    cfe/trunk/docs/ClangFormat.rst
    cfe/trunk/tools/clang-format/ClangFormat.cpp

Modified: cfe/trunk/docs/ClangFormat.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/ClangFormat.rst?rev=181617&r1=181616&r2=181617&view=diff
==============================================================================
--- cfe/trunk/docs/ClangFormat.rst (original)
+++ cfe/trunk/docs/ClangFormat.rst Fri May 10 13:12:00 2013
@@ -20,21 +20,43 @@ to format C/C++/Obj-C code.
 
   If no arguments are specified, it formats the code from standard input
   and writes the result to the standard output.
-  If <file> is given, it reformats the file. If -i is specified together
-  with <file>, the file is edited in-place. Otherwise, the result is
-  written to the standard output.
+  If <file>s are given, it reformats the files. If -i is specified
+  together with <file>s, the files are edited in-place. Otherwise, the
+  result is written to the standard output.
 
-  USAGE: clang-format [options] [<file>]
+  USAGE: clang-format [options] [<file> ...]
 
   OPTIONS:
-    -fatal-assembler-warnings - Consider warnings as error
-    -help                     - Display available options (-help-hidden for more)
-    -i                        - Inplace edit <file>, if specified.
-    -length=<int>             - Format a range of this length, -1 for end of file.
-    -offset=<int>             - Format a range starting at this file offset.
-    -stats                    - Enable statistics output from program
-    -style=<string>           - Coding style, currently supports: LLVM, Google, Chromium.
-    -version                  - Display the version of this program
+
+  Clang-format options:
+
+    -dump-config             - Dump configuration options to stdout and exit.
+                               Can be used with -style option.
+    -i                       - Inplace edit <file>s, if specified.
+    -length=<uint>           - Format a range of this length (in bytes).
+                               Multiple ranges can be formatted by specifying
+                               several -offset and -length pairs.
+                               When only a single -offset is specified without
+                               -length, clang-format will format up to the end
+                               of the file.
+                               Can only be used with one input file.
+    -offset=<uint>           - Format a range starting at this byte offset.
+                               Multiple ranges can be formatted by specifying
+                               several -offset and -length pairs.
+                               Can only be used with one input file.
+    -output-replacements-xml - Output replacements as XML.
+    -style=<string>          - Coding style, currently supports:
+                                 LLVM, Google, Chromium, Mozilla.
+                               Use '-style file' to load style configuration from
+                               .clang-format file located in one of the parent
+                               directories of the source file (or current
+                               directory for stdin).
+
+  General options:
+
+    -help                    - Display available options (-help-hidden for more)
+    -help-list               - Display list of available options (-help-list-hidden for more)
+    -version                 - Display the version of this program
 
 
 Vim Integration

Modified: cfe/trunk/tools/clang-format/ClangFormat.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/ClangFormat.cpp?rev=181617&r1=181616&r2=181617&view=diff
==============================================================================
--- cfe/trunk/tools/clang-format/ClangFormat.cpp (original)
+++ cfe/trunk/tools/clang-format/ClangFormat.cpp Fri May 10 13:12:00 2013
@@ -23,43 +23,57 @@
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Signals.h"
+#include "llvm/ADT/StringMap.h"
 
 using namespace llvm;
 
 static cl::opt<bool> Help("h", cl::desc("Alias for -help"), cl::Hidden);
 
-static cl::list<unsigned> Offsets(
-    "offset",
-    cl::desc(
-        "Format a range starting at this byte offset. Multiple ranges can be "
-        "formatted by specifying several -offset and -length pairs. Can "
-        "only be used with one input file."));
-static cl::list<unsigned> Lengths(
-    "length",
-    cl::desc("Format a range of this length (in bytes). Multiple ranges can be "
-             "formatted by specifying several -offset and -length pairs. When "
-             "only a single -offset is specified without -length, clang-format "
-             "will format up to the end of the file. Can only be used with one "
-             "input file."));
-static cl::opt<std::string> Style(
-    "style",
-    cl::desc(
-        "Coding style, currently supports: LLVM, Google, Chromium, Mozilla. "
-        "Use '-style file' to load style configuration from .clang-format file "
-        "located in one of the parent directories of the source file (or "
-        "current directory for stdin)."),
-    cl::init("LLVM"));
+// Mark all our options with this category, everything else (except for -version
+// and -help) will be hidden.
+cl::OptionCategory ClangFormatCategory("Clang-format options");
+
+static cl::list<unsigned>
+    Offsets("offset",
+            cl::desc("Format a range starting at this byte offset.\n"
+                     "Multiple ranges can be formatted by specifying\n"
+                     "several -offset and -length pairs.\n"
+                     "Can only be used with one input file."),
+            cl::cat(ClangFormatCategory));
+static cl::list<unsigned>
+    Lengths("length",
+            cl::desc("Format a range of this length (in bytes).\n"
+                     "Multiple ranges can be formatted by specifying\n"
+                     "several -offset and -length pairs.\n"
+                     "When only a single -offset is specified without\n"
+                     "-length, clang-format will format up to the end\n"
+                     "of the file.\n"
+                     "Can only be used with one input file."),
+            cl::cat(ClangFormatCategory));
+static cl::opt<std::string>
+    Style("style",
+          cl::desc("Coding style, currently supports:\n"
+                   "  LLVM, Google, Chromium, Mozilla.\n"
+                   "Use '-style file' to load style configuration from\n"
+                   ".clang-format file located in one of the parent\n"
+                   "directories of the source file (or current\n"
+                   "directory for stdin)."),
+          cl::init("LLVM"), cl::cat(ClangFormatCategory));
 static cl::opt<bool> Inplace("i",
-                             cl::desc("Inplace edit <file>s, if specified."));
+                             cl::desc("Inplace edit <file>s, if specified."),
+                             cl::cat(ClangFormatCategory));
 
-static cl::opt<bool> OutputXML(
-    "output-replacements-xml", cl::desc("Output replacements as XML."));
+static cl::opt<bool> OutputXML("output-replacements-xml",
+                               cl::desc("Output replacements as XML."),
+                               cl::cat(ClangFormatCategory));
 static cl::opt<bool>
     DumpConfig("dump-config",
-               cl::desc("Dump configuration options to stdout and exit. Can be used with -style option."));
+               cl::desc("Dump configuration options to stdout and exit.\n"
+                        "Can be used with -style option."),
+               cl::cat(ClangFormatCategory));
 
-static cl::list<std::string> FileNames(cl::Positional,
-                                       cl::desc("[<file> ...]"));
+static cl::list<std::string> FileNames(cl::Positional, cl::desc("[<file> ...]"),
+                                       cl::cat(ClangFormatCategory));
 
 namespace clang {
 namespace format {
@@ -196,6 +210,17 @@ static bool format(std::string FileName)
 
 int main(int argc, const char **argv) {
   llvm::sys::PrintStackTraceOnErrorSignal();
+
+  // Hide unrelated options.
+  StringMap<cl::Option*> Options;
+  cl::getRegisteredOptions(Options);
+  for (StringMap<cl::Option *>::iterator I = Options.begin(), E = Options.end();
+       I != E; ++I) {
+    if (I->second->Category != &ClangFormatCategory && I->first() != "help" &&
+        I->first() != "version")
+      I->second->setHiddenFlag(cl::ReallyHidden);
+  }
+
   cl::ParseCommandLineOptions(
       argc, argv,
       "A tool to format C/C++/Obj-C code.\n\n"





More information about the cfe-commits mailing list