diff --git a/.changeset/polite-cougars-read.md b/.changeset/polite-cougars-read.md new file mode 100644 index 00000000..22da6fb0 --- /dev/null +++ b/.changeset/polite-cougars-read.md @@ -0,0 +1,5 @@ +--- +"htmljs-parser": patch +--- + +Fix regression caused by indented statement parsing. diff --git a/src/__tests__/fixtures/commas-relax/__snapshots__/commas-relax.expected.txt b/src/__tests__/fixtures/commas-relax/__snapshots__/commas-relax.expected.txt index 307efd7e..c88dbc0d 100644 --- a/src/__tests__/fixtures/commas-relax/__snapshots__/commas-relax.expected.txt +++ b/src/__tests__/fixtures/commas-relax/__snapshots__/commas-relax.expected.txt @@ -13,5 +13,15 @@ 8├─ Link, 9├─ BaseInput { 10├─ reviewCount: number; -11╭─ } - ╰─ ╰─ openTagEnd \ No newline at end of file +11├─ } +12╭─ + ╰─ ╰─ openTagEnd +13╭─ export interface Input { + ╰─ ╰─ tagName "export" +14├─ foo: string; +15├─ } +16╭─ $ const bar = "bar" + │ ││╰─ scriptlet.value "const bar = \"bar\"" + │ │╰─ scriptlet " const bar = \"bar\"" + ╰─ ╰─ openTagEnd +17╰─ \ No newline at end of file diff --git a/src/__tests__/fixtures/commas-relax/input.marko b/src/__tests__/fixtures/commas-relax/input.marko index 47f19e03..d25a7718 100644 --- a/src/__tests__/fixtures/commas-relax/input.marko +++ b/src/__tests__/fixtures/commas-relax/input.marko @@ -8,4 +8,9 @@ export interface Input Link, BaseInput { reviewCount: number; -} \ No newline at end of file +} + +export interface Input { + foo: string; +} +$ const bar = "bar" diff --git a/src/states/EXPRESSION.ts b/src/states/EXPRESSION.ts index c7b3aa95..51311cc6 100644 --- a/src/states/EXPRESSION.ts +++ b/src/states/EXPRESSION.ts @@ -173,7 +173,7 @@ export const EXPRESSION: StateDefinition = { (expression.wasComment || !checkForOperators(this, expression, true)) && !( expression.consumeIndentedContent && - isIndentCode(this.lookAtCharCodeAhead(len + 1)) + isIndentCode(this.lookAtCharCodeAhead(len)) ) ) { this.exitState();