Skip to content

Commit 72e4d95

Browse files
add MethodDefinitionComputedOpening and MethodDefinitionComputedClosing support. fixes #470
1 parent 3c1c2fa commit 72e4d95

File tree

5 files changed

+34
-5
lines changed

5 files changed

+34
-5
lines changed

lib/hooks/MethodDefinition.js

+16-5
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,24 @@ var ws = require('rocambole-whitespace');
77

88
exports.format = function MethodDefinition(node) {
99
br.limitAfter(node.startToken, 0);
10-
// limit to one space after get/set/static
11-
if (node.startToken !== node.key.startToken) {
12-
ws.limitAfter(node.startToken, 1);
10+
11+
// key name
12+
if (node.startToken.value === '[') {
13+
// computed key
14+
limit.around(node.startToken, 'MethodDefinitionComputedOpening');
15+
limit.around(
16+
tk.findNext(node.key.endToken, ']'),
17+
'MethodDefinitionComputedClosing'
18+
);
19+
} else {
20+
if (node.startToken !== node.key.startToken) {
21+
// limit to one space after get/set/static
22+
ws.limitAfter(node.startToken, 1);
23+
}
24+
ws.limitAfter(node.key.endToken, 'MethodDefinitionName');
1325
}
14-
ws.limitAfter(node.key.endToken, 'MethodDefinitionName');
1526

16-
// parentheses {}
27+
// curly braces {}
1728
var opening = node.value.body.startToken;
1829
limit.around(opening, 'MethodDefinitionOpeningBrace');
1930
limit.around(node.endToken, 'MethodDefinitionClosingBrace');

lib/preset/default-whitespace-after.js

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ module.exports = {
7474
"MemberExpressionClosing": 0,
7575
"MemberExpressionOpening": 0,
7676
"MemberExpressionPeriod": 0,
77+
"MethodDefinitionComputedOpening": 0,
7778
"MethodDefinitionName": 0,
7879
"MethodName": 0,
7980
"ModuleSpecifierClosingBrace": 0,

lib/preset/default-whitespace-before.js

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ module.exports = {
7575
"MemberExpressionClosing": 0,
7676
"MemberExpressionOpening": 0,
7777
"MemberExpressionPeriod": 0,
78+
"MethodDefinitionComputedClosing": 0,
7879
"ModuleSpecifierClosingBrace": 1,
7980
"ModuleSpecifierComma": 0,
8081
"ModuleSpecifierOpeningBrace": 1,

test/compare/default/class_declaration-in.js

+8
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,11 @@ Bar
4545
class Foo extends BarNamespace.Bar{}
4646
class Foo extends BarNamespace['Bar'].Bar["Bar"]('bar').Bar("bar", "bar"){}
4747
class Foo extends(BarNamespace.bar)(){}
48+
49+
// #470
50+
const mySym = Symbol('some-symbol');
51+
class Foo {
52+
[ mySym ]() {
53+
return true;
54+
}
55+
}

test/compare/default/class_declaration-out.js

+8
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,11 @@ class Foo extends BarNamespace['Bar'].Bar["Bar"]('bar').Bar("bar", "bar") {
4747
}
4848
class Foo extends (BarNamespace.bar)() {
4949
}
50+
51+
// #470
52+
const mySym = Symbol('some-symbol');
53+
class Foo {
54+
[mySym]() {
55+
return true;
56+
}
57+
}

0 commit comments

Comments
 (0)