aboutsummaryrefslogtreecommitdiff
path: root/lib/Format/Format.cpp
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-01-25 10:57:27 +0000
committerDaniel Jasper <djasper@google.com>2013-01-25 10:57:27 +0000
commit63f003644420fff0ea3d463e68aee83f2f5842cd (patch)
tree8b7eaf9aca3c6befad7315831d6dd17550d439da /lib/Format/Format.cpp
parentae04222bc5143756c45c399cc8e504c8b12dc6fc (diff)
Allow breaking after "::" if absolutely necessary.
Otherwise, really long nested name specifiers can easily lead to a violation of the column limit. Not sure about the rules for indentation in those cases, so input is appreciated (see tests.). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173438 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Format/Format.cpp')
-rw-r--r--lib/Format/Format.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index b16eb15318..1cac334125 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -688,6 +688,8 @@ private:
return 50;
if (Left.is(tok::equal) && Right.is(tok::l_brace))
return 150;
+ if (Left.is(tok::coloncolon))
+ return 500;
// In for-loops, prefer breaking at ',' and ';'.
if (RootToken.is(tok::kw_for) &&
@@ -1597,10 +1599,11 @@ private:
return (isBinaryOperator(Left) && Left.isNot(tok::lessless)) ||
Left.is(tok::comma) || Right.is(tok::lessless) ||
Right.is(tok::arrow) || Right.is(tok::period) ||
- Right.is(tok::colon) || Left.is(tok::semi) ||
- Left.is(tok::l_brace) || Left.is(tok::question) || Left.Type ==
- TT_ConditionalExpr || (Left.is(tok::r_paren) && Left.Type !=
- TT_CastRParen && Right.is(tok::identifier)) ||
+ Right.is(tok::colon) || Left.is(tok::coloncolon) ||
+ Left.is(tok::semi) || Left.is(tok::l_brace) ||
+ Left.is(tok::question) || Left.Type == TT_ConditionalExpr ||
+ (Left.is(tok::r_paren) && Left.Type != TT_CastRParen &&
+ Right.is(tok::identifier)) ||
(Left.is(tok::l_paren) && !Right.is(tok::r_paren));
}