4
4
isClosingBracketToken ,
5
5
isClosingParenToken ,
6
6
isNotClosingParenToken ,
7
+ isNotOpeningBraceToken ,
7
8
isOpeningBraceToken ,
8
9
isOpeningBracketToken ,
9
10
isOpeningParenToken ,
@@ -297,15 +298,6 @@ export function defineVisitor(context: IndentContext): NodeListener {
297
298
// A & B
298
299
visitor . TSUnionType ( node )
299
300
} ,
300
- TSParenthesizedType ( node : TSESTree . TSParenthesizedType ) {
301
- // (T)
302
- offsets . setOffsetElementList (
303
- [ node . typeAnnotation ] ,
304
- sourceCode . getFirstToken ( node ) ,
305
- sourceCode . getLastToken ( node ) ,
306
- 1 ,
307
- )
308
- } ,
309
301
TSMappedType ( node : TSESTree . TSMappedType ) {
310
302
// {[key in foo]: bar}
311
303
const leftBraceToken = sourceCode . getFirstToken ( node )
@@ -728,8 +720,7 @@ export function defineVisitor(context: IndentContext): NodeListener {
728
720
TSAbstractMethodDefinition (
729
721
node :
730
722
| TSESTree . TSAbstractMethodDefinition
731
- | TSESTree . TSAbstractClassProperty
732
- | TSESTree . ClassProperty
723
+ | TSESTree . TSAbstractPropertyDefinition
733
724
| TSESTree . TSEnumMember ,
734
725
) {
735
726
const { keyNode, valueNode } =
@@ -777,7 +768,7 @@ export function defineVisitor(context: IndentContext): NodeListener {
777
768
)
778
769
}
779
770
} ,
780
- TSAbstractClassProperty ( node : TSESTree . TSAbstractClassProperty ) {
771
+ TSAbstractPropertyDefinition ( node : TSESTree . TSAbstractPropertyDefinition ) {
781
772
visitor . TSAbstractMethodDefinition ( node )
782
773
} ,
783
774
TSEnumMember ( node : TSESTree . TSEnumMember ) {
@@ -951,9 +942,6 @@ export function defineVisitor(context: IndentContext): NodeListener {
951
942
// ----------------------------------------------------------------------
952
943
// NON-STANDARD NODES
953
944
// ----------------------------------------------------------------------
954
- ClassProperty ( node : TSESTree . ClassProperty ) {
955
- visitor . TSAbstractMethodDefinition ( node )
956
- } ,
957
945
Decorator ( node : TSESTree . Decorator ) {
958
946
// @Decorator
959
947
const [ atToken , secondToken ] = sourceCode . getFirstTokens ( node , {
@@ -992,6 +980,21 @@ export function defineVisitor(context: IndentContext): NodeListener {
992
980
)
993
981
}
994
982
} ,
983
+ StaticBlock ( node : TSESTree . StaticBlock ) {
984
+ const firstToken = sourceCode . getFirstToken ( node )
985
+ let next = sourceCode . getTokenAfter ( firstToken )
986
+ while ( next && isNotOpeningBraceToken ( next ) ) {
987
+ offsets . setOffsetToken ( next , 0 , firstToken )
988
+ next = sourceCode . getTokenAfter ( next )
989
+ }
990
+ offsets . setOffsetToken ( next , 0 , firstToken )
991
+ offsets . setOffsetElementList (
992
+ node . body ,
993
+ next ! ,
994
+ sourceCode . getLastToken ( node ) ,
995
+ 1 ,
996
+ )
997
+ } ,
995
998
// ----------------------------------------------------------------------
996
999
// SINGLE TOKEN NODES
997
1000
// ----------------------------------------------------------------------
@@ -1080,10 +1083,9 @@ export function defineVisitor(context: IndentContext): NodeListener {
1080
1083
const commonsVisitor : any = {
1081
1084
// Process semicolons.
1082
1085
[ "TSTypeAliasDeclaration, TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSImportEqualsDeclaration," +
1083
- "TSAbstractMethodDefinition, TSAbstractClassProperty, TSEnumMember, ClassProperty," +
1084
- "TSPropertySignature, TSIndexSignature, TSMethodSignature" ] (
1085
- node : ESTree . Node ,
1086
- ) {
1086
+ "TSAbstractMethodDefinition, TSAbstractPropertyDefinition, TSEnumMember," +
1087
+ "TSPropertySignature, TSIndexSignature, TSMethodSignature," +
1088
+ "TSAbstractClassProperty, ClassProperty" ] ( node : ESTree . Node ) {
1087
1089
const firstToken = sourceCode . getFirstToken ( node )
1088
1090
const lastToken = sourceCode . getLastToken ( node )
1089
1091
if ( isSemicolonToken ( lastToken ) && firstToken !== lastToken ) {
@@ -1094,6 +1096,71 @@ export function defineVisitor(context: IndentContext): NodeListener {
1094
1096
}
1095
1097
}
1096
1098
} ,
1099
+ // eslint-disable-next-line complexity -- ignore
1100
+ "*[type=/^TS/]" ( node : TSESTree . Node ) {
1101
+ if (
1102
+ node . type !== "TSAnyKeyword" &&
1103
+ node . type !== "TSArrayType" &&
1104
+ node . type !== "TSBigIntKeyword" &&
1105
+ node . type !== "TSBooleanKeyword" &&
1106
+ node . type !== "TSConditionalType" &&
1107
+ node . type !== "TSConstructorType" &&
1108
+ node . type !== "TSFunctionType" &&
1109
+ node . type !== "TSImportType" &&
1110
+ node . type !== "TSIndexedAccessType" &&
1111
+ node . type !== "TSInferType" &&
1112
+ node . type !== "TSIntersectionType" &&
1113
+ node . type !== "TSIntrinsicKeyword" &&
1114
+ node . type !== "TSLiteralType" &&
1115
+ node . type !== "TSMappedType" &&
1116
+ node . type !== "TSNamedTupleMember" &&
1117
+ node . type !== "TSNeverKeyword" &&
1118
+ node . type !== "TSNullKeyword" &&
1119
+ node . type !== "TSNumberKeyword" &&
1120
+ node . type !== "TSObjectKeyword" &&
1121
+ node . type !== "TSOptionalType" &&
1122
+ node . type !== "TSRestType" &&
1123
+ node . type !== "TSStringKeyword" &&
1124
+ node . type !== "TSSymbolKeyword" &&
1125
+ node . type !== "TSTemplateLiteralType" &&
1126
+ node . type !== "TSThisType" &&
1127
+ node . type !== "TSTupleType" &&
1128
+ node . type !== "TSTypeLiteral" &&
1129
+ node . type !== "TSTypeOperator" &&
1130
+ node . type !== "TSTypePredicate" &&
1131
+ node . type !== "TSTypeQuery" &&
1132
+ node . type !== "TSTypeReference" &&
1133
+ node . type !== "TSUndefinedKeyword" &&
1134
+ node . type !== "TSUnionType" &&
1135
+ node . type !== "TSUnknownKeyword" &&
1136
+ node . type !== "TSVoidKeyword"
1137
+ ) {
1138
+ return
1139
+ }
1140
+ const typeNode : TSESTree . TypeNode = node
1141
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
1142
+ if ( ( typeNode . parent as any ) . type === "TSParenthesizedType" ) {
1143
+ return
1144
+ }
1145
+ // Process parentheses.
1146
+ let leftToken = sourceCode . getTokenBefore ( typeNode )
1147
+ let rightToken = sourceCode . getTokenAfter ( typeNode )
1148
+ let firstToken = sourceCode . getFirstToken ( typeNode )
1149
+
1150
+ while (
1151
+ leftToken &&
1152
+ isOpeningParenToken ( leftToken ) &&
1153
+ rightToken &&
1154
+ isClosingParenToken ( rightToken )
1155
+ ) {
1156
+ offsets . setOffsetToken ( firstToken , 1 , leftToken )
1157
+ offsets . setOffsetToken ( rightToken , 0 , leftToken )
1158
+
1159
+ firstToken = leftToken
1160
+ leftToken = sourceCode . getTokenBefore ( leftToken )
1161
+ rightToken = sourceCode . getTokenAfter ( rightToken )
1162
+ }
1163
+ } ,
1097
1164
}
1098
1165
1099
1166
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
@@ -1125,11 +1192,34 @@ export function defineVisitor(context: IndentContext): NodeListener {
1125
1192
}
1126
1193
} ,
1127
1194
}
1195
+
1196
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
1197
+ const deprecatedVisitor : any = {
1198
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
1199
+ TSParenthesizedType ( node : any ) {
1200
+ // (T)
1201
+ offsets . setOffsetElementList (
1202
+ [ node . typeAnnotation ] ,
1203
+ sourceCode . getFirstToken ( node ) ,
1204
+ sourceCode . getLastToken ( node ) ,
1205
+ 1 ,
1206
+ )
1207
+ } ,
1208
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
1209
+ ClassProperty ( node : any ) {
1210
+ visitor . TSAbstractMethodDefinition ( node )
1211
+ } ,
1212
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
1213
+ TSAbstractClassProperty ( node : any ) {
1214
+ visitor . TSAbstractMethodDefinition ( node )
1215
+ } ,
1216
+ }
1128
1217
const v : NodeListener = visitor
1129
1218
1130
1219
return {
1131
1220
...v ,
1132
1221
...commonsVisitor ,
1133
1222
...extendsESVisitor ,
1223
+ ...deprecatedVisitor ,
1134
1224
}
1135
1225
}
0 commit comments