From 94e11d02d88ea33c3212d3dab3dc0245509c8fe5 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Thu, 4 Sep 2014 14:58:30 +0000 Subject: clang-format: [JS] Support comments in dict literals. Before: var stuff = { // comment for update update : false, // comment for update modules : false, // comment for update tasks : false }; After: var stuff = { // comment for update update : false, // comment for update modules : false, // comment for update tasks : false }; llvm-svn: 217157 --- clang/lib/Format/TokenAnnotator.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'clang/lib') diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 3b92c10..6142e7d 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -1100,7 +1100,7 @@ public: ++OperatorIndex; } - next(); + next(/*SkipPastLeadingComments=*/false); } } } @@ -1113,7 +1113,9 @@ private: if (Current->Type == TT_ConditionalExpr) return prec::Conditional; else if (Current->is(tok::semi) || Current->Type == TT_InlineASMColon || - Current->Type == TT_SelectorName) + Current->Type == TT_SelectorName || + (Current->is(tok::comment) && Current->getNextNonComment() && + Current->getNextNonComment()->Type == TT_SelectorName)) return 0; else if (Current->Type == TT_RangeBasedForLoopColon) return prec::Comma; @@ -1166,10 +1168,12 @@ private: addFakeParenthesis(Start, prec::Conditional); } - void next() { + void next(bool SkipPastLeadingComments = true) { if (Current) Current = Current->Next; - while (Current && Current->isTrailingComment()) + while (Current && + (Current->NewlinesBefore == 0 || SkipPastLeadingComments) && + Current->isTrailingComment()) Current = Current->Next; } -- cgit v1.1