[clang-tools-extra] r223235 - [clang-tidy] Update help messages and docs.

Alexander Kornienko alexfh at google.com
Wed Dec 3 06:03:03 PST 2014


Author: alexfh
Date: Wed Dec  3 08:03:03 2014
New Revision: 223235

URL: http://llvm.org/viewvc/llvm-project?rev=223235&view=rev
Log:
[clang-tidy] Update help messages and docs.

Fixed incorrect examples of configuration, clarified the usage of -dump-config.

Modified:
    clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp
    clang-tools-extra/trunk/docs/clang-tidy.rst

Modified: clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp?rev=223235&r1=223234&r2=223235&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp Wed Dec  3 08:03:03 2014
@@ -33,7 +33,19 @@ static cl::extrahelp ClangTidyHelp(
     "  .clang-tidy file located in the closest parent directory of the source\n"
     "  file. If any configuration options have a corresponding command-line\n"
     "  option, command-line option takes precedence. The effective\n"
-    "  configuration can be inspected using -dump-config.\n\n");
+    "  configuration can be inspected using -dump-config:\n"
+    "\n"
+    "    $ clang-tidy -dump-config - --\n"
+    "    ---\n"
+    "    Checks:          '-*,some-check'\n"
+    "    HeaderFilterRegex: ''\n"
+    "    AnalyzeTemporaryDtors: false\n"
+    "    User:            user\n"
+    "    CheckOptions:    \n"
+    "      - key:             some-check.SomeOption\n"
+    "        value:           'some value'\n"
+    "    ...\n"
+    "\n\n");
 
 const char DefaultChecks[] =  // Enable these checks:
     "clang-diagnostic-*,"     //   * compiler diagnostics
@@ -100,16 +112,19 @@ ListChecks("list-checks",
 static cl::opt<std::string> Config(
     "config",
     cl::desc("Specifies a configuration in YAML/JSON format:\n"
-             "  -config=\"{Checks: '*', CheckOptions: {key: x, value: y}}\"\n"
+             "  -config=\"{Checks: '*', CheckOptions: [{key: x, value: y}]}\"\n"
              "When the value is empty, clang-tidy will attempt to find\n"
              "a file named .clang-tidy for each source file in its parent\n"
              "directories."),
     cl::init(""), cl::cat(ClangTidyCategory));
 
-static cl::opt<bool>
-DumpConfig("dump-config",
-           cl::desc("Dumps configuration in the YAML format to stdout."),
-           cl::init(false), cl::cat(ClangTidyCategory));
+static cl::opt<bool> DumpConfig(
+    "dump-config",
+    cl::desc("Dumps configuration in the YAML format to stdout. This option\n"
+             "should be used along with a file name (and '--' if the file is\n"
+             "outside of a project with configured compilation database). The\n"
+             "configuration used for this file will be printed."),
+    cl::init(false), cl::cat(ClangTidyCategory));
 
 static cl::opt<bool> EnableCheckProfile(
     "enable-check-profile",

Modified: clang-tools-extra/trunk/docs/clang-tidy.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy.rst?rev=223235&r1=223234&r2=223235&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy.rst Wed Dec  3 08:03:03 2014
@@ -86,71 +86,95 @@ An overview of all the command-line opti
 
   clang-tidy options:
 
-    -analyze-temporary-dtors - Enable temporary destructor-aware analysis in
-                               clang-analyzer- checks.
-    -checks=<string>         - Comma-separated list of globs with optional '-'
-                               prefix. Globs are processed in order of appearance
-                               in the list. Globs without '-' prefix add checks
-                               with matching names to the set, globs with the '-'
-                               prefix remove checks with matching names from the
-                               set of enabled checks.
-                               This option's value is appended to the value read
-                               from a .clang-tidy file, if any.
-    -config=<string>         - Specifies a configuration in YAML/JSON format:
-                                 -config="{Checks: '*', CheckOptions: {key: x, value: y}}"
-                               When the value is empty, clang-tidy will attempt to find
-                               a file named .clang-tidy for each source file in its parent
-                               directories.
-    -dump-config             - Dumps configuration in the YAML format to stdout.
-    -export-fixes=<filename> - YAML file to store suggested fixes in. The
-                               stored fixes can be applied to the input source
-                               code with clang-apply-replacements.
-    -fix                     - Fix detected errors if possible.
-    -header-filter=<string>  - Regular expression matching the names of the
-                               headers to output diagnostics from. Diagnostics
-                               from the main file of each translation unit are
-                               always displayed.
-                               Can be used together with -line-filter.
-                               This option overrides the value read from a
-                               .clang-tidy file.
-    -line-filter=<string>    - List of files with line ranges to filter the
-                               warnings. Can be used together with
-                               -header-filter. The format of the list is a JSON
-                               array of objects:
-                                 [
-                                   {"name":"file1.cpp","lines":[[1,3],[5,7]]},
-                                   {"name":"file2.h"}
-                                 ]
-    -list-checks             - List all enabled checks and exit. Use with
-                               -checks='*' to list all available checks.
-    -p=<string>              - Build path
-    -system-headers          - Display the errors from system headers
+    -analyze-temporary-dtors   - Enable temporary destructor-aware analysis in
+                                 clang-analyzer- checks.
+                                 This option overrides the value read from a
+                                 .clang-tidy file.
+    -checks=<string>           - Comma-separated list of globs with optional '-'
+                                 prefix. Globs are processed in order of appearance
+                                 in the list. Globs without '-' prefix add checks
+                                 with matching names to the set, globs with the '-'
+                                 prefix remove checks with matching names from the
+                                 set of enabled checks.
+                                 This option's value is appended to the value read
+                                 from a .clang-tidy file, if any.
+    -config=<string>           - Specifies a configuration in YAML/JSON format:
+                                   -config="{Checks: '*', CheckOptions: [{key: x, value: y}]}"
+                                 When the value is empty, clang-tidy will attempt to find
+                                 a file named .clang-tidy for each source file in its parent
+                                 directories.
+    -dump-config               - Dumps configuration in the YAML format to stdout. This option
+                                 should be used along with a file name (and '--' if the file is
+                                 outside of a project with configured compilation database). The
+                                 configuration used for this file will be printed.
+    -enable-check-profile      - Enable per-check timing profiles, and print a report to stderr.
+    -export-fixes=<filename>   - YAML file to store suggested fixes in. The
+                                 stored fixes can be applied to the input source
+                                 code with clang-apply-replacements.
+    -extra-arg=<string>        - Additional argument to append to the compiler command line
+    -extra-arg-before=<string> - Additional argument to prepend to the compiler command line
+    -fix                       - Apply suggested fixes. Without -fix-errors
+                                 clang-tidy will bail out if any compilation
+                                 errors were found.
+    -fix-errors                - Apply suggested fixes even if compilation errors
+                                 were found. If compiler errors have attached
+                                 fix-its, clang-tidy will apply them as well.
+    -header-filter=<string>    - Regular expression matching the names of the
+                                 headers to output diagnostics from. Diagnostics
+                                 from the main file of each translation unit are
+                                 always displayed.
+                                 Can be used together with -line-filter.
+                                 This option overrides the value read from a
+                                 .clang-tidy file.
+    -line-filter=<string>      - List of files with line ranges to filter the
+                                 warnings. Can be used together with
+                                 -header-filter. The format of the list is a JSON
+                                 array of objects:
+                                   [
+                                     {"name":"file1.cpp","lines":[[1,3],[5,7]]},
+                                     {"name":"file2.h"}
+                                   ]
+    -list-checks               - List all enabled checks and exit. Use with
+                                 -checks='*' to list all available checks.
+    -p=<string>                - Build path
+    -system-headers            - Display the errors from system headers.
 
   -p <build-path> is used to read a compile command database.
 
-    For example, it can be a CMake build directory in which a file named
-    compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-    CMake option to get this output). When no build path is specified,
-    a search for compile_commands.json will be attempted through all
-    parent paths of the first input file . See:
-    http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an
-    example of setting up Clang Tooling on a source tree.
+          For example, it can be a CMake build directory in which a file named
+          compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
+          CMake option to get this output). When no build path is specified,
+          a search for compile_commands.json will be attempted through all
+          parent paths of the first input file . See:
+          http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an
+          example of setting up Clang Tooling on a source tree.
 
   <source0> ... specify the paths of source files. These paths are
-    looked up in the compile command database. If the path of a file is
-    absolute, it needs to point into CMake's source tree. If the path is
-    relative, the current working directory needs to be in the CMake
-    source tree and the file must be in a subdirectory of the current
-    working directory. "./" prefixes in the relative files will be
-    automatically removed, but the rest of a relative path must be a
-    suffix of a path in the compile command database.
+          looked up in the compile command database. If the path of a file is
+          absolute, it needs to point into CMake's source tree. If the path is
+          relative, the current working directory needs to be in the CMake
+          source tree and the file must be in a subdirectory of the current
+          working directory. "./" prefixes in the relative files will be
+          automatically removed, but the rest of a relative path must be a
+          suffix of a path in the compile command database.
 
   Configuration files:
     clang-tidy attempts to read configuration for each source file from a
     .clang-tidy file located in the closest parent directory of the source
     file. If any configuration options have a corresponding command-line
     option, command-line option takes precedence. The effective
-    configuration can be inspected using -dump-config.
+    configuration can be inspected using -dump-config:
+
+      $ clang-tidy -dump-config - --
+      ---
+      Checks:          '-*,some-check'
+      HeaderFilterRegex: ''
+      AnalyzeTemporaryDtors: false
+      User:            user
+      CheckOptions:    
+        - key:             some-check.SomeOption
+          value:           'some value'
+      ...
 
 .. _LibTooling: http://clang.llvm.org/docs/LibTooling.html
 .. _How To Setup Tooling For LLVM: http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html
@@ -384,7 +408,7 @@ the check implements and what the curren
         SomeOption(Options.get("SomeOption1", -1U)),
         SomeOption(Options.get("SomeOption2", "some default")) {}
 
-    void storeOptions(ClangTidyOptions::OptionMap &Opts) {
+    void storeOptions(ClangTidyOptions::OptionMap &Opts) override {
       Options.store(Opts, "SomeOption1", SomeOption1);
       Options.store(Opts, "SomeOption2", SomeOption2);
     }
@@ -395,12 +419,18 @@ be set in a ``.clang-tidy`` file in the
 
 .. code-block:: yaml
 
-  CheckOptions: {
+  CheckOptions:
     - key: my-check.SomeOption1
       value: 123
     - key: my-check.SomeOption2
       value: 'some other value'
-  }
+
+If you need to specify check options on a command line, you can use the inline
+YAML format:
+
+.. code-block:: bash
+
+  $ clang-tidy -config="{CheckOptions: [{key: a, value: b}, {key: x, value: y}]}" ...
 
 
 Testing Checks





More information about the cfe-commits mailing list