From: Daniel Jasper Date: Tue, 12 Jan 2016 06:24:38 +0000 (+0000) Subject: clang-format: [JS] Support exporting abstract classes. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=318abdbd287db830623b81836bdd79bdee2d79f2;p=clang clang-format: [JS] Support exporting abstract classes. Before: export abstract class X {y: number;} (and all sorts of other havoc in more complicated cases). After: export abstract class X { y: number; } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@257451 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index d35d8a6053..7b8f6e6524 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -1809,6 +1809,10 @@ void UnwrappedLineParser::parseJavaScriptEs6ImportExport() { return; } + // Consume the "abstract" in "export abstract class". + if (FormatTok->is(Keywords.kw_abstract)) + nextToken(); + if (FormatTok->isOneOf(tok::kw_const, tok::kw_class, tok::kw_enum, Keywords.kw_interface, Keywords.kw_let, Keywords.kw_var)) diff --git a/unittests/Format/FormatTestJS.cpp b/unittests/Format/FormatTestJS.cpp index 5e9a1b533c..992331cecb 100644 --- a/unittests/Format/FormatTestJS.cpp +++ b/unittests/Format/FormatTestJS.cpp @@ -878,6 +878,7 @@ TEST_F(FormatTestJS, Modules) { " y: string;\n" "}"); verifyFormat("export class X { y: number; }"); + verifyFormat("export abstract class X { y: number; }"); verifyFormat("export default class X { y: number }"); verifyFormat("export default function() {\n return 1;\n}"); verifyFormat("export var x = 12;");