clang-format: [JS] Support classes.
This adds support for JavaScript class definitions (again following
TypeScript & AtScript style). This only required support for
visibility modifiers in JS, everything else was already working.
Patch by Martin Probst, thank you.
llvm-svn: 229701
diff --git a/clang/unittests/Format/FormatTestJS.cpp b/clang/unittests/Format/FormatTestJS.cpp
index d5ce580..f062cbf 100644
--- a/clang/unittests/Format/FormatTestJS.cpp
+++ b/clang/unittests/Format/FormatTestJS.cpp
@@ -500,5 +500,15 @@
verifyFormat("var x: P<string, (a: number) => string>;");
}
+TEST_F(FormatTestJS, ClassDeclarations) {
+ verifyFormat("class C {\n x: string = 12;\n}");
+ verifyFormat("class C {\n x(): string => 12;\n}");
+ verifyFormat("class C {\n ['x' + 2]: string = 12;\n}");
+ verifyFormat("class C {\n private x: string = 12;\n}");
+ verifyFormat("class C {\n private static x: string = 12;\n}");
+ verifyFormat("class C {\n static x(): string { return 'asd'; }\n}");
+ verifyFormat("class C extends P implements I {}");
+}
+
} // end namespace tooling
} // end namespace clang