From 19c7de0a2262da2da139c7ddd7978cecdef1ffae Mon Sep 17 00:00:00 2001 From: Martin Probst Date: Wed, 26 Apr 2017 12:34:15 +0000 Subject: clang-format: [JS] prevent wraps before class members. Summary: In JavaScript/TypeScript, class member definitions that use modifiers can be subject to Automatic Semicolon Insertion (ASI). For example, "class X { get \n foo }" defines a property called "get" and a property called "foo", both with no type annotation. This change prevents wrapping after the modifier keywords (visibility modifiers, static, get and set) to prevent accidental ASI. Reviewers: djasper, bkramer Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D32531 llvm-svn: 301397 --- clang/lib/Format/TokenAnnotator.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'clang/lib/Format/TokenAnnotator.cpp') diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index bbc2d1e52b6..86380c6e6f1 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -2543,7 +2543,11 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line, if (NonComment && NonComment->isOneOf(tok::kw_return, tok::kw_continue, tok::kw_break, tok::kw_throw, Keywords.kw_interface, - Keywords.kw_type)) + Keywords.kw_type, tok::kw_static, tok::kw_public, + tok::kw_private, tok::kw_protected, + Keywords.kw_abstract, + Keywords.kw_get, + Keywords.kw_set)) return false; // Otherwise a semicolon is inserted. if (Left.is(TT_JsFatArrow) && Right.is(tok::l_brace)) return false; -- cgit v1.2.3