[clang] 422e6e7 - [docs] Document git-clang-format
Nico Weber via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 13 18:06:11 PDT 2022
Author: Nico Weber
Date: 2022-07-13T21:06:00-04:00
New Revision: 422e6e762935b4466c2ef1871df6917ab1c31262
URL: https://github.com/llvm/llvm-project/commit/422e6e762935b4466c2ef1871df6917ab1c31262
DIFF: https://github.com/llvm/llvm-project/commit/422e6e762935b4466c2ef1871df6917ab1c31262.diff
LOG: [docs] Document git-clang-format
clang-format's documentation documented the more general clang-format-diff.py
script. Add documentation for the less general but arguably easier-to-use
git integration as well.
Differential Revision: https://reviews.llvm.org/D129563
Added:
Modified:
clang/docs/ClangFormat.rst
Removed:
################################################################################
diff --git a/clang/docs/ClangFormat.rst b/clang/docs/ClangFormat.rst
index 150f0aa009e9..3059355c03b1 100644
--- a/clang/docs/ClangFormat.rst
+++ b/clang/docs/ClangFormat.rst
@@ -229,6 +229,59 @@ Visual Studio Code Integration
Get the latest Visual Studio Code extension from the `Visual Studio Marketplace <https://marketplace.visualstudio.com/items?itemName=xaver.clang-format>`_. The default key-binding is Alt-Shift-F.
+Git integration
+===============
+
+The script `clang/tools/clang-format/git-clang-format` can be used to
+format just the lines touched in git commits:
+
+.. code-block:: console
+
+ % git clang-format -h
+ usage: git clang-format [OPTIONS] [<commit>] [<commit>|--staged] [--] [<file>...]
+
+ If zero or one commits are given, run clang-format on all lines that
diff er
+ between the working directory and <commit>, which defaults to HEAD. Changes are
+ only applied to the working directory, or in the stage/index.
+
+ Examples:
+ To format staged changes, i.e everything that's been `git add`ed:
+ git clang-format
+
+ To also format everything touched in the most recent commit:
+ git clang-format HEAD~1
+
+ If you're on a branch off main, to format everything touched on your branch:
+ git clang-format main
+
+ If two commits are given (requires --
diff ), run clang-format on all lines in the
+ second <commit> that
diff er from the first <commit>.
+
+ The following git-config settings set the default of the corresponding option:
+ clangFormat.binary
+ clangFormat.commit
+ clangFormat.extensions
+ clangFormat.style
+
+ positional arguments:
+ <commit> revision from which to compute the
diff
+ <file>... if specified, only consider
diff erences in these files
+
+ optional arguments:
+ -h, --help show this help message and exit
+ --binary BINARY path to clang-format
+ --commit COMMIT default commit to use if none is specified
+ --
diff print a
diff instead of applying the changes
+ --
diff stat print a
diff stat instead of applying the changes
+ --extensions EXTENSIONS
+ comma-separated list of file extensions to format, excluding the period and case-insensitive
+ -f, --force allow changes to unstaged files
+ -p, --patch select hunks interactively
+ -q, --quiet print less information
+ --staged, --cached format lines in the stage instead of the working dir
+ --style STYLE passed to clang-format
+ -v, --verbose print extra information
+
Script for patch reformatting
=============================
More information about the cfe-commits
mailing list