From 974c54917b47b610227e1da85f013f067965a4f7 Mon Sep 17 00:00:00 2001 From: Nikola Smiljanic Date: Thu, 8 May 2014 00:05:13 +0000 Subject: [PATCH] Enable alternative tokens by default for clang-format. Patch by Bobby Moretti. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208269 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Format/Format.h | 4 +-- lib/Format/Format.cpp | 1 + tools/clang-format/ClangFormat.cpp | 4 +-- unittests/Format/FormatTest.cpp | 45 ++++++++++++++++++++++++++++ unittests/Format/FormatTestProto.cpp | 4 +-- 5 files changed, 52 insertions(+), 6 deletions(-) diff --git a/include/clang/Format/Format.h b/include/clang/Format/Format.h index a48612105e..09c37d1cf7 100644 --- a/include/clang/Format/Format.h +++ b/include/clang/Format/Format.h @@ -460,8 +460,8 @@ tooling::Replacements reformat(const FormatStyle &Style, StringRef Code, /// /// \param Standard determines lexing mode: LC_Cpp11 and LS_Auto turn on C++11 /// lexing mode, LS_Cpp03 - C++03 mode. -LangOptions getFormattingLangOpts(FormatStyle::LanguageStandard Standard = - FormatStyle::LS_Cpp11); +LangOptions getFormattingLangOpts( + FormatStyle::LanguageStandard Standard = FormatStyle::LS_Cpp11); /// \brief Description to be used for help text for a llvm::cl option for /// specifying format style. The description is closely related to the operation diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 008b4159fa..efb790b359 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -1856,6 +1856,7 @@ LangOptions getFormattingLangOpts(FormatStyle::LanguageStandard Standard) { LangOpts.CPlusPlus11 = Standard == FormatStyle::LS_Cpp03 ? 0 : 1; LangOpts.CPlusPlus1y = Standard == FormatStyle::LS_Cpp03 ? 0 : 1; LangOpts.LineComment = 1; + LangOpts.CXXOperatorNames = 1; LangOpts.Bool = 1; LangOpts.ObjC1 = 1; LangOpts.ObjC2 = 1; diff --git a/tools/clang-format/ClangFormat.cpp b/tools/clang-format/ClangFormat.cpp index 6f94461aba..d26659d127 100644 --- a/tools/clang-format/ClangFormat.cpp +++ b/tools/clang-format/ClangFormat.cpp @@ -246,8 +246,8 @@ static bool format(StringRef FileName) { return true; } else { if (Cursor.getNumOccurrences() != 0) - outs() << "{ \"Cursor\": " << tooling::shiftedCodePosition( - Replaces, Cursor) << " }\n"; + outs() << "{ \"Cursor\": " + << tooling::shiftedCodePosition(Replaces, Cursor) << " }\n"; Rewrite.getEditBuffer(ID).write(outs()); } } diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 75f1854666..1e9251d524 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -270,6 +270,17 @@ TEST_F(FormatTest, ReformatsMovedLines) { 9, 5, getLLVMStyle())); } +TEST_F(FormatTest, RecognizesBinaryOperatorKeywords) { + verifyFormat("x = (a) and (b);"); + verifyFormat("x = (a) or (b);"); + verifyFormat("x = (a) bitand (b);"); + verifyFormat("x = (a) bitor (b);"); + verifyFormat("x = (a) not_eq (b);"); + verifyFormat("x = (a) and_eq (b);"); + verifyFormat("x = (a) or_eq (b);"); + verifyFormat("x = (a) xor (b);"); +} + //===----------------------------------------------------------------------===// // Tests for control statements. //===----------------------------------------------------------------------===// @@ -2861,9 +2872,21 @@ TEST_F(FormatTest, LineBreakingInBinaryExpressions) { "bool aaaaaaa =\n" " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaa).aaaaaaaaaaaaaaaaaaa() ||\n" " bbbbbbbb();"); + verifyFormat( + "bool aaaaaaa =\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaa).aaaaaaaaaaaaaaaaaaa() or\n" + " bbbbbbbb();"); + verifyFormat("bool aaaaaaaaaaaaaaaaaaaaa =\n" " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa != bbbbbbbbbbbbbbbbbb &&\n" " ccccccccc == ddddddddddd;"); + verifyFormat("bool aaaaaaaaaaaaaaaaaaaaa =\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa != bbbbbbbbbbbbbbbbbb and\n" + " ccccccccc == ddddddddddd;"); + verifyFormat( + "bool aaaaaaaaaaaaaaaaaaaaa =\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa not_eq bbbbbbbbbbbbbbbbbb and\n" + " ccccccccc == ddddddddddd;"); verifyFormat("aaaaaa = aaaaaaa(aaaaaaa, // break\n" " aaaaaa) &&\n" @@ -3609,20 +3632,42 @@ TEST_F(FormatTest, BreaksAccordingToOperatorPrecedence) { verifyFormat( "if (aaaaaaaaaaaaaaaaaaaaaaaaa ||\n" " bbbbbbbbbbbbbbbbbbbbbbbbb && ccccccccccccccccccccccccc) {\n}"); + verifyFormat( + "if (aaaaaaaaaaaaaaaaaaaaaaaaa or\n" + " bbbbbbbbbbbbbbbbbbbbbbbbb and cccccccccccccccccccccccc) {\n}"); + verifyFormat("if (aaaaaaaaaaaaaaaaaaaaaaaaa && bbbbbbbbbbbbbbbbbbbbbbbbb ||\n" " ccccccccccccccccccccccccc) {\n}"); + verifyFormat("if (aaaaaaaaaaaaaaaaaaaaaaaaa and bbbbbbbbbbbbbbbbbbbbbbbb or\n" + " ccccccccccccccccccccccccc) {\n}"); + verifyFormat("if (aaaaaaaaaaaaaaaaaaaaaaaaa || bbbbbbbbbbbbbbbbbbbbbbbbb ||\n" " ccccccccccccccccccccccccc) {\n}"); + verifyFormat("if (aaaaaaaaaaaaaaaaaaaaaaaaa or bbbbbbbbbbbbbbbbbbbbbbbbb or\n" + " ccccccccccccccccccccccccc) {\n}"); + verifyFormat( "if ((aaaaaaaaaaaaaaaaaaaaaaaaa || bbbbbbbbbbbbbbbbbbbbbbbbb) &&\n" " ccccccccccccccccccccccccc) {\n}"); + verifyFormat( + "if ((aaaaaaaaaaaaaaaaaaaaaaaaa or bbbbbbbbbbbbbbbbbbbbbbbbb) and\n" + " ccccccccccccccccccccccccc) {\n}"); + verifyFormat("return aaaa & AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ||\n" " bbbb & BBBBBBBBBBBBBBBBBBBBBBBBBBBBB ||\n" " cccc & CCCCCCCCCCCCCCCCCCCCCCCCCC ||\n" " dddd & DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD;"); + verifyFormat("return aaaa & AAAAAAAAAAAAAAAAAAAAAAAAAAAAA or\n" + " bbbb & BBBBBBBBBBBBBBBBBBBBBBBBBBBBB or\n" + " cccc & CCCCCCCCCCCCCCCCCCCCCCCCCC or\n" + " dddd & DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD;"); + verifyFormat("if ((aaaaaaaaaa != aaaaaaaaaaaaaaa ||\n" " aaaaaaaaaaaaaaaaaaaaaaaa() >= aaaaaaaaaaaaaaaaaaaa) &&\n" " aaaaaaaaaaaaaaa != aa) {\n}"); + verifyFormat("if ((aaaaaaaaaa != aaaaaaaaaaaaaaa or\n" + " aaaaaaaaaaaaaaaaaaaaaaaa() >= aaaaaaaaaaaaaaaaaaaa) and\n" + " aaaaaaaaaaaaaaa != aa) {\n}"); } TEST_F(FormatTest, BreaksAfterAssignments) { diff --git a/unittests/Format/FormatTestProto.cpp b/unittests/Format/FormatTestProto.cpp index a448e220c1..6506a6dc0b 100644 --- a/unittests/Format/FormatTestProto.cpp +++ b/unittests/Format/FormatTestProto.cpp @@ -52,10 +52,10 @@ TEST_F(FormatTestProto, FormatsMessages) { "}"); verifyFormat("message SomeMessage {\n" - " optional really.really.long.and.qualified.type.aaaaaaa\n" + " optional really.really.long.qualified.type.aaa.aaaaaaa\n" " fiiiiiiiiiiiiiiiiiiiiiiiiield = 1;\n" " optional\n" - " really.really.long.and.qualified.type.aaaaaaa.aaaaaaaa\n" + " really.really.long.qualified.type.aaa.aaaaaaa.aaaaaaaa\n" " another_fiiiiiiiiiiiiiiiiiiiiield = 2;\n" "}"); } -- 2.40.0