Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Shopify/theme-tools
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: @shopify/prettier-plugin-liquid@1.5.1
Choose a base ref
...
head repository: Shopify/theme-tools
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: @shopify/prettier-plugin-liquid@1.5.2
Choose a head ref
  • 3 commits
  • 35 files changed
  • 1 contributor

Commits on Oct 1, 2024

  1. It seems that I never committed these files (#511)

    They were excluded by a `.git/exclude/info` entry.
    
    Turns out, those are the test files for lang-jsonc. Thankfully they all pass :D
    charlespwd authored Oct 1, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    89c01e4 View commit details
  2. Fix HTML element close tag auto-insertion inside Liquid branches (#516)

    There was a bug with our findCurrentNode algorithm that made it so we'd go in the wrong node when a branch had child nodes.
    
    The fix was to have more information on the AST and flag LiquidBranch as "unclosed" when their blockEndPosition is -1, -1.
    
    It's kind of a nasty bug tbh.
    
    Fixes #515
    charlespwd authored Oct 1, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    c664d52 View commit details
  3. Release 01-10-24: Updated 10 package versions (#517)

    @shopify/prettier-plugin-liquid: 1.5.1 -> 1.5.2 (patch)
    theme-check-vscode: 2.5.0 -> 2.5.1 (patch)
    @shopify/theme-language-server-common: 1.13.0 -> 1.13.1 (patch)
    @shopify/liquid-html-parser: 2.0.4 -> 2.0.5 (patch)
    @shopify/theme-language-server-browser: 1.13.0 -> 1.13.1 (patch)
    @shopify/theme-language-server-node: 1.13.0 -> 1.13.1 (patch)
    @shopify/theme-check-common: 2.9.1 -> 2.9.2 (patch)
    @shopify/theme-check-browser: 2.9.1 -> 2.9.2 (patch)
    @shopify/theme-check-node: 2.9.1 -> 2.9.2 (patch)
    @shopify/theme-check-docs-updater: 2.9.1 -> 2.9.2 (patch)
    charlespwd authored Oct 1, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    cb696f3 View commit details
Showing with 427 additions and 52 deletions.
  1. +2 −2 packages/lang-jsonc/package.json
  2. +34 −0 packages/lang-jsonc/src/test/arrays.txt
  3. +33 −0 packages/lang-jsonc/src/test/comments.txt
  4. +23 −0 packages/lang-jsonc/src/test/literals.txt
  5. +87 −0 packages/lang-jsonc/src/test/numbers.txt
  6. +49 −0 packages/lang-jsonc/src/test/objects.txt
  7. +31 −0 packages/lang-jsonc/src/test/strings.txt
  8. +18 −0 packages/lang-jsonc/src/test/test-jsonc.spec.js
  9. +6 −0 packages/liquid-html-parser/CHANGELOG.md
  10. +1 −1 packages/liquid-html-parser/package.json
  11. +18 −0 packages/liquid-html-parser/src/stage-2-ast.spec.ts
  12. +10 −9 packages/liquid-html-parser/src/stage-2-ast.ts
  13. +8 −0 packages/prettier-plugin-liquid/CHANGELOG.md
  14. +2 −2 packages/prettier-plugin-liquid/package.json
  15. +6 −0 packages/theme-check-browser/CHANGELOG.md
  16. +2 −2 packages/theme-check-browser/package.json
  17. +7 −0 packages/theme-check-common/CHANGELOG.md
  18. +2 −2 packages/theme-check-common/package.json
  19. +6 −0 packages/theme-check-docs-updater/CHANGELOG.md
  20. +2 −2 packages/theme-check-docs-updater/package.json
  21. +7 −0 packages/theme-check-node/CHANGELOG.md
  22. +3 −3 packages/theme-check-node/package.json
  23. +7 −0 packages/theme-language-server-browser/CHANGELOG.md
  24. +2 −2 packages/theme-language-server-browser/package.json
  25. +9 −0 packages/theme-language-server-common/CHANGELOG.md
  26. +3 −3 packages/theme-language-server-common/package.json
  27. +5 −1 ...age-server-common/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.spec.ts
  28. +2 −1 packages/theme-language-server-common/src/hover/providers/LiquidTagHoverProvider.spec.ts
  29. +1 −1 ...-language-server-common/src/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.spec.ts
  30. +2 −2 packages/theme-language-server-common/src/rename/providers/HtmlTagNameRenameProvider.spec.ts
  31. +2 −2 packages/theme-language-server-common/src/visitor.ts
  32. +9 −0 packages/theme-language-server-node/CHANGELOG.md
  33. +4 −4 packages/theme-language-server-node/package.json
  34. +19 −8 packages/vscode-extension/CHANGELOG.md
  35. +5 −5 packages/vscode-extension/package.json
4 changes: 2 additions & 2 deletions packages/lang-jsonc/package.json
Original file line number Diff line number Diff line change
@@ -32,9 +32,9 @@
"@lezer/lr": "^1.3.7"
},
"scripts": {
"build": "yarn build:esm && yarn build:umd",
"build": "yarn build:ts",
"build:ci": "yarn build",
"build:ts": "true",
"build:ts": "yarn build:esm && yarn build:umd",
"build:esm": "tsc -b tsconfig.json",
"build:umd": "tsc -b tsconfig.umd.json",
"prebuild:esm": "yarn generate",
34 changes: 34 additions & 0 deletions packages/lang-jsonc/src/test/arrays.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Empty Array

[ ]

==>

JsoncText(Array)

# Array With One Value

["One is the loneliest number"]

==>

JsoncText(Array(String))

# Array With Multiple Values

[
"The more the merrier",
1e5,
true,
{ },
["I'm", "nested"]
]

==>

JsoncText(Array(
String,
Number,
True,
Object,
Array(String,String)))
33 changes: 33 additions & 0 deletions packages/lang-jsonc/src/test/comments.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Line Comment

{
// FIXME
}

==>

JsoncText(Object("{",LineComment,"}"))

# Block Comment

{
/* I am a big old


"comment
*/
}

==>

JsoncText(Object("{",BlockComment,"}"))

# Line comment as "string"

{
// This is a "comment"
}

==>

JsoncText(Object("{",LineComment,"}"))
23 changes: 23 additions & 0 deletions packages/lang-jsonc/src/test/literals.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# True

true

==>

JsoncText(True)

# False

false

==>

JsoncText(False)

# Null

null

==>

JsoncText(Null)
87 changes: 87 additions & 0 deletions packages/lang-jsonc/src/test/numbers.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Simple Integer

42

==>

JsoncText(Number)

# Zero By Itself Is Ok

0

==>

JsoncText(Number)

# Leading Zeros Aren't Ok

[0123]

==>

JsoncText(Array(Number, ⚠(Number)))

# Optional Minus Sign

-53

==>

JsoncText(Number)

# Decimal Digits

123.4

==>

JsoncText(Number)

# Must Have Digits After Decimal

123.

==>

JsoncText(Number, ⚠)

# Exponent: Lowercase e

1e5

==>

JsoncText(Number)

# Exponent: Uppercase E

1E5

==>

JsoncText(Number)

# Exponent: Optional Plus Sign

1e+5

==>

JsoncText(Number)

# Exponent: Optional Minus Sign

1E-5

==>

JsoncText(Number)

# Exponent Without Digit Is Not Ok

42e

==>

JsoncText(Number, ⚠)
49 changes: 49 additions & 0 deletions packages/lang-jsonc/src/test/objects.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Empty Object

{ }

==>

JsoncText(Object)

# One Property

{
"foo": 123
}

==>

JsoncText(Object(Property(PropertyName,Number)))

# Multiple Properties

{
"foo": 123,
"bar": "I'm a bar!",
"obj": {},
"arr": [1, 2, 3]
}

==>

JsoncText(Object(
Property(PropertyName,Number),
Property(PropertyName,String),
Property(PropertyName,Object),
Property(PropertyName,Array(Number,Number,Number))))

# Trailing Commas

{
"obj": {"key": 1,},
"arr": [1, 2, 3,],
}

==>

JsoncText(Object(
Property(PropertyName,Object(
Property(PropertyName, Number)
)),
Property(PropertyName,Array(Number,Number,Number))))
31 changes: 31 additions & 0 deletions packages/lang-jsonc/src/test/strings.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Empty String

""

==>

JsoncText(String)

# Non-empty String

"This is a boring old string"

==>

JsoncText(String)

# All The Valid One-Character Escapes

"\"\\\/\b\f\n\rt\t"

==>

JsoncText(String)

# Unicode Escape

"\u005C"

==>

JsoncText(String)
18 changes: 18 additions & 0 deletions packages/lang-jsonc/src/test/test-jsonc.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { describe, it } from 'vitest';
import { parser } from '../parser';
import { fileTests } from '@lezer/generator/dist/test';

import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
let caseDir = path.dirname(fileURLToPath(import.meta.url));

for (let file of fs.readdirSync(caseDir)) {
if (!/\.txt$/.test(file)) continue;

let name = /^[^\.]*/.exec(file)[0];
describe(name, () => {
for (let { name, run } of fileTests(fs.readFileSync(path.join(caseDir, file), 'utf8'), file))
it(name, () => run(parser));
});
}
6 changes: 6 additions & 0 deletions packages/liquid-html-parser/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @shopify/liquid-html-parser

## 2.0.5

### Patch Changes

- c664d52: LiquidBranch nodes should always report a blockEndPosition of 0 length

## 2.0.4

### Patch Changes
2 changes: 1 addition & 1 deletion packages/liquid-html-parser/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@shopify/liquid-html-parser",
"version": "2.0.4",
"version": "2.0.5",
"description": "Liquid HTML parser by Shopify",
"author": "CP Clermont <cp.clermont@shopify.com>",
"homepage": "https://github.com/Shopify/theme-tools/tree/main/packages/liquid-html-parser#readme",
18 changes: 18 additions & 0 deletions packages/liquid-html-parser/src/stage-2-ast.spec.ts
Original file line number Diff line number Diff line change
@@ -681,6 +681,12 @@ describe('Unit: Stage 2 (AST)', () => {
expectPath(ast, 'children.0.children.0.blockStartPosition.end').to.equal(
source.indexOf(branchA),
);
expectPath(ast, 'children.0.children.0.blockEndPosition.start').to.equal(
source.indexOf('{% elsif b %}'),
);
expectPath(ast, 'children.0.children.0.blockEndPosition.end').to.equal(
source.indexOf('{% elsif b %}'),
);

expectPath(ast, 'children.0.children.1.type').to.equal('LiquidBranch');
expectPath(ast, 'children.0.children.1.position.start').to.equal(
@@ -695,6 +701,12 @@ describe('Unit: Stage 2 (AST)', () => {
expectPath(ast, 'children.0.children.1.blockStartPosition.end').to.equal(
source.indexOf('{% elsif b %}') + '{% elsif b %}'.length,
);
expectPath(ast, 'children.0.children.1.blockEndPosition.start').to.equal(
source.indexOf('{% else %}'),
);
expectPath(ast, 'children.0.children.1.blockEndPosition.end').to.equal(
source.indexOf('{% else %}'),
);

expectPath(ast, 'children.0.children.2.type').to.equal('LiquidBranch');
expectPath(ast, 'children.0.children.2.position.start').to.equal(
@@ -709,6 +721,12 @@ describe('Unit: Stage 2 (AST)', () => {
expectPath(ast, 'children.0.children.2.blockStartPosition.end').to.equal(
source.indexOf('{% else %}') + '{% else %}'.length,
);
expectPath(ast, 'children.0.children.2.blockEndPosition.start').to.equal(
source.indexOf('{% endif %}', source.indexOf(branchC) + branchC.length),
);
expectPath(ast, 'children.0.children.2.blockEndPosition.end').to.equal(
source.indexOf('{% endif %}', source.indexOf(branchC) + branchC.length),
);
}
});

Loading