@@ -5,7 +5,6 @@ import * as astTypes from 'ast-types'
55import jsesc from 'jsesc'
66// @ts -ignore
77import lineColumn from 'line-column'
8- import type { Printer } from 'prettier'
98import * as prettierParserAngular from 'prettier/plugins/angular'
109import * as prettierParserBabel from 'prettier/plugins/babel'
1110// @ts -ignore
@@ -1011,61 +1010,6 @@ function transformSvelte(ast: any, env: TransformerEnv) {
10111010
10121011export { options } from './options.js'
10131012
1014- export const printers : Record < string , Printer > = ( function ( ) {
1015- let printers : Record < string , Printer > = { }
1016-
1017- if ( base . printers [ 'svelte-ast' ] ) {
1018- function mutateOriginalText ( path : any , options : any ) {
1019- if ( options . __mutatedOriginalText ) {
1020- return
1021- }
1022-
1023- options . __mutatedOriginalText = true
1024-
1025- let changes : any [ ] = path . stack [ 0 ] . changes
1026-
1027- if ( changes ?. length ) {
1028- let finder = lineColumn ( options . originalText )
1029-
1030- changes = changes . map ( ( change ) => {
1031- return {
1032- ...change ,
1033- start : finder . toIndex ( change . start . line , change . start . column + 1 ) ,
1034- end : finder . toIndex ( change . end . line , change . end . column + 1 ) ,
1035- }
1036- } )
1037-
1038- options . originalText = spliceChangesIntoString ( options . originalText , changes )
1039- }
1040- }
1041-
1042- let original = base . printers [ 'svelte-ast' ]
1043- let printer = { ...original }
1044-
1045- printer . print = new Proxy ( original . print , {
1046- apply ( target , thisArg , args ) {
1047- let [ path , options ] = args as Parameters < typeof original . print >
1048- mutateOriginalText ( path , options )
1049- return Reflect . apply ( target , thisArg , args )
1050- } ,
1051- } )
1052-
1053- if ( original . embed ) {
1054- printer . embed = new Proxy ( original . embed , {
1055- apply ( target , thisArg , args ) {
1056- let [ path , options ] = args as Parameters < typeof original . embed >
1057- mutateOriginalText ( path , options )
1058- return Reflect . apply ( target , thisArg , args )
1059- } ,
1060- } )
1061- }
1062-
1063- printers [ 'svelte-ast' ] = printer
1064- }
1065-
1066- return printers
1067- } ) ( )
1068-
10691013let html = defineTransform ( {
10701014 parsers : {
10711015 html : { staticAttrs : [ 'class' ] } ,
@@ -1121,7 +1065,29 @@ let svelte = defineTransform({
11211065 svelte : { staticAttrs : [ 'class' ] } ,
11221066 } ,
11231067
1068+ printers : {
1069+ 'svelte-ast' : { } ,
1070+ } ,
1071+
11241072 transform : transformSvelte ,
1073+
1074+ reprint ( path , options ) {
1075+ if ( options . __mutatedOriginalText ) return
1076+ options . __mutatedOriginalText = true
1077+
1078+ let changes : any [ ] = path . stack [ 0 ] . changes
1079+ if ( ! changes ?. length ) return
1080+
1081+ let finder = lineColumn ( options . originalText )
1082+
1083+ changes = changes . map ( ( change ) => ( {
1084+ ...change ,
1085+ start : finder . toIndex ( change . start . line , change . start . column + 1 ) ,
1086+ end : finder . toIndex ( change . end . line , change . end . column + 1 ) ,
1087+ } ) )
1088+
1089+ options . originalText = spliceChangesIntoString ( options . originalText , changes )
1090+ } ,
11251091} )
11261092
11271093let astro = defineTransform ( {
@@ -1159,7 +1125,7 @@ let liquid = defineTransform({
11591125 transform : transformLiquid ,
11601126} )
11611127
1162- export const { parsers } = createPlugin ( base , [
1128+ export const { parsers, printers } = createPlugin ( base , [
11631129 html ,
11641130 glimmer ,
11651131 css ,
0 commit comments