diff options
-rw-r--r-- | docs/ClangFormat.rst | 19 | ||||
-rwxr-xr-x | tools/clang-format/clang-format-diff.py | 3 | ||||
-rw-r--r-- | tools/clang-format/clang-format.el | 14 |
3 files changed, 26 insertions, 10 deletions
diff --git a/docs/ClangFormat.rst b/docs/ClangFormat.rst index 92d7fc319e..1b65c2542b 100644 --- a/docs/ClangFormat.rst +++ b/docs/ClangFormat.rst @@ -18,7 +18,6 @@ to format C/C++/Obj-C code. $ 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 @@ -66,6 +65,22 @@ 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. + + Script for patch reformatting ============================= @@ -81,7 +96,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: diff --git a/tools/clang-format/clang-format-diff.py b/tools/clang-format/clang-format-diff.py index afed40fc92..68b5113d92 100755 --- a/tools/clang-format/clang-format-diff.py +++ b/tools/clang-format/clang-format-diff.py @@ -85,7 +85,8 @@ def main(): 'Reformat changed lines in diff') parser.add_argument('-p', default=1, help='strip the smallest prefix containing P slashes') - parser.add_argument('-style', help='formatting style to apply (LLVM, Google)') + parser.add_argument('-style', + help='formatting style to apply (LLVM, Google, Chromium)') args = parser.parse_args() filename = None diff --git a/tools/clang-format/clang-format.el b/tools/clang-format/clang-format.el index 1277885996..d58e40358b 100644 --- a/tools/clang-format/clang-format.el +++ b/tools/clang-format/clang-format.el @@ -3,7 +3,7 @@ ;; This defines a function clang-format-region that you can bind to a key. ;; A minimal .emacs would contain: ;; -;; (load "<path-to-clang>/tools/clang/clang-format/clang-format.el") +;; (load "<path-to-clang>/tools/clang-format/clang-format.el") ;; (global-set-key [C-M-tab] 'clang-format-region) ;; ;; Depending on your configuration and coding style, you might need to modify @@ -15,12 +15,12 @@ (binary "clang-format") (style "LLVM")) (if mark-active - (setq beg (1- (region-beginning)) - end (1- (region-end))) - (setq beg (1- (line-beginning-position)) - end (1- (line-end-position)))) - (call-process-region (point-min) (point-max) "clang-format" t t nil - "-offset" (number-to-string beg) + (setq beg (region-beginning) + end (region-end)) + (setq beg (line-beginning-position) + end (line-end-position))) + (call-process-region (point-min) (point-max) binary t t nil + "-offset" (number-to-string (1- beg)) "-length" (number-to-string (- end beg)) "-style" style) (goto-char orig-point) |