44 isClosingBracketToken ,
55 isClosingParenToken ,
66 isNotClosingParenToken ,
7+ isNotOpeningBraceToken ,
78 isOpeningBraceToken ,
89 isOpeningBracketToken ,
910 isOpeningParenToken ,
@@ -297,15 +298,6 @@ export function defineVisitor(context: IndentContext): NodeListener {
297298 // A & B
298299 visitor . TSUnionType ( node )
299300 } ,
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- } ,
309301 TSMappedType ( node : TSESTree . TSMappedType ) {
310302 // {[key in foo]: bar}
311303 const leftBraceToken = sourceCode . getFirstToken ( node )
@@ -728,8 +720,7 @@ export function defineVisitor(context: IndentContext): NodeListener {
728720 TSAbstractMethodDefinition (
729721 node :
730722 | TSESTree . TSAbstractMethodDefinition
731- | TSESTree . TSAbstractClassProperty
732- | TSESTree . ClassProperty
723+ | TSESTree . TSAbstractPropertyDefinition
733724 | TSESTree . TSEnumMember ,
734725 ) {
735726 const { keyNode, valueNode } =
@@ -777,7 +768,7 @@ export function defineVisitor(context: IndentContext): NodeListener {
777768 )
778769 }
779770 } ,
780- TSAbstractClassProperty ( node : TSESTree . TSAbstractClassProperty ) {
771+ TSAbstractPropertyDefinition ( node : TSESTree . TSAbstractPropertyDefinition ) {
781772 visitor . TSAbstractMethodDefinition ( node )
782773 } ,
783774 TSEnumMember ( node : TSESTree . TSEnumMember ) {
@@ -951,9 +942,6 @@ export function defineVisitor(context: IndentContext): NodeListener {
951942 // ----------------------------------------------------------------------
952943 // NON-STANDARD NODES
953944 // ----------------------------------------------------------------------
954- ClassProperty ( node : TSESTree . ClassProperty ) {
955- visitor . TSAbstractMethodDefinition ( node )
956- } ,
957945 Decorator ( node : TSESTree . Decorator ) {
958946 // @Decorator
959947 const [ atToken , secondToken ] = sourceCode . getFirstTokens ( node , {
@@ -992,6 +980,21 @@ export function defineVisitor(context: IndentContext): NodeListener {
992980 )
993981 }
994982 } ,
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+ } ,
995998 // ----------------------------------------------------------------------
996999 // SINGLE TOKEN NODES
9971000 // ----------------------------------------------------------------------
@@ -1080,10 +1083,9 @@ export function defineVisitor(context: IndentContext): NodeListener {
10801083 const commonsVisitor : any = {
10811084 // Process semicolons.
10821085 [ "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 ) {
10871089 const firstToken = sourceCode . getFirstToken ( node )
10881090 const lastToken = sourceCode . getLastToken ( node )
10891091 if ( isSemicolonToken ( lastToken ) && firstToken !== lastToken ) {
@@ -1094,6 +1096,71 @@ export function defineVisitor(context: IndentContext): NodeListener {
10941096 }
10951097 }
10961098 } ,
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+ } ,
10971164 }
10981165
10991166 // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
@@ -1125,11 +1192,34 @@ export function defineVisitor(context: IndentContext): NodeListener {
11251192 }
11261193 } ,
11271194 }
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+ }
11281217 const v : NodeListener = visitor
11291218
11301219 return {
11311220 ...v ,
11321221 ...commonsVisitor ,
11331222 ...extendsESVisitor ,
1223+ ...deprecatedVisitor ,
11341224 }
11351225}
0 commit comments