Author: djasper Date: Sat Jul 11 01:46:26 2015 New Revision: 241976 URL: http://llvm.org/viewvc/llvm-project?rev=241976&view=rev Log: clang-format: Extend vim integration so that a line range can be passed in.
Modified: cfe/trunk/tools/clang-format/clang-format.py Modified: cfe/trunk/tools/clang-format/clang-format.py URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/clang-format.py?rev=241976&r1=241975&r2=241976&view=diff ============================================================================== --- cfe/trunk/tools/clang-format/clang-format.py (original) +++ cfe/trunk/tools/clang-format/clang-format.py Sat Jul 11 01:46:26 2015 @@ -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: _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits