<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">I think we should make FallbackStyle a command line parameter. What do you think?</span><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Mon, Sep 2, 2013 at 9:42 AM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Author: chandlerc<br>
Date: Mon Sep  2 02:42:02 2013<br>
New Revision: 189741<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=189741&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=189741&view=rev</a><br>
Log:<br>
Switch the default mode for clang-format to '-file'. Make 'LLVM' the<br>
fallback syntax used when we fail to find a '.clang-format' file. Adjust<br>
variable names appropriately.<br>
<br>
Update the editor integration pieces that specify a '-style' option to<br>
specify it as '-style=file'. I left the functionality in place because<br>
even if the preferred method is to use '.clang-format' files, this way<br>
if someone needs to clobber the style in their editor we show how to do<br>
so in these examples.<br>
<br>
Also check in a '.clang-format' file for Clang to ensure that separate<br>
checkouts and builds of Clang from LLVM can still get the nice<br>
formatting. =] This unfortunately required nuking the test for the<br>
absence of a '.clang-format' file as now the directory happening to be<br>
under your clang source tree will cause there to always be a file. ;]<br>
<br>
Added:<br>
    cfe/trunk/.clang-format<br>
Modified:<br>
    cfe/trunk/test/Format/style-on-command-line.cpp<br>
    cfe/trunk/tools/clang-format/ClangFormat.cpp<br>
    cfe/trunk/tools/clang-format/clang-format-sublime.py<br>
    cfe/trunk/tools/clang-format/clang-format.el<br>
    cfe/trunk/tools/clang-format/clang-format.py<br>
<br>
Added: cfe/trunk/.clang-format<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/.clang-format?rev=189741&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/.clang-format?rev=189741&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/.clang-format (added)<br>
+++ cfe/trunk/.clang-format Mon Sep  2 02:42:02 2013<br>
@@ -0,0 +1 @@<br>
+BasedOnStyle: LLVM<br>
<br>
Modified: cfe/trunk/test/Format/style-on-command-line.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Format/style-on-command-line.cpp?rev=189741&r1=189740&r2=189741&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Format/style-on-command-line.cpp?rev=189741&r1=189740&r2=189741&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/test/Format/style-on-command-line.cpp (original)<br>
+++ cfe/trunk/test/Format/style-on-command-line.cpp Mon Sep  2 02:42:02 2013<br>
@@ -4,9 +4,8 @@<br>
 // RUN: clang-format -style="{BasedOnStyle: invalid, IndentWidth: 7}" %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK3 %s<br>
 // RUN: clang-format -style="{lsjd}" %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK4 %s<br>
 // RUN: [ ! -e %T/.clang-format ] || rm %T/.clang-format<br>
-// RUN: clang-format -style=file %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK5 %s<br>
 // RUN: printf "BasedOnStyle: google\nIndentWidth: 5\n" > %T/.clang-format<br>
-// RUN: clang-format -style=file %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK6 %s<br>
+// RUN: clang-format -style=file %t.cpp 2>&1 | FileCheck -strict-whitespace -check-prefix=CHECK5 %s<br>
 void f() {<br>
 // CHECK1: {{^        int\* i;$}}<br>
 // CHECK2: {{^       int \*i;$}}<br>
@@ -15,9 +14,7 @@ void f() {<br>
 // CHECK3: {{^  int \*i;$}}<br>
 // CHECK4: Error parsing -style: Invalid argument, using LLVM style<br>
 // CHECK4: {{^  int \*i;$}}<br>
-// CHECK5: Can't find usable .clang-format, using LLVM style<br>
-// CHECK5: {{^  int \*i;$}}<br>
-// CHECK6: {{^     int\* i;$}}<br>
+// CHECK5: {{^     int\* i;$}}<br>
 int*i;<br>
 int j;<br>
 }<br>
<br>
Modified: cfe/trunk/tools/clang-format/ClangFormat.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/ClangFormat.cpp?rev=189741&r1=189740&r2=189741&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/ClangFormat.cpp?rev=189741&r1=189740&r2=189741&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/tools/clang-format/ClangFormat.cpp (original)<br>
+++ cfe/trunk/tools/clang-format/ClangFormat.cpp Mon Sep  2 02:42:02 2013<br>
@@ -27,8 +27,8 @@<br>
<br>
 using namespace llvm;<br>
<br>
-// Default style to use when no style specified or specified style not found.<br>
-static const char *DefaultStyle = "LLVM";<br>
+// Fallback style when no style specified or found in a .clang-format file.<br>
+static const char FallbackStyle[] = "LLVM";<br>
<br>
 static cl::opt<bool> Help("h", cl::desc("Alias for -help"), cl::Hidden);<br>
<br>
@@ -72,7 +72,7 @@ static cl::opt<std::string><br>
                    "Use -style=\"{key: value, ...}\" to set specific\n"<br>
                    "parameters, e.g.:\n"<br>
                    "  -style=\"{BasedOnStyle: llvm, IndentWidth: 8}\""),<br>
-          cl::init(DefaultStyle), cl::cat(ClangFormatCategory));<br>
+          cl::init("file"), cl::cat(ClangFormatCategory));<br>
 static cl::opt<bool> Inplace("i",<br>
                              cl::desc("Inplace edit <file>s, if specified."),<br>
                              cl::cat(ClangFormatCategory));<br>
@@ -108,20 +108,20 @@ static FileID createInMemoryFile(StringR<br>
<br>
 FormatStyle getStyle(StringRef StyleName, StringRef FileName) {<br>
   FormatStyle Style;<br>
-  getPredefinedStyle(DefaultStyle, &Style);<br>
+  getPredefinedStyle(FallbackStyle, &Style);<br>
<br>
   if (StyleName.startswith("{")) {<br>
     // Parse YAML/JSON style from the command line.<br>
     if (error_code ec = parseConfiguration(StyleName, &Style)) {<br>
       llvm::errs() << "Error parsing -style: " << ec.message()<br>
-                   << ", using " << DefaultStyle << " style\n";<br>
+                   << ", using " << FallbackStyle << " style\n";<br>
     }<br>
     return Style;<br>
   }<br>
<br>
   if (!StyleName.equals_lower("file")) {<br>
     if (!getPredefinedStyle(StyleName, &Style))<br>
-      llvm::errs() << "Invalid value for -style, using " << DefaultStyle<br>
+      llvm::errs() << "Invalid value for -style, using " << FallbackStyle<br>
                    << " style\n";<br>
     return Style;<br>
   }<br>
@@ -153,7 +153,7 @@ FormatStyle getStyle(StringRef StyleName<br>
       return Style;<br>
     }<br>
   }<br>
-  llvm::errs() << "Can't find usable .clang-format, using " << DefaultStyle<br>
+  llvm::errs() << "Can't find usable .clang-format, using " << FallbackStyle<br>
                << " style\n";<br>
   return Style;<br>
 }<br>
<br>
Modified: cfe/trunk/tools/clang-format/clang-format-sublime.py<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/clang-format-sublime.py?rev=189741&r1=189740&r2=189741&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/clang-format-sublime.py?rev=189741&r1=189740&r2=189741&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/tools/clang-format/clang-format-sublime.py (original)<br>
+++ cfe/trunk/tools/clang-format/clang-format-sublime.py Mon Sep  2 02:42:02 2013<br>
@@ -19,9 +19,10 @@ import subprocess<br>
 # Change this to the full path if clang-format is not on the path.<br>
 binary = 'clang-format'<br>
<br>
-# Change this to format according to other formatting styles<br>
-# (see clang-format -help).<br>
-style = 'LLVM'<br>
+# Change this to format according to other formatting styles. See the output of<br>
+# 'clang-format --help' for a list of supported styles. The default looks for<br>
+# a '.clang-format' file to indicate the style that should be used.<br>
+style = 'file'<br>
<br>
 class ClangFormatCommand(sublime_plugin.TextCommand):<br>
   def run(self, edit):<br>
<br>
Modified: cfe/trunk/tools/clang-format/clang-format.el<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/clang-format.el?rev=189741&r1=189740&r2=189741&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/clang-format.el?rev=189741&r1=189740&r2=189741&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/tools/clang-format/clang-format.el (original)<br>
+++ cfe/trunk/tools/clang-format/clang-format.el Mon Sep  2 02:42:02 2013<br>
@@ -36,7 +36,7 @@<br>
   (let* ((orig-windows (get-buffer-window-list (current-buffer)))<br>
          (orig-window-starts (mapcar #'window-start orig-windows))<br>
          (orig-point (point))<br>
-         (style "LLVM"))<br>
+         (style "file"))<br>
     (unwind-protect<br>
         (call-process-region (point-min) (point-max) clang-format-binary t t nil<br>
                              "-offset" (number-to-string (1- begin))<br>
<br>
Modified: cfe/trunk/tools/clang-format/clang-format.py<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/clang-format.py?rev=189741&r1=189740&r2=189741&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/clang-format.py?rev=189741&r1=189740&r2=189741&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/tools/clang-format/clang-format.py (original)<br>
+++ cfe/trunk/tools/clang-format/clang-format.py Mon Sep  2 02:42:02 2013<br>
@@ -26,9 +26,10 @@ import vim<br>
 # Change this to the full path if clang-format is not on the path.<br>
 binary = 'clang-format'<br>
<br>
-# Change this to format according to other formatting styles (see<br>
-# clang-format -help)<br>
-style = 'LLVM'<br>
+# Change this to format according to other formatting styles. See the output of<br>
+# 'clang-format --help' for a list of supported styles. The default looks for<br>
+# a '.clang-format' file to indicate the style that should be used.<br>
+style = 'file'<br>
<br>
 # Get the current text.<br>
 buf = vim.current.buffer<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>