r215443 - Add documentation on how Language option in .clang-format files work.

Alexander Kornienko alexfh at google.com
Tue Aug 12 06:34:23 PDT 2014

Author: alexfh
Date: Tue Aug 12 08:34:22 2014
New Revision: 215443

URL: http://llvm.org/viewvc/llvm-project?rev=215443&view=rev
Add documentation on how Language option in .clang-format files work.


Modified: cfe/trunk/docs/ClangFormatStyleOptions.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/ClangFormatStyleOptions.rst?rev=215443&r1=215442&r2=215443&view=diff
--- cfe/trunk/docs/ClangFormatStyleOptions.rst (original)
+++ cfe/trunk/docs/ClangFormatStyleOptions.rst Tue Aug 12 08:34:22 2014
@@ -33,6 +33,43 @@ The ``.clang-format`` file uses YAML for
   # A comment.
+The configuration file can consist of several sections each having different
+``Language:`` parameter denoting the programming language this section of the
+configuration is targeted at. See the description of the **Language** option
+below for the list of supported languages. The first section may have no
+language set, it will set the default style options for all lanugages.
+Configuration sections for specific language will override options set in the
+default section.
+When :program:`clang-format` formats a file, it auto-detects the language using
+the file name. When formatting standard input or a file that doesn't have the
+extension corresponding to its language, ``-assume-filename=`` option can be
+used to override the file name :program:`clang-format` uses to detect the
+An example of a configuration file for multiple languages:
+.. code-block:: yaml
+  ---
+  # We'll use defaults from the LLVM style, but with 4 columns indentation.
+  BasedOnStyle: LLVM
+  IndentWidth: 4
+  ---
+  Language: Cpp
+  # Force pointers to the type for C++.
+  DerivePointerAlignment: false
+  PointerAlignment: Left
+  ---
+  Language: JavaScript
+  # Use 100 columns for JS.
+  ColumnLimit: 100
+  ---
+  Language: Proto
+  # Don't format .proto files.
+  DisableFormat: true
+  ...
 An easy way to get a valid ``.clang-format`` file containing all configuration
 options of a certain predefined style is:

More information about the cfe-commits mailing list