forked from OSchip/llvm-project
clang-format: [JS] Support getters, setters and methods in object literals.
llvm-svn: 233698
This commit is contained in:
parent
462501ee7e
commit
f46dec86b6
|
@ -1036,6 +1036,17 @@ bool UnwrappedLineParser::parseBracedList(bool ContinueOnSemicolons) {
|
||||||
FormatTok->BlockKind = BK_BracedInit;
|
FormatTok->BlockKind = BK_BracedInit;
|
||||||
parseBracedList();
|
parseBracedList();
|
||||||
break;
|
break;
|
||||||
|
case tok::r_paren:
|
||||||
|
// JavaScript can just have free standing methods and getters/setters in
|
||||||
|
// object literals. Detect them by a "{" following ")".
|
||||||
|
if (Style.Language == FormatStyle::LK_JavaScript) {
|
||||||
|
nextToken();
|
||||||
|
if (FormatTok->is(tok::l_brace))
|
||||||
|
parseChildBlock();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
nextToken();
|
||||||
|
break;
|
||||||
case tok::r_brace:
|
case tok::r_brace:
|
||||||
nextToken();
|
nextToken();
|
||||||
return !HasError;
|
return !HasError;
|
||||||
|
|
|
@ -144,6 +144,27 @@ TEST_F(FormatTestJS, ContainerLiterals) {
|
||||||
verifyFormat("x = foo && {a: 123};");
|
verifyFormat("x = foo && {a: 123};");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(FormatTestJS, MethodsInObjectLiterals) {
|
||||||
|
verifyFormat("var o = {\n"
|
||||||
|
" value: 'test',\n"
|
||||||
|
" get value() { // getter\n"
|
||||||
|
" return this.value;\n"
|
||||||
|
" }\n"
|
||||||
|
"};");
|
||||||
|
verifyFormat("var o = {\n"
|
||||||
|
" value: 'test',\n"
|
||||||
|
" set value(val) { // setter\n"
|
||||||
|
" this.value = val;\n"
|
||||||
|
" }\n"
|
||||||
|
"};");
|
||||||
|
verifyFormat("var o = {\n"
|
||||||
|
" value: 'test',\n"
|
||||||
|
" someMethod(val) { // method\n"
|
||||||
|
" doSomething(this.value + val);\n"
|
||||||
|
" }\n"
|
||||||
|
"};");
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(FormatTestJS, SpacesInContainerLiterals) {
|
TEST_F(FormatTestJS, SpacesInContainerLiterals) {
|
||||||
verifyFormat("var arr = [1, 2, 3];");
|
verifyFormat("var arr = [1, 2, 3];");
|
||||||
verifyFormat("f({a: 1, b: 2, c: 3});");
|
verifyFormat("f({a: 1, b: 2, c: 3});");
|
||||||
|
|
Loading…
Reference in New Issue