summaryrefslogtreecommitdiffstats
path: root/clang/tools/clang-format
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2015-07-11 06:46:26 +0000
committerDaniel Jasper <djasper@google.com>2015-07-11 06:46:26 +0000
commit1a5ea6eb205ef7563530f9c014d5c1d15abe3989 (patch)
tree295e0ad7768116408f71454db227d35efd9fecf3 /clang/tools/clang-format
parent00ebdbcc47bd94a99a922e3d51490c4391518e75 (diff)
downloadbcm5719-llvm-1a5ea6eb205ef7563530f9c014d5c1d15abe3989.tar.gz
bcm5719-llvm-1a5ea6eb205ef7563530f9c014d5c1d15abe3989.zip
clang-format: Extend vim integration so that a line range can be passed in.
llvm-svn: 241976
Diffstat (limited to 'clang/tools/clang-format')
-rw-r--r--clang/tools/clang-format/clang-format.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/clang/tools/clang-format/clang-format.py b/clang/tools/clang-format/clang-format.py
index 49ca773b049..5cb41fcfa37 100644
--- a/clang/tools/clang-format/clang-format.py
+++ b/clang/tools/clang-format/clang-format.py
@@ -14,6 +14,15 @@
# VISUAL mode. The line or region is extended to the next bigger syntactic
# entity.
#
+# You can also pass in the variable "l:lines" to choose the range for
+# formatting. This variable can either contain "<start line>:<end line>" or
+# "all" to format the full file. So, to format the full file, write a function
+# like:
+# :function FormatFile()
+# : let l:lines="all"
+# : pyf <path-to-this-file>/clang-format.py
+# :endfunction
+#
# It operates on the current, potentially unsaved buffer and does not create
# or save any files. To revert a formatting, just undo.
@@ -44,7 +53,10 @@ def main():
text = '\n'.join(buf)
# Determine range to format.
- lines = '%s:%s' % (vim.current.range.start + 1, vim.current.range.end + 1)
+ if vim.eval('exists("l:lines")') == '1':
+ lines = vim.eval('l:lines')
+ else:
+ lines = '%s:%s' % (vim.current.range.start + 1, vim.current.range.end + 1)
# Determine the cursor position.
cursor = int(vim.eval('line2byte(line("."))+col(".")')) - 2
@@ -60,7 +72,9 @@ def main():
startupinfo.wShowWindow = subprocess.SW_HIDE
# Call formatter.
- command = [binary, '-lines', lines, '-style', style, '-cursor', str(cursor)]
+ command = [binary, '-style', style, '-cursor', str(cursor)]
+ if lines != 'all':
+ command.extend(['-lines', lines])
if fallback_style:
command.extend(['-fallback-style', fallback_style])
if vim.current.buffer.name:
OpenPOWER on IntegriCloud