@@ -6,6 +6,7 @@ import type { IndentContext } from './commons';
6
6
import { isBeginningOfElement } from './commons' ;
7
7
import { isBeginningOfLine } from './commons' ;
8
8
import { getFirstAndLastTokens } from './commons' ;
9
+ import { isClosingParenToken , isOpeningParenToken } from '@eslint-community/eslint-utils' ;
9
10
10
11
type NodeListener = SvelteNodeListener ;
11
12
const PREFORMATTED_ELEMENT_NAMES = [ 'pre' , 'textarea' , 'template' ] ;
@@ -213,6 +214,21 @@ export function defineVisitor(context: IndentContext): NodeListener {
213
214
offsets . setOffsetToken ( declarationToken , 1 , openToken ) ;
214
215
offsets . setOffsetToken ( closeToken , 0 , openToken ) ;
215
216
} ,
217
+ SvelteRenderTag ( node : AST . SvelteRenderTag ) {
218
+ const openToken = sourceCode . getFirstToken ( node ) ;
219
+ const renderToken = sourceCode . getTokenAfter ( openToken ) ! ;
220
+ offsets . setOffsetToken ( renderToken , 1 , openToken ) ;
221
+ const calleeToken = sourceCode . getFirstToken ( node . callee ) ;
222
+ offsets . setOffsetToken ( calleeToken , 1 , renderToken ) ;
223
+ const leftParenToken = sourceCode . getTokenAfter ( node . callee , {
224
+ filter : isOpeningParenToken ,
225
+ includeComments : false
226
+ } ) ! ;
227
+ const rightParenToken = sourceCode . getTokenBefore ( sourceCode . getLastToken ( node ) ) ;
228
+
229
+ offsets . setOffsetToken ( leftParenToken , 1 , calleeToken ) ;
230
+ offsets . setOffsetElementList ( [ node . argument ] , leftParenToken , rightParenToken , 1 ) ;
231
+ } ,
216
232
// ----------------------------------------------------------------------
217
233
// BLOCKS
218
234
// ----------------------------------------------------------------------
@@ -462,6 +478,30 @@ export function defineVisitor(context: IndentContext): NodeListener {
462
478
offsets . setOffsetToken ( endAwaitToken , 1 , openCloseTagToken ) ;
463
479
offsets . setOffsetToken ( closeCloseTagToken , 0 , openCloseTagToken ) ;
464
480
} ,
481
+ SvelteSnippetBlock ( node : AST . SvelteSnippetBlock ) {
482
+ const [ openToken , snippetToken ] = sourceCode . getFirstTokens ( node , {
483
+ count : 2 ,
484
+ includeComments : false
485
+ } ) ;
486
+ offsets . setOffsetToken ( snippetToken , 1 , openToken ) ;
487
+ const id = getFirstAndLastTokens ( sourceCode , node . id ) ;
488
+ offsets . setOffsetToken ( id . firstToken , 1 , snippetToken ) ;
489
+
490
+ const leftParenToken = sourceCode . getTokenBefore (
491
+ node . context || sourceCode . getLastToken ( node ) ,
492
+ {
493
+ filter : isOpeningParenToken ,
494
+ includeComments : false
495
+ }
496
+ ) ! ;
497
+
498
+ const rightParenToken = sourceCode . getTokenAfter ( node . context || leftParenToken , {
499
+ filter : isClosingParenToken ,
500
+ includeComments : false
501
+ } ) ! ;
502
+ offsets . setOffsetToken ( leftParenToken , 1 , id . firstToken ) ;
503
+ offsets . setOffsetElementList ( [ node . context ] , leftParenToken , rightParenToken , 1 ) ;
504
+ } ,
465
505
// ----------------------------------------------------------------------
466
506
// COMMENTS
467
507
// ----------------------------------------------------------------------
0 commit comments