Skip to content

Commit 55c14db

Browse files
committed
support for AccessorProperty
1 parent a3fb7b9 commit 55c14db

File tree

1 file changed

+44
-6
lines changed

1 file changed

+44
-6
lines changed

lib/utils/indent-ts.js

+44-6
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const { isTypeNode } = require('./ts-ast-utils')
2929
* @typedef {import('@typescript-eslint/types').TSESTree.TSImportEqualsDeclaration} TSImportEqualsDeclaration
3030
* @typedef {import('@typescript-eslint/types').TSESTree.TSAbstractMethodDefinition} TSAbstractMethodDefinition
3131
* @typedef {import('@typescript-eslint/types').TSESTree.TSAbstractPropertyDefinition} TSAbstractPropertyDefinition
32+
* @typedef {import('@typescript-eslint/types').TSESTree.TSAbstractAccessorProperty} TSAbstractAccessorProperty
3233
* @typedef {import('@typescript-eslint/types').TSESTree.TSEnumMember} TSEnumMember
3334
* @typedef {import('@typescript-eslint/types').TSESTree.TSPropertySignature} TSPropertySignature
3435
* @typedef {import('@typescript-eslint/types').TSESTree.TSIndexSignature} TSIndexSignature
@@ -206,15 +207,16 @@ function defineVisitor({
206207
* | TSImportEqualsDeclaration
207208
* | TSAbstractMethodDefinition
208209
* | TSAbstractPropertyDefinition
209-
* | TSAbstractClassProperty
210+
* | TSAbstractAccessorProperty
210211
* | TSEnumMember
211-
* | ClassProperty
212212
* | TSPropertySignature
213213
* | TSIndexSignature
214-
* | TSMethodSignature} node
214+
* | TSMethodSignature
215+
* | ClassProperty
216+
* | TSAbstractClassProperty} node
215217
*/
216218
['TSTypeAliasDeclaration, TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSImportEqualsDeclaration,' +
217-
'TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSEnumMember,' +
219+
'TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSAbstractAccessorProperty, TSEnumMember,' +
218220
'TSPropertySignature, TSIndexSignature, TSMethodSignature,' +
219221
// Deprecated in @typescript-eslint/parser v5
220222
'ClassProperty, TSAbstractClassProperty'](node) {
@@ -1073,10 +1075,10 @@ function defineVisitor({
10731075
* // ^^^^^^^
10741076
* ```
10751077
*
1076-
* @param {TSAbstractMethodDefinition | TSAbstractPropertyDefinition | TSEnumMember | TSAbstractClassProperty | ClassProperty} node
1078+
* @param {TSAbstractMethodDefinition | TSAbstractPropertyDefinition | TSAbstractAccessorProperty | TSEnumMember | TSAbstractClassProperty | ClassProperty} node
10771079
*
10781080
*/
1079-
['TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSEnumMember,' +
1081+
['TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSAbstractAccessorProperty, TSEnumMember,' +
10801082
// Deprecated in @typescript-eslint/parser v5
10811083
'ClassProperty, TSAbstractClassProperty'](node) {
10821084
const { keyNode, valueNode } =
@@ -1335,6 +1337,42 @@ function defineVisitor({
13351337
setOffset(atToken, 0, tokenStore.getFirstToken(decorators[0]))
13361338
}
13371339
},
1340+
AccessorProperty(node) {
1341+
const keyNode = node.key
1342+
const valueNode = node.value
1343+
const firstToken = tokenStore.getFirstToken(node)
1344+
const keyTokens = getFirstAndLastTokens(keyNode)
1345+
const prefixTokens = tokenStore.getTokensBetween(
1346+
firstToken,
1347+
keyTokens.firstToken
1348+
)
1349+
if (node.computed) {
1350+
prefixTokens.pop() // pop [
1351+
}
1352+
setOffset(prefixTokens, 0, firstToken)
1353+
let lastKeyToken
1354+
if (node.computed) {
1355+
const leftBracketToken = tokenStore.getTokenBefore(keyTokens.firstToken)
1356+
const rightBracketToken = (lastKeyToken = tokenStore.getTokenAfter(
1357+
keyTokens.lastToken
1358+
))
1359+
setOffset(leftBracketToken, 0, firstToken)
1360+
processNodeList([keyNode], leftBracketToken, rightBracketToken, 1)
1361+
} else {
1362+
setOffset(keyTokens.firstToken, 0, firstToken)
1363+
lastKeyToken = keyTokens.lastToken
1364+
}
1365+
1366+
if (valueNode != null) {
1367+
const initToken = tokenStore.getFirstToken(valueNode)
1368+
setOffset(
1369+
[...tokenStore.getTokensBetween(lastKeyToken, initToken), initToken],
1370+
1,
1371+
lastKeyToken
1372+
)
1373+
}
1374+
processSemicolons(node)
1375+
},
13381376
ImportAttribute(node) {
13391377
const firstToken = tokenStore.getFirstToken(node)
13401378
const keyTokens = getFirstAndLastTokens(node.key)

0 commit comments

Comments
 (0)