File tree Expand file tree Collapse file tree 3 files changed +24
-10
lines changed Expand file tree Collapse file tree 3 files changed +24
-10
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @marko/language-tools " : patch
3+ " @marko/type-check " : patch
4+ ---
5+
6+ Expose source/generated range helpers and use that when remapping generated traces in mtc.
Original file line number Diff line number Diff line change @@ -102,14 +102,15 @@ export class Extracted {
102102 if ( sourceOffset !== undefined ) return this . parsed . positionAt ( sourceOffset ) ;
103103 }
104104
105+ sourceRangeAt ( generatedStart : number , generatedEnd : number ) {
106+ return this . #generatedToSource. rangeAt ( generatedStart , generatedEnd ) ;
107+ }
108+
105109 sourceLocationAt (
106110 generatedStart : number ,
107111 generatedEnd : number ,
108112 ) : Location | undefined {
109- const sourceRange = this . #generatedToSource. rangeAt (
110- generatedStart ,
111- generatedEnd ,
112- ) ;
113+ const sourceRange = this . sourceRangeAt ( generatedStart , generatedEnd ) ;
113114 if ( sourceRange ) {
114115 return this . parsed . locationAt ( sourceRange ) ;
115116 }
@@ -126,14 +127,15 @@ export class Extracted {
126127 }
127128 }
128129
130+ generatedRangeAt ( sourceStart : number , sourceEnd : number ) {
131+ return this . #sourceToGenerated. rangeAt ( sourceStart , sourceEnd ) ;
132+ }
133+
129134 generatedLocationAt (
130135 sourceStart : number ,
131136 sourceEnd : number ,
132137 ) : Location | undefined {
133- const generatedRange = this . #sourceToGenerated. rangeAt (
134- sourceStart ,
135- sourceEnd ,
136- ) ;
138+ const generatedRange = this . generatedRangeAt ( sourceStart , sourceEnd ) ;
137139 if ( generatedRange ) {
138140 return getLocation (
139141 this . #generatedLines,
Original file line number Diff line number Diff line change @@ -106,10 +106,16 @@ export default function run(opts: Options) {
106106 if ( typeof fileName === "string" ) {
107107 const extracted = extractCache . get ( getCanonicalFileName ( fileName ) ) ;
108108 if ( extracted ) {
109+ const sourceRange = extracted . sourceRangeAt ( args . pos , args . end ) ;
110+ if ( sourceRange ) {
111+ args . pos = sourceRange . start ;
112+ args . end = sourceRange . end ;
113+ } else {
114+ args . pos = args . end = undefined ;
115+ }
116+
109117 ( args as any ) . generatedPos = args . pos ;
110118 ( args as any ) . generatedEnd = args . end ;
111- args . pos = extracted . sourceOffsetAt ( args . pos ) ;
112- args . end = extracted . sourceOffsetAt ( args . end ) ;
113119 }
114120 }
115121 }
You can’t perform that action at this time.
0 commit comments