From 439fc85f4663810984962a8346d000be79df6bdc Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Mon, 2 Sep 2013 07:42:02 +0000 Subject: [PATCH] Switch the default mode for clang-format to '-file'. Make 'LLVM' the fallback syntax used when we fail to find a '.clang-format' file. Adjust variable names appropriately. Update the editor integration pieces that specify a '-style' option to specify it as '-style=file'. I left the functionality in place because even if the preferred method is to use '.clang-format' files, this way if someone needs to clobber the style in their editor we show how to do so in these examples. Also check in a '.clang-format' file for Clang to ensure that separate checkouts and builds of Clang from LLVM can still get the nice formatting. =] This unfortunately required nuking the test for the absence of a '.clang-format' file as now the directory happening to be under your clang source tree will cause there to always be a file. ;] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189741 91177308-0d34-0410-b5e6-96231b3b80d8 --- .clang-format | 1 + test/Format/style-on-command-line.cpp | 7 ++----- tools/clang-format/ClangFormat.cpp | 14 +++++++------- tools/clang-format/clang-format-sublime.py | 7 ++++--- tools/clang-format/clang-format.el | 2 +- tools/clang-format/clang-format.py | 7 ++++--- 6 files changed, 19 insertions(+), 19 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 000000000000..9b3aa8b7213b --- /dev/null +++ b/.clang-format @@ -0,0 +1 @@ +BasedOnStyle: LLVM diff --git a/test/Format/style-on-command-line.cpp b/test/Format/style-on-command-line.cpp index 9b91259c6506..6f81b9bf723e 100644 --- a/test/Format/style-on-command-line.cpp +++ b/test/Format/style-on-command-line.cpp @@ -4,9 +4,8 @@ // RUN: clang-format -style="{BasedOnStyle: invalid, IndentWidth: 7}" %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK3 %s // RUN: clang-format -style="{lsjd}" %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK4 %s // RUN: [ ! -e %T/.clang-format ] || rm %T/.clang-format -// RUN: clang-format -style=file %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK5 %s // RUN: printf "BasedOnStyle: google\nIndentWidth: 5\n" > %T/.clang-format -// RUN: clang-format -style=file %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK6 %s +// RUN: clang-format -style=file %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK5 %s void f() { // CHECK1: {{^ int\* i;$}} // CHECK2: {{^ int \*i;$}} @@ -15,9 +14,7 @@ void f() { // CHECK3: {{^ int \*i;$}} // CHECK4: Error parsing -style: Invalid argument, using LLVM style // CHECK4: {{^ int \*i;$}} -// CHECK5: Can't find usable .clang-format, using LLVM style -// CHECK5: {{^ int \*i;$}} -// CHECK6: {{^ int\* i;$}} +// CHECK5: {{^ int\* i;$}} int*i; int j; } diff --git a/tools/clang-format/ClangFormat.cpp b/tools/clang-format/ClangFormat.cpp index faf96fdf784b..b76504db1d65 100644 --- a/tools/clang-format/ClangFormat.cpp +++ b/tools/clang-format/ClangFormat.cpp @@ -27,8 +27,8 @@ using namespace llvm; -// Default style to use when no style specified or specified style not found. -static const char *DefaultStyle = "LLVM"; +// Fallback style when no style specified or found in a .clang-format file. +static const char FallbackStyle[] = "LLVM"; static cl::opt Help("h", cl::desc("Alias for -help"), cl::Hidden); @@ -72,7 +72,7 @@ static cl::opt "Use -style=\"{key: value, ...}\" to set specific\n" "parameters, e.g.:\n" " -style=\"{BasedOnStyle: llvm, IndentWidth: 8}\""), - cl::init(DefaultStyle), cl::cat(ClangFormatCategory)); + cl::init("file"), cl::cat(ClangFormatCategory)); static cl::opt Inplace("i", cl::desc("Inplace edit s, if specified."), cl::cat(ClangFormatCategory)); @@ -108,20 +108,20 @@ static FileID createInMemoryFile(StringRef FileName, const MemoryBuffer *Source, FormatStyle getStyle(StringRef StyleName, StringRef FileName) { FormatStyle Style; - getPredefinedStyle(DefaultStyle, &Style); + getPredefinedStyle(FallbackStyle, &Style); if (StyleName.startswith("{")) { // Parse YAML/JSON style from the command line. if (error_code ec = parseConfiguration(StyleName, &Style)) { llvm::errs() << "Error parsing -style: " << ec.message() - << ", using " << DefaultStyle << " style\n"; + << ", using " << FallbackStyle << " style\n"; } return Style; } if (!StyleName.equals_lower("file")) { if (!getPredefinedStyle(StyleName, &Style)) - llvm::errs() << "Invalid value for -style, using " << DefaultStyle + llvm::errs() << "Invalid value for -style, using " << FallbackStyle << " style\n"; return Style; } @@ -153,7 +153,7 @@ FormatStyle getStyle(StringRef StyleName, StringRef FileName) { return Style; } } - llvm::errs() << "Can't find usable .clang-format, using " << DefaultStyle + llvm::errs() << "Can't find usable .clang-format, using " << FallbackStyle << " style\n"; return Style; } diff --git a/tools/clang-format/clang-format-sublime.py b/tools/clang-format/clang-format-sublime.py index d41404ed0f5c..73ff3dc82392 100644 --- a/tools/clang-format/clang-format-sublime.py +++ b/tools/clang-format/clang-format-sublime.py @@ -19,9 +19,10 @@ # Change this to the full path if clang-format is not on the path. binary = 'clang-format' -# Change this to format according to other formatting styles -# (see clang-format -help). -style = 'LLVM' +# Change this to format according to other formatting styles. See the output of +# 'clang-format --help' for a list of supported styles. The default looks for +# a '.clang-format' file to indicate the style that should be used. +style = 'file' class ClangFormatCommand(sublime_plugin.TextCommand): def run(self, edit): diff --git a/tools/clang-format/clang-format.el b/tools/clang-format/clang-format.el index b0131ed31949..531635e8ecfb 100644 --- a/tools/clang-format/clang-format.el +++ b/tools/clang-format/clang-format.el @@ -36,7 +36,7 @@ (let* ((orig-windows (get-buffer-window-list (current-buffer))) (orig-window-starts (mapcar #'window-start orig-windows)) (orig-point (point)) - (style "LLVM")) + (style "file")) (unwind-protect (call-process-region (point-min) (point-max) clang-format-binary t t nil "-offset" (number-to-string (1- begin)) diff --git a/tools/clang-format/clang-format.py b/tools/clang-format/clang-format.py index 1d27985ea085..4077b4180cf0 100644 --- a/tools/clang-format/clang-format.py +++ b/tools/clang-format/clang-format.py @@ -26,9 +26,10 @@ # Change this to the full path if clang-format is not on the path. binary = 'clang-format' -# Change this to format according to other formatting styles (see -# clang-format -help) -style = 'LLVM' +# Change this to format according to other formatting styles. See the output of +# 'clang-format --help' for a list of supported styles. The default looks for +# a '.clang-format' file to indicate the style that should be used. +style = 'file' # Get the current text. buf = vim.current.buffer