Skip to content

Commit 88fc019

Browse files
authored
fix: apply token adapter to template tokens (#27)
* fix: apply token adapter to template tokens * update
1 parent 54964a6 commit 88fc019

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

src/tokenizer/tokenize.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ export function tokenize(
7474
templateRanges: templateRanges || [],
7575
decisionBuffer: new CharsBuffer(),
7676
accumulatedContent: new CharsBuffer(),
77+
tokenAdapter,
7778
sourceCode: new SourceCode(source, templateRanges || []),
7879
tokens: {
7980
push(token: AnyToken) {

src/types/tokenizer-state.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { CharsBuffer } from "../tokenizer/chars-buffer";
44
import { SourceCode } from "../tokenizer/source-code";
55
import { Range } from "./range";
66
import { AnyToken } from "./token";
7+
import { TokenAdapter } from "./token-adapter";
78

89
type ContextParams = {
910
[TokenizerContextTypes.AttributeValueWrapped]?: {
@@ -26,8 +27,8 @@ export type TokenizerState = {
2627
contextParams: ContextParams;
2728
decisionBuffer: CharsBuffer;
2829
accumulatedContent: CharsBuffer;
29-
// pointer: CharPointer;
3030
templateRanges: Range[];
31+
tokenAdapter: TokenAdapter;
3132
sourceCode: SourceCode;
3233
tokens: {
3334
push(token: AnyToken): void;

src/utils/create-templates.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@ export function createTemplates<T extends TokenTypes>(
66
type: T
77
): TemplatableToken<T>[] {
88
return state.mode === "template" && state.accumulatedContent.hasTemplate()
9-
? state.accumulatedContent.getTemplates().map((chars) => ({
10-
type: type,
11-
range: chars.range,
12-
loc: state.sourceCode.getLocationOf(chars.range),
13-
isTemplate: chars.isTemplate,
14-
value: chars.value,
15-
}))
9+
? state.accumulatedContent.getTemplates().map((chars) => {
10+
const token = {
11+
type: type,
12+
range: chars.range,
13+
loc: state.sourceCode.getLocationOf(chars.range),
14+
isTemplate: chars.isTemplate,
15+
value: chars.value,
16+
};
17+
return {
18+
...token,
19+
range: state.tokenAdapter.finalizeRange(token),
20+
loc: state.tokenAdapter.finalizeLocation(token),
21+
};
22+
})
1623
: [];
1724
}

0 commit comments

Comments
 (0)