@@ -7,9 +7,10 @@ import {
77} from '../utils/content-tag.js' ;
88
99export interface Template {
10+ contentRange : Range ;
1011 contents : string ;
1112 range : Range ;
12- type : string ;
13+ type : 'class-member' | 'expression' ;
1314 utf16Range : {
1415 end : number ;
1516 start : number ;
@@ -38,7 +39,7 @@ export function preprocessTemplateRange(
3839 prefix = '{/*' ;
3940 suffix = '*/}' ;
4041
41- const nextToken = sliceByteRange ( code , template . range . end ) . match ( / \S + / ) ;
42+ const nextToken = sliceByteRange ( code , template . range . endByte ) . match ( / \S + / ) ;
4243
4344 if ( nextToken && ( nextToken [ 0 ] === 'as' || nextToken [ 0 ] === 'satisfies' ) ) {
4445 // Replace with parenthesized ObjectExpression
@@ -51,7 +52,7 @@ export function preprocessTemplateRange(
5152 // forward slash breaks the parsed templates.
5253 const contents = template . contents . replaceAll ( '/' , PLACEHOLDER ) ;
5354
54- const templateLength = template . range . end - template . range . start ;
55+ const templateLength = template . range . endByte - template . range . startByte ;
5556 const spaces =
5657 templateLength - getBuffer ( contents ) . length - prefix . length - suffix . length ;
5758
@@ -69,8 +70,8 @@ export function codeToGlimmerAst(code: string, filename: string): Template[] {
6970 const { contentRange, contents, range, type } = contentTag ;
7071
7172 const utf16Range = {
72- end : sliceByteRange ( code , 0 , range . end ) . length ,
73- start : sliceByteRange ( code , 0 , range . start ) . length ,
73+ end : sliceByteRange ( code , 0 , range . endByte ) . length ,
74+ start : sliceByteRange ( code , 0 , range . startByte ) . length ,
7475 } ;
7576
7677 return {
0 commit comments