- 6f1862c8: Add
SchemaPresetsStaticBlocks
check - d7436b4a: Add
JsonMissingBlock
check
- Updated dependencies [8e909870]
- Updated dependencies [d7436b4a]
- Updated dependencies [6f1862c8]
- Updated dependencies [d01e657b]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- Patch bump because it depends on:
- @shopify/theme-language-server-browser
- @shopify/theme-language-server-node
- @shopify/[email protected]
- @shopify/[email protected]
- Patch bump because it depends on:
- @shopify/liquid-html-parser
- @shopify/theme-language-server-browser
- @shopify/theme-language-server-node
- @shopify/theme-check-common
- Updated dependencies
- Updated dependencies [8912fab8]
- Updated dependencies [51ec6a7a]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
-
528127bd: Add theme block type completion in
{% schema %}
-
5e8a2bfe: Add
SchemaPresetsBlockOrder
check -
05ae5ea8: Added
MissingSchema
theme check to identify missing schemas in theme app extensions. -
26215724: Add
EmptyBlockContent
Check -
73758ba1: Add
LiquidFreeSettings
check -
5e8a2bfe: Add
SchemaPresetsBlockOrder
check -
b2bad1f4: Add text edit completion of
{% content_for "block" %}
-
d1658353: Add filter completion support
We'll now provide completions for Liquid filter parameters when requested.
- Updated dependencies
- Updated dependencies [05ae5ea8]
- Updated dependencies [3e69d732]
- Updated dependencies [26215724]
- Updated dependencies [73758ba1]
- Updated dependencies [5e8a2bfe]
- Updated dependencies [05b928ea]
- Updated dependencies [1f54be13]
- Updated dependencies [1083b2bc]
- Updated dependencies [a579d59e]
- Updated dependencies [5a2caaee]
- Updated dependencies [d2b5942a]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- Patch bump because it depends on:
- @shopify/theme-language-server-browser
- @shopify/theme-language-server-node
- @shopify/theme-check-common
- Updated dependencies [16e2f37]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- Patch bump because it depends on:
- @shopify/theme-language-server-browser
- @shopify/theme-language-server-node
- @shopify/theme-check-common
- Updated dependencies [4a18a78]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- 3f7680e: Add the
ValidBlockTarget
Check - 8a0bf78: Add the
ValidLocalBlocks
Check - c4813ff: Add the
BlockIdUsage
check - b558bfe: Fixup
CaptureOnContentForBlock
check
- f09c923: Preload theme files on file open instead of on rename
- 7317830: Add translation checking to
ValidSchemaName
check - Updated dependencies
- Updated dependencies [3f7680e]
- Updated dependencies [add2445]
- Updated dependencies [8a0bf78]
- Updated dependencies [7a6dfe8]
- Updated dependencies [7317830]
- Updated dependencies [c4813ff]
- Updated dependencies [c4813ff]
- Updated dependencies [b558bfe]
- Updated dependencies [9a07208]
- Updated dependencies [f09c923]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- bae0653: Do not activate language server for non-theme files
- 4a875bb: Add babel prettier plugin manually to fix the formatting in web version of the extension (Thanks @Smintfy)
- b431db7: Add
ValidateSchemaName
check - 568d53b: Support for the
content_for
Liquid tag - 8f3bc18: Add "block" or "blocks" completion for the
content_for
Liquid tag (Thanks @Smintfy) - 6014dfd: Support metafield auto-completion based on .shopify/metafields.json file
- Updated dependencies
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
-
4b574c1: Add support for virtual file systems
The Shopify Liquid VS Code extension now works in a large set of new environments:
- Remote files
- Git backed files
- VS Code for the Web
-
4b574c1: [BREAKING] Remove support for ruby language server
-
5fab0e9: Add on snippet rename automatic refactor support
When
snippets/*.liquid
files are renamed, we'll change all the old references to point to the new files:{% render 'oldName' %}
->{% render 'newName' %}
{% include 'oldName' %}
->{% include 'newName' %}
-
5fab0e9: Add on asset rename automatic refactor support
When
assets/*
files are renamed, we'll change all the old references to point to the new files:{{ 'oldName.js' | asset_url }}
->{{ 'newName.js' | asset_url }}
{% echo 'oldName.js' | asset_url %}
->{% echo 'newName.js' | asset_url %}
Works with
.(js|css).liquid
asset files as well.
- Updated dependencies [4b574c1]
- Updated dependencies [4b574c1]
- Updated dependencies [4b574c1]
- Updated dependencies [5fab0e9]
- Updated dependencies [4b574c1]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
-
a0ba46d: Add Liquid tag snippet completion
- Accept the completion item for
if
and get{% if ${1:condition} %}\n $0\n{% endif %}
with tabulated placeholders${1:condition}
is the first placeholder, press tab to reach the next one$0
is the last one
- This kind of completion works for every Liquid tag and is powered by the syntax snippets on https://shopify.dev
- The snippets are smart depending on context:
- Will infer whitespace stripping characters based on context
- Will not snippet complete
{%
and%}
if inside a{% liquid %}
tag - Will not snippet complete if markup is already present in the tag definition
- Accept the completion item for
- @shopify/[email protected]
- Fix missing close tag auto-insertion inside Liquid else branches
- @shopify/liquid-html-parser
- @shopify/theme-language-server-node
- Updated dependencies
- Updated dependencies [c664d52]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
-
d1f9fef: Add support for HTML Element close tag auto-insertion
{% # type this %} <div> {% # get this, with cursor at | %} <div>|</div>
-
d1f9fef: Add proper HTML tag
onEnterRules
{% # type this, then press enter %} <div>|</div> {% # you get this, with cursor at | %} <div>|</div>
-
b5a2fbc: Add HTML element name rename support
Press
F2
on an HTML element name to rename its open/close pairs in a safe manner. No setting required.{% # before rename %} <div> {% # press F2 on this `div` and have both the open and close parts be renamed at the same time %} <div></div> <div></div> <div></div> </div> {% # after rename %} <section> <div></div> <div></div> <div></div> </section>
-
a946a4e: Add tupled highlighting of HTML element names and Liquid blocks
When you hover over a HTML tag open, the close tag is highlighted and vice-versa.
<div> {% # this div gets highlighted %} <div></div> </div> {% # with this one %}
When you hover over a Liquid block open, the close block is highlighted (and branches if any).
{% # this if, elsif, else, endif all get highlighted together %} {% if cond %} {% elsif cond %} {% else %} {% endif %}
-
474b859: Add linked editing support for HTML element names
Just like for HTML in VS Code, this feature is enabled by the
editor.linkedEditing
VS Code setting:"editor.linkedEditing": true
When enabled, this will make it so you can rename open/close pairs as you are typing.
- Updated dependencies
- Updated dependencies [1c73710]
- Updated dependencies [d1f9fef]
- Updated dependencies [70e2241]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- f6b0a20: Remove the trailing comma warning in those files, and associate theme JSON files with JSONC
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Patch bump because it depends on @shopify/prettier-plugin-liquid
- Updated dependencies [a07a064]
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Add support for Shopify/theme-liquid-docs JSON Schema manifests for automatically updated JSON schemas for various part of themes and theme app extensions
- e0031bb: Fix Theme App Extension context inference
- Updated dependencies [e0031bb]
- Updated dependencies [03b41e1]
- @shopify/[email protected]
- Add
ValidJSON
check and improve error reporting of JSON schema offenses
- 8e3c7e2: Add
t:
translation completion and hover support in section and theme block{% schema %}
tags - 8e3c7e2: Add Schema translation checking to
MatchingTranslations
-
8e3c7e2: Make translation completion fuzzy
-
8e3c7e2: Theme translation completion now appends parameters
For example, if your translation look like this:
{ "items": { "one": "{{ count }} item", "other": "{{ count }} items" } }
Then we’ll complete like this:
{{ 'items' | t: count: count }}
-
8e3c7e2: Add
:
as a completion trigger character -
8e3c7e2: Fix offering of standard translations options when the default translation file is open
-
Updated dependencies [8e3c7e2]
-
Updated dependencies [8e3c7e2]
-
Updated dependencies [8e3c7e2]
-
Updated dependencies [8e3c7e2]
-
Updated dependencies [8e3c7e2]
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
-
d66d49c: Improve root finding of theme app extensions and zipped themes
Folders for which all the following is true are considered a root:
- have a
snippets/
folder, and - don't have a
../.theme-check.yml
, - don't have a
../../.theme-check.yml
.
No config file or
.git
folder required. - have a
-
d66d49c: Unify root finding algorithm for node LS and TC packages
- @shopify/[email protected]
- @shopify/[email protected]
-
042f1e0: Add section schema and translation file JSON completion and hover support
JSON object authoring and editing should be better in the following contexts:
sections/*.liquid
{% schema %}
bodieslocales/*.json
files
Hovering over any key in any translation file will show the path of the translation key (for easy copy and paste).
Pluralized strings and
_html
support is baked into the feature. -
a9ae65f: Add Language Server and Theme Check support for checkout.liquid objects
- Updated dependencies [042f1e0]
- Updated dependencies [042f1e0]
- Updated dependencies [2a3bca1]
- @shopify/[email protected]
- @shopify/[email protected]
-
84f9eda: Include docset fallbacks in the theme-check-docs-updater package
For when a user’s Internet connection is down or https://raw.githubusercontent.com is not accessible.
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- 617b766: Add parser support for trailing commas at the end of Liquid tags and filters
- Updated dependencies [0990c47]
- Updated dependencies [617b766]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- Fix parsing of
}}
inside{% %}
and vice-versa - Bump lodash version
-
dcadbea: Shopify Liquid VS Code and Theme Check 2.0
This new major version is the grand unification of Shopify theme developer tools.
Going forward, all Language Server Protocol features (Intelligent Code Completion, hover documentation, theme checks, code navigation, etc.) will be shared with the Online Store Code Editor.
This is the culmination of the major rewrite of our Ruby language server and linter to TypeScript.
It includes a re-architecture of the linter and Language Server to work on a LiquidHTML AST.
Major changes:
- Hover documentation support
- New completion providers
- HTML tag, attribute and value
- Theme, section and block settings
- Theme translations
- Improved Type System
- Automatically updated
- Polished auto-closing pair UX
- Proper monorepo and VS Code workspace support
- For those of you working on large projects
- Comes with batteries included
- No longer requires a Ruby installation
- Bring your own checks and/or publish them to npm
- Runs in browser too
- @shopify/[email protected]
- 8451075:
package.json
and README cleanups - Updated dependencies [8451075]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
-
a780181: Improve support of unclosed HTML nodes inside conditional code
The following code is now supported by the Liquid prettier plugin and the
"shopifyLiquid.themeCheckNextDevPreview"
VS Code setting.<div> {% if is_accordion %} <details> <summary> {% else %} <h3> {% endif %} ... summary/header content ... {% if is_accordion %} </summary> {% else %} <a href='{{ bookmark }}'> <svg> ... </svg> </a> </h3> {% endif %} ... body content ... {% if is_accordion %} </details> {% endif %} </div>
Code that doesn’t properly close across branches will be flagged by a new theme check:
UnclosedHTMLElement
. See PR for details.
- Updated dependencies [636895f]
- Updated dependencies [636895f]
- Updated dependencies [636895f]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
-
b05a6a8: Add support for the following Language Server configurations:
themeCheck.checkOnOpen
themeCheck.checkOnSave
themeCheck.checkOnChange
This is mostly for backward compatibility and to not be annoying :)
- @shopify/[email protected]
- 55fb6b8: Include
<
in the autocloseBefore character set
-
a120393: Add better auto-closing UX for Liquid pairs
- Type
{{
get{{ | }}
(cursor at|
) - Type
{{-
get{{- | -}}
- Type
{%
get{% | %}
- Type
{%-
get{%- | -%}
- Add a
-
on one side, only that side is affected - See PR for video
- Only for
shopifyLiquid.themeCheckNextDevPreview
- Type
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- c6d9ef6: Add theme, section and block settings completion and hover support
- Updated dependencies
- Updated dependencies [78813ea]
- Updated dependencies [78813ea]
- Updated dependencies [78813ea]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- Do not report
UnusedAssign
for variables starting with an underscore - @shopify/[email protected]
- Fix
MissingAsset
false positives for .css.liquid, .js.liquid and .scss.liquid files - Fix false ParserBlockingScript reports for scripts of type module
- @shopify/[email protected]
- Patch bump because it depends on:
- @shopify/liquid-html-parser
- @shopify/theme-language-server-node
- Fix hover, completion and
UndefinedObject
reporting of{% increment var %}
and{% decrement var %}
- Fix UnusedAssign false positives in raw-like nodes
- Fix hover, completion and
- Updated dependencies
- Updated dependencies [0d71145]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
- Re-add
ignoreMissing
support toMissingTemplate
- Superfluous settings as warnings not errors
- Add blocks/ files contextual completion, hover and UndefinedObject support
- Fix snippet links and translation key exists reporting of repos with custom root
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Patch bump because it depends on @shopify/prettier-plugin-liquid
- Updated dependencies [bec7ee0]
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Patch bump because it depends on @shopify/prettier-plugin-liquid
- Updated dependencies [328ba49]
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Replace
AssetUrlFilters
check withRemoteAsset
check - Fix completion, hover and UndefinedObject reporting of
tablerowloop
andforloop
variables - Fix available object list of Liquid object completion provider.
- Replace
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- Adds Shopify Reference links at the bottom of Liquid Hover and Completion Items
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- bcaf65c: Fixup prettier loadConfig cache problem
- Patch bump because it depends on @shopify/theme-language-server-node
- Updated dependencies [380b273]
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- @shopify/[email protected]
- da94dfe: Fixup missing dep
- Updated dependencies [da94dfe]
- @shopify/[email protected]
- Patch bump because it depends on @shopify/theme-language-server-node
- Updated dependencies [14b9ee2]
- @shopify/[email protected]
- Added Theme Check 2.0 dev preview behind
shopifyLiquid.themeCheckNextDevPreview
setting.
- Updated dependencies [f552d4d]
- @shopify/[email protected]
- @shopify/[email protected]
- @shopify/[email protected]
-
Add posix sh command existence compliance (#126)
-
Bump to prettier-plugin-liquid v1.1.0 (#129)
Learn more in its CHANGELOG.
- Prioritize direct
theme-check
install over CLI install
- Update Syntax Highlighting
- Bump prettier-plugin-liquid to v1.0.6
- Bump prettier-plugin-liquid to v1.0.5
- Bump @shopify/prettier-plugin-liquid to v1.0.3
- Bump syntax highlighting version
- Bump syntax highlighting to add support for sections tag
- Send diagnostics for LiquidPrettierPlugin parsing errors (#106)
- Switch to TypeScript
- Upgrade syntaxes commit for node18 compat
- Add CI
- Bump prettier-plugin-liquid to v1.0.0 🎉
- Remove "shopifyLiquid.formatterDevPreview", it's no longer opt-in :)
- Upgrade prettier plugin version to v1.0.0-rc.0
- Upgrade prettier plugin version to v0.4.2
- Upgrade prettier plugin version to 0.4.1
- Syntax highlighting update (stylesheet tag)
- Fixes typo in config description
- Add troubleshooting doc
- Bump prettier-plugin-liquid to version v0.4.0
- Bump prettier-plugin-version to v0.3.0
- Bump prettier plugin version to v0.2.1
- Syntax highlighting update (nested comments)
- Add explicit dependency to @shopify/prettier-plugin-liquid
- Fixup formatter extra character problem
- Stop treating .{s?css,js}.liquid files as liquid files
- Fixup error handling
- Use standard location for the Liquid grammar
- Add Liquid Formatting Developer Preview
- Do the following to enable enable the preview:
- Set
"shopifyLiquid.formatterDevPreview"
totrue
in your VS Codesettings.json
- Do any of the following:
- Right-click in a
.liquid
file >Format Document
- Select
Format Document
from the command palette (cmd+p
) - Bind
Format Document
to a keyboard shortcut - Enable
formatOnSave
for Liquid files:"[liquid]": { "editor.defaultFormatter": "Shopify.theme-check-vscode", "editor.formatOnSave": true },
- Set
- Do the following to enable enable the preview:
- Document
themeCheck.onlySingleFileChecks
in the README as well.
-
Document
themeCheck.onlySingleFileChecks
configuration (theme-check v1.10.0+)Since v1.10.0, theme-check is a bit smarter with
checkOnChange
.Instead of rerunning all the checks that span multiple files (UnusedSnippet, TranslationKeyExists, etc.), it only reruns single file checks for the file being changed and merges the result with the previous whole theme checks. This makes
textDocument/didChange
checks happen ~125x faster (~1250ms -> 10ms).If you want this speed increase all the time (at the cost of ignoring whole theme checks during development), now you can by setting
themeCheck.onlySingleFileChecks
totrue
in your VS Code'sconfig.json
.
- Fix syntax highlighting after
{%- endstyle %}
- Fixup raw tag highlighting with whitespace stripping characters
- Fixup highlighting of whitespace stripping comments
- Fixup highlighting of raw and comment tags inside injections
- Fixup highlighting of liquid tag comment blocks
- Fixup bracket coloring inside embedded languages #67
- Fix annoying
{%--%} %}
autoclose issue (#65) - Add support for
editor.bracketPairColorization.enabled
(#62)
- Syntax highlighting overhaul (#61)
- Overdue updates
- Document new LanguageServer configurations.
- Add way to opt out of annoying Windows warning.
- Improve the
activationEvents
(only folders with .theme-check.yml or onLanguage:liquid will start the extension) - Add new "Shopify Theme Check: Run checks" command to manually run checks (for those that turn off all the checkOn* configs)
- Fix date typo in CHANGELOG.
- Fix the where command for Windows (select the .bat file)
- Add Windows experimental warning in editor
- Disable
shopify theme language-server
on Windows until we fix the upstream bug (See (#42))
- Put Windows warning on README.
- Bump path-parse from 1.0.6 to 1.0.7
- Add Windows support
- v1.0.0
- Add Shopify CLI as recommended installation method
- Rename from Theme Check -> Shopify Liquid
- Add Syntax Highlighting
- Add fancy README
- Add Language Configuration
- Auto closing
{%
,{{
,{%-
,{{-
,<
, ... - Indentation rules
- Block comment with
{% comment %}
{% endcomment %}
- Auto closing
- Upgrade
vscode-languageclient
to v7.0.0 to support link to diagnostic documentation
- Add onDidChangeConfiguration handler
- Add restart server command
- Fix links in README
- Listen to changes in json files (for translations)
- Fixup typo in config
- Change activationEvent to onStartupFinished. 🤞
- Fix issue with vsix package on the VS Code Marketplace.