- Improve rule for lazy loading to prevent developers from overusing it
- Introduce
--update-docs
flag to synchronously update Theme Check resources (objects, filters, and tags) (#707)
- Add shopify-dev link to code completion suggestion title (#700)
- Fix examples in
SchemaJsonFormat
(#698) - Do not suggest
escape
filter for already escaped strings (#692)
- Add support for new sections liquid tag in theme check (#694)
ObjectCompletionProvider
should not provide completion items that don't live in theSourceIndex
(#690)- Suggest deprecated completion items at the end of the list (#688)
- Only suggest filters in SourceIndex (#689)
- Remove the
data/shopify_liquid/(tags|filters|objects).yml
files (#674) - Introduce support to range iterations and SFR tags (#685)
- Suggest objects for
paginate
(#686)
- Introduce Intelligent Code Completion (#672)
- Update TROUBLESHOOTING.md to include language server stopping guide (#664)
- Create troubleshooting doc, update contributing and readme with links (#630)
- robots Object in robots.txt file (#644). Thanks @we5!
- New check, overdue fixes and dropped support for ruby 2.6.
- 🆕 AssetPreload check (#605). Thanks @krzksz!
- Encourages the use of the new platform features for some sweet 103 Early Hints gains powered by the
preload_tag
andpreload: true
media filter argument.
- Encourages the use of the new platform features for some sweet 103 Early Hints gains powered by the
- Add support for new comment syntax
{% # this is an inline comment %}
(#533) - Fix UnusedAssign false positives from
{% render ... with|for var %}
(#608) - Update list of platform filters (#626)
- Make
runChecks
command respectonlySingleFileChecks
LSP config (#624) - Handle file delete|rename (#611)
- Prevent server from hanging on error (#623)
- Help migrate named sizes (master|pico|etc.) in
img_url
withDeprecatedFilter
corrector (#619) - Fix MissingTemplate
ignore
config interactions (#613) - Fix MissingRequiredTemplateFiles JSON file corrector (#616)
- Fixes theme-check-disable when disable comment is followed by another (#617)
- Fix handling of
{% render block %}
in UnusedSnippet (#615) - Fix IndexError: string not matched in matching translation keys fixer (#602)
- Handle variable lookup as names in UnusedAssign (#612)
- Bump min version of ruby to 2.7 (#609)
- Upstream change from Shopify/liquid as ruby 2.6 is now EOL.
- Support app drop in theme app extensions (#566)
- Fix requiring custom check when root is specified (#565)
- Fix TranslationKeyExists.on_end issue (#587)
- Fix bad link on check documentation (#575)
- Update TEMPLATE.md.erb to use shopify.dev URL
- Fixed broken URL (#574)
- Fix unknown configuration issue for UndefinedObject checker (#568)
- Handle nil paths in json_printer's sort_by (#561)
- Prevent bad render tags from passing theme-check (#559)
- Revert "Prevent bad render tags from passing theme-check (#551)"
-
Performance Improvements (#556)
- Boasts ~125x faster
checkOnChange
checks.
- Boasts ~125x faster
-
New language server configuration:
"themeCheck.onlySingleFileChecks"
(#556)- When
true
, disables whole theme checks in the editor and makes it so only the open files are checked. - When
false
(default), behaves as before.
- When
- Do not complain about variables passed to the default filter (#532)
extend:
should accept absolute and relative paths (#555)- Gracefully handle initialized without config. (#552)
- Add missing metafield filters (#550)
- Handle media.sources edge case in RemoteAsset (#549)
- Disable HTML checks inside Liquid comments (#548)
- Prevent bad render tags from passing theme-check (#551)
- Handle rogue carriage returns (#547)
- Improve HTML parsing errors
- Fix img_url correction for string properties
- Add Corrections as Code Actions in Language Server (quickfix + source.fixAll) (#471)
- Add SchemaJsonFormat check (#512)
- Add checkOn{Open,Change,Save} Language Server Configurations (#511)
- Add support for new filters
image_tag
+image_url
- Add autocorrection to
img_url
to ease migration
- Add autocorrection to
- Deprecate
img_tag
,img_url
- Fix missing null check in ValidHTMLTranslation (#517)
- Fix MatchingTranslations check + corrections (#515)
- Fix RemoteAsset false positive from settings variables (#516)
- Make SpaceInsideBraces work for missing cases (#509)
- Fix Liquid in HTML parsing
- Make TranslationKeyExists also check section translations
New corrections for the following checks:
- Add support for
preload_tag
filter - Minor Language Server improvements (close logs) (#472)
- Fixup a multithreading problem with our IO Messenger (regression from 1.7.1) (#468)
- Handle Errno::EADDRNOTAVAIL in RemoteAsset (#465)
- Complete end tags (#277)
- Do not flag shopify translations as missing or extra (#407)
- Handle LSP messages concurrently in the Language Server (#459)
- Adds progress reporting while checking (:eyes: VS Code status bar)
- Makes completions work while checking (more noticeable on Windows since ruby is 3x slower on Windows)
- SpaceInsideBraces fixup for tags without arguments (#458)
- Fix UnusedAssign bug when variable used in for loop range by bumping Liquid to 5.1 (#456)
- Fix
Undefined method
-' for nil:NilClass` in Node when tag was missing surrounding spaces (#454, #452)
- Add
--auto-correct
support toTranslationKeyExists
(add missing translation as TODO to default locale) (#422) - Add
--auto-correct
support toUnusedSnippet
(delete unused file) (#416) - Add
--auto-correct
support toMissingRequiredTemplateFiles
(create missing files) (#385)
- Fix
undefined method [] of nil
inreplace_placeholders
(#441, #444) - Disable ConvertIncludeToRender corrector until we fix #445 (#446)
- Fix a couple of correction bugs (#442, #439)
- Fix
AssetSizeCSS
error when size is nil (#419) - Write JSON to file, not a Ruby Hash. (#434, #432)
- Handle invalid URIs in RemoteAssetFile (#418, #438)
- Fix
Bad start_index
error in SpaceInsideBraces (#423) - Autocorrect missing directories (#389)
- Add Windows CI
- Fix multiple Windows bugs (#413, #415)
- Fix pagination size as string bug in PaginationSize (#417, #421)
- Add new object drop:
predictive_search
- Bump
TemplateLength
max_length
default - Fix
RemoteAsset
incorrectly firing on structured data elements #393 - Fix document links not working on open
- Fix
asset_url
document links - Use better heuristics for
DeprecateLazysizes
- Add support for
section
document links - Add support for
include
document links - Automatically creates the default translation file (
locales/en.default.json
) if it doesn't already exist.
- Add
--output json
option for the CLI (#392) - Add PaginationSize check (#359)
- Add ConvertIncludeToRender auto corrector (#341)
- Add MissingTemplate auto corrector (#388)
- Add
MissingTemplate
ignore_missing
option (#394) - Fix Windows duplicate .bat file problem (#400)
- Fix substring highlighting inside nodes (#386)
- Add check for forbidden tags in theme app extension blocks (#383)
- Improve HTML parsing of liquid attributes (#381)
- Handle escaped file URIs in language server (#360) (#382)
- Change asset size errors into suggestions (#378)
- Switch to nokogiri 1.12, since it includes html5 support directly now (#391)
- Add Windows Support (#364)
- Ignore empty
{{}}
in SpaceInsideBraces (#350) - Switch to main branch
- Minor documentation fixes
- Add
--fail-level
CLI flag to configure exit code - Refactor all theme file classes to inherit from
ThemeFile
- Fix
undefined method liquid?
error when scanning from LSP - Adding asset document links
- Allow initializing theme app extension configuration files
- Allow disabling registering mock Liquid tags w/
ThemeCheck::Tags.register_tags = false
- Support Theme App Extensions
- Add checks for theme app extension block JS/CSS
- Disable Liquid::C when parsing Liquid templates
- Convert
AssetSizeCSS
toHtmlCheck
- Add
DeprecateLazysizes
&DeprecateBgsizes
checks - Allow hardcoded CDN urls in
RemoteAsset
- Bump
LiquidTag
min_consecutive_statements
default to 5 - Exclude {% javascript %} and {% stylesheet %} from line counts in
TemplateLength
- Bump
TemplateLength
max_length
default to 500 - Fix
StringScanner#skip(String)
not being supported on some Rubies - Fix
ParsingHelpers#outside_of_strings
handling of empty strings - Update to support new
{% render %}
syntax - Converted
AssetSizeJavaScript
toHtmlCheck
- Fix error when parsing a template with lots of HTML attributes.
- Add
HtmlParsingError
check for reporting errors during HTML parsing.
- Fix LSP diagnostics not being merged properly when analyzing a single file. Causing VSCode problems not being cleared after fixing.
- Add ImgLazyLoading check for recommending loading="lazy" attribute
- Convert
RemoteAsset
into anHtmlCheck
- Move Liquid logic from
RemoteAsset
to a newAssetUrlFilters
check
- Introduce HtmlCheck, and convert ParserBlockingJavaScript & ImgWidthAndHeight to it
- Move
script-tag
validation from ParserBlockingJavaScript to ParserBlockingScriptTag - Add ability to ignore individual checks using file patterns
- Introduce single file and whole theme checks to optimize LSP diagnostics
- Fix TemplateLength counter not being reseted on each document
- Add missing category to ValidHTMLTranslation
- Set Ruby default encodings to UTF-8 to fix encoding issues
- Add ContentForHeaderModification check to prevent relying on the content of ``content_for_header`
- Fix
Content-Length
in LSP responses - Fix disabling checks that emit offences in
on_end
- Fix completion bug in
filter_completion_provider
- Making sure VERSION is set before referencing it
- Bump NestedSnippet max_nesting_level to 3
- Add a message to help debug errors, and timeout checks after 5 sec
- Object Completions Everywhere!
- Include operators to space inside braces check
- Add consistent spacing around the pipe character (
|
) in variable expressions to theSpaceInsideBrace
check (#73) - Add ReCaptcha system translation (#265)
- Fix document links in
{% liquid %}
tags (#263) - Fix theme-check-disable for checks based on regular expressions (#242)
- Fix VS Code crash on new window (#264)
- Rescue errors thrown by remote_asset_file
- Set minimal Ruby version to 2.6
- Refactor CLI option parsing
- Fixup bug in RemoteAsset causing Language Server to break
- Fix High CPU Bug in RemoteAsset check
- Fix document link for render tags that trim whitespace.
- Add RemoteAsset Check
- Fixes:
- Don't hang on self closing img tags (#247)
- Fix document links from different root
- Add Snippet Completion (#223)
- Add Snippet Document Links (#223)
- Add ImgWidthAndHeight check (#216)
- Add AssetSizeCSS check (#206)
- Do not flag SystemTranslations as errors (#114)
- Do not complete deprecated filters (#205)
- Add
-C, --config path
support (#213)
- Add AssetSizeJavaScript check (#194)
- Add documentation for all checks
- Make documentation for checks mandatory
- Add link to documentation from within the editor (via
codeDescription
in the Language Server) () - Allow checks to have multiple categories
- Fix multiple occurrences of UndefinedObject not being reported (#192)
- Add Completion Engine (#161)
- Add init command to CLI (#174)
- Refactor start and end Position logic (#172)
- Fix column_end issues (#164)
- Fix stack overflow in UndefinedObject + UnusedAssign when snippets renders itself (#165)
- Ignore snippets in UndefinedObject check
- Fixup version flag
- Add ParserBlockingJavaScript Check (#78, #146)
- Internal refactor to enable running theme-check in servers (#145, #148)
- Add -v, --version flag (#126)
- Exclude content of {% schema %} in line count for TemplateLength (#140)
- Fix Language Server removed files bug (#136)
- Add ignore config (#147)
- Add ability to disable checks with comments (#79)
- Adding checks for shopify plus objects in checkout (#121)
- [Language Server] Send empty dianogstics to flush errors