aboutsummaryrefslogtreecommitdiff
path: root/docs/ClangFormat.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ClangFormat.rst')
-rw-r--r--docs/ClangFormat.rst53
1 files changed, 41 insertions, 12 deletions
diff --git a/docs/ClangFormat.rst b/docs/ClangFormat.rst
index f5c0b4c1fb..964fc84d7b 100644
--- a/docs/ClangFormat.rst
+++ b/docs/ClangFormat.rst
@@ -10,16 +10,14 @@ standalone tool and editor integrations.
Standalone Tool
===============
-:program:`clang-format` is part of the `clang/tools/extra` (see
-:doc:`ClangTools <ClangTools>`) repository and can be used to format
-C/C++/Obj-C code.
+:program:`clang-format` is located in `clang/tools/clang-format` and can be used
+to format C/C++/Obj-C code.
.. code-block:: console
$ clang-format --help
OVERVIEW: A tool to format C/C++/Obj-C code.
- Currently supports LLVM and Google style guides.
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
@@ -35,7 +33,7 @@ C/C++/Obj-C code.
-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.
+ -style=<string> - Coding style, currently supports: LLVM, Google, Chromium.
-version - Display the version of this program
@@ -45,18 +43,18 @@ Vim Integration
There is an integration for :program:`vim` which lets you run the
:program:`clang-format` standalone tool on your current buffer, optionally
selecting regions to reformat. The integration has the form of a `python`-file
-which can be found under `clang/tools/extra/clang-format/clang-format.py`.
+which can be found under `clang/tools/clang-format/clang-format.py`.
This can be integrated by adding the following to your `.vimrc`:
.. code-block:: vim
- map <C-I> :pyf <path-to-this-file>/clang-format.py<CR>
- imap <C-I> <ESC>:pyf <path-to-this-file>/clang-format.py<CR>i
+ map <C-K> :pyf <path-to-this-file>/clang-format.py<CR>
+ imap <C-K> <ESC>:pyf <path-to-this-file>/clang-format.py<CR>i
The first line enables :program:`clang-format` for NORMAL and VISUAL mode, the
-second line adds support for INSERT mode. Change "C-I" to another binding if
-you need :program:`clang-format` on a different key (C-I stands for Ctrl+i).
+second line adds support for INSERT mode. Change "C-K" to another binding if
+you need :program:`clang-format` on a different key (C-K stands for Ctrl+k).
With this integration you can press the bound key and clang-format will
format the current line in NORMAL and INSERT mode or the selected region in
@@ -67,10 +65,41 @@ It operates on the current, potentially unsaved buffer and does not create
or save any files. To revert a formatting, just undo.
+Emacs Integration
+=================
+
+Similar to the integration for :program:`vim`, there is an integration for
+:program:`emacs`. It can be found at `clang/tools/clang-format/clang-format.el`
+and used by adding this to your `.emacs`:
+
+.. code-block:: common-lisp
+
+ (load "<path-to-clang>/tools/clang-format/clang-format.el")
+ (global-set-key [C-M-tab] 'clang-format-region)
+
+This binds the function `clang-format-region` to C-M-tab, which then formats the
+current line or selected region.
+
+
+BBEdit Integration
+==================
+
+:program:`clang-format` cannot be used as a text filter with BBEdit, but works
+well via a script. The AppleScript to do this integration can be found at
+`clang/tools/clang-format/clang-format-bbedit.applescript`; place a copy in
+`~/Library/Application Support/BBEdit/Scripts`, and edit the path within it to
+point to your local copy of :program:`clang-format`.
+
+With this integration you can select the script from the Script menu and
+:program:`clang-format` will format the selection. Note that you can rename the
+menu item by renaming the script, and can assign the menu item a keyboard
+shortcut in the BBEdit preferences, under Menus & Shortcuts.
+
+
Script for patch reformatting
=============================
-The python script `clang/tools/extra/clang-format-diff.py` parses the output of
+The python script `clang/tools/clang-format-diff.py` parses the output of
a unified diff and reformats all contained lines with :program:`clang-format`.
.. code-block:: console
@@ -82,7 +111,7 @@ a unified diff and reformats all contained lines with :program:`clang-format`.
optional arguments:
-h, --help show this help message and exit
-p P strip the smallest prefix containing P slashes
- -style STYLE formatting style to apply (LLVM, Google)
+ -style STYLE formatting style to apply (LLVM, Google, Chromium)
So to reformat all the lines in the latest :program:`git` commit, just do: