theme-check 1.2.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/theme-check.yml +3 -3
- data/.gitignore +1 -0
- data/CHANGELOG.md +47 -0
- data/CONTRIBUTING.md +59 -1
- data/Gemfile +3 -0
- data/bin/theme-check +29 -0
- data/bin/theme-check-language-server +29 -0
- data/config/default.yml +15 -1
- data/config/theme_app_extension.yml +15 -0
- data/data/shopify_liquid/objects.yml +1 -0
- data/docs/checks/app_block_valid_tags.md +40 -0
- data/docs/checks/asset_size_app_block_css.md +1 -1
- data/docs/checks/deprecate_lazysizes.md +0 -3
- data/docs/checks/deprecated_global_app_block_type.md +65 -0
- data/docs/checks/missing_template.md +25 -0
- data/docs/checks/pagination_size.md +44 -0
- data/docs/checks/template_length.md +1 -1
- data/docs/checks/undefined_object.md +5 -0
- data/docs/flamegraph.svg +18488 -0
- data/lib/theme_check/analyzer.rb +1 -0
- data/lib/theme_check/check.rb +2 -2
- data/lib/theme_check/checks/app_block_valid_tags.rb +36 -0
- data/lib/theme_check/checks/asset_size_css.rb +3 -3
- data/lib/theme_check/checks/asset_size_javascript.rb +2 -2
- data/lib/theme_check/checks/convert_include_to_render.rb +3 -1
- data/lib/theme_check/checks/default_locale.rb +3 -1
- data/lib/theme_check/checks/deprecate_bgsizes.rb +1 -1
- data/lib/theme_check/checks/deprecate_lazysizes.rb +7 -4
- data/lib/theme_check/checks/deprecated_global_app_block_type.rb +57 -0
- data/lib/theme_check/checks/img_lazy_loading.rb +1 -1
- data/lib/theme_check/checks/img_width_and_height.rb +3 -3
- data/lib/theme_check/checks/missing_template.rb +21 -5
- data/lib/theme_check/checks/pagination_size.rb +84 -0
- data/lib/theme_check/checks/parser_blocking_javascript.rb +1 -1
- data/lib/theme_check/checks/remote_asset.rb +3 -3
- data/lib/theme_check/checks/space_inside_braces.rb +26 -6
- data/lib/theme_check/checks/template_length.rb +1 -1
- data/lib/theme_check/checks/undefined_object.rb +1 -1
- data/lib/theme_check/checks/valid_html_translation.rb +1 -1
- data/lib/theme_check/checks.rb +11 -1
- data/lib/theme_check/cli.rb +42 -3
- data/lib/theme_check/corrector.rb +9 -0
- data/lib/theme_check/file_system_storage.rb +12 -0
- data/lib/theme_check/html_check.rb +0 -1
- data/lib/theme_check/html_node.rb +37 -16
- data/lib/theme_check/html_visitor.rb +17 -3
- data/lib/theme_check/json_check.rb +2 -2
- data/lib/theme_check/json_file.rb +11 -0
- data/lib/theme_check/json_printer.rb +31 -0
- data/lib/theme_check/language_server/constants.rb +18 -11
- data/lib/theme_check/language_server/document_link_engine.rb +3 -67
- data/lib/theme_check/language_server/document_link_provider.rb +71 -0
- data/lib/theme_check/language_server/document_link_providers/asset_document_link_provider.rb +11 -0
- data/lib/theme_check/language_server/document_link_providers/include_document_link_provider.rb +11 -0
- data/lib/theme_check/language_server/document_link_providers/render_document_link_provider.rb +11 -0
- data/lib/theme_check/language_server/document_link_providers/section_document_link_provider.rb +11 -0
- data/lib/theme_check/language_server/handler.rb +17 -9
- data/lib/theme_check/language_server/server.rb +11 -13
- data/lib/theme_check/language_server/uri_helper.rb +37 -0
- data/lib/theme_check/language_server.rb +6 -0
- data/lib/theme_check/node.rb +6 -4
- data/lib/theme_check/offense.rb +56 -3
- data/lib/theme_check/parsing_helpers.rb +4 -3
- data/lib/theme_check/position.rb +98 -14
- data/lib/theme_check/printer.rb +9 -5
- data/lib/theme_check/regex_helpers.rb +5 -2
- data/lib/theme_check/theme.rb +3 -0
- data/lib/theme_check/version.rb +1 -1
- data/lib/theme_check.rb +1 -0
- data/theme-check.gemspec +1 -1
- metadata +21 -10
- data/bin/liquid-server +0 -4
- data/exe/theme-check-language-server.bat +0 -3
- data/exe/theme-check.bat +0 -3
data/lib/theme_check/printer.rb
CHANGED
@@ -2,14 +2,18 @@
|
|
2
2
|
|
3
3
|
module ThemeCheck
|
4
4
|
class Printer
|
5
|
+
def initialize(out_stream = STDOUT)
|
6
|
+
@out = out_stream
|
7
|
+
end
|
8
|
+
|
5
9
|
def print(theme, offenses, auto_correct)
|
6
10
|
offenses.each do |offense|
|
7
11
|
print_offense(offense, auto_correct)
|
8
|
-
puts
|
12
|
+
@out.puts
|
9
13
|
end
|
10
14
|
|
11
15
|
correctable = offenses.select(&:correctable?)
|
12
|
-
puts "#{theme.all.size} files inspected, #{red(offenses.size.to_s + ' offenses')} detected, \
|
16
|
+
@out.puts "#{theme.all.size} files inspected, #{red(offenses.size.to_s + ' offenses')} detected, \
|
13
17
|
#{yellow(correctable.size.to_s + ' offenses')} #{auto_correct ? 'corrected' : 'auto-correctable'}"
|
14
18
|
end
|
15
19
|
|
@@ -26,15 +30,15 @@ module ThemeCheck
|
|
26
30
|
""
|
27
31
|
end
|
28
32
|
|
29
|
-
puts location +
|
33
|
+
@out.puts location +
|
30
34
|
colorized_severity(offense.severity) + ": " +
|
31
35
|
yellow(offense.check_name) + ": " +
|
32
36
|
corrected +
|
33
37
|
offense.message + "."
|
34
38
|
if offense.source_excerpt
|
35
|
-
puts "\t#{offense.source_excerpt}"
|
39
|
+
@out.puts "\t#{offense.source_excerpt}"
|
36
40
|
if offense.markup_start_in_excerpt
|
37
|
-
puts "\t" + (" " * offense.markup_start_in_excerpt) + ("^" * offense.markup.size)
|
41
|
+
@out.puts "\t" + (" " * offense.markup_start_in_excerpt) + ("^" * offense.markup.size)
|
38
42
|
end
|
39
43
|
end
|
40
44
|
end
|
@@ -2,8 +2,11 @@
|
|
2
2
|
|
3
3
|
module ThemeCheck
|
4
4
|
module RegexHelpers
|
5
|
-
|
5
|
+
LIQUID_TAG = /#{Liquid::TagStart}.*?#{Liquid::TagEnd}/om
|
6
|
+
LIQUID_VARIABLE = /#{Liquid::VariableStart}.*?#{Liquid::VariableEnd}/om
|
7
|
+
LIQUID_TAG_OR_VARIABLE = /#{LIQUID_TAG}|#{LIQUID_VARIABLE}/om
|
6
8
|
START_OR_END_QUOTE = /(^['"])|(['"]$)/
|
9
|
+
|
7
10
|
def matches(s, re)
|
8
11
|
start_at = 0
|
9
12
|
matches = []
|
@@ -16,7 +19,7 @@ module ThemeCheck
|
|
16
19
|
|
17
20
|
def href_to_file_size(href)
|
18
21
|
# asset_url (+ optional stylesheet_tag) variables
|
19
|
-
if href =~ /^#{
|
22
|
+
if href =~ /^#{LIQUID_VARIABLE}$/o && href =~ /asset_url/ && href =~ Liquid::QuotedString
|
20
23
|
asset_id = Regexp.last_match(0).gsub(START_OR_END_QUOTE, "")
|
21
24
|
asset = @theme.assets.find { |a| a.name.end_with?("/" + asset_id) }
|
22
25
|
return if asset.nil?
|
data/lib/theme_check/theme.rb
CHANGED
data/lib/theme_check/version.rb
CHANGED
data/lib/theme_check.rb
CHANGED
@@ -27,6 +27,7 @@ require_relative "theme_check/config"
|
|
27
27
|
require_relative "theme_check/node"
|
28
28
|
require_relative "theme_check/offense"
|
29
29
|
require_relative "theme_check/printer"
|
30
|
+
require_relative "theme_check/json_printer"
|
30
31
|
require_relative "theme_check/shopify_liquid"
|
31
32
|
require_relative "theme_check/storage"
|
32
33
|
require_relative "theme_check/string_helpers"
|
data/theme-check.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: theme-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc-André Cournoyer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: liquid
|
@@ -25,27 +25,25 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 5.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.12'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.12'
|
41
41
|
description:
|
42
42
|
email:
|
43
43
|
- marcandre.cournoyer@shopify.com
|
44
44
|
executables:
|
45
45
|
- theme-check
|
46
46
|
- theme-check-language-server
|
47
|
-
- theme-check-language-server.bat
|
48
|
-
- theme-check.bat
|
49
47
|
extensions: []
|
50
48
|
extra_rdoc_files: []
|
51
49
|
files:
|
@@ -62,7 +60,8 @@ files:
|
|
62
60
|
- README.md
|
63
61
|
- RELEASING.md
|
64
62
|
- Rakefile
|
65
|
-
- bin/
|
63
|
+
- bin/theme-check
|
64
|
+
- bin/theme-check-language-server
|
66
65
|
- config/default.yml
|
67
66
|
- config/nothing.yml
|
68
67
|
- config/theme_app_extension.yml
|
@@ -78,6 +77,7 @@ files:
|
|
78
77
|
- docs/api/json_check.md
|
79
78
|
- docs/api/liquid_check.md
|
80
79
|
- docs/checks/TEMPLATE.md.erb
|
80
|
+
- docs/checks/app_block_valid_tags.md
|
81
81
|
- docs/checks/asset_size_app_block_css.md
|
82
82
|
- docs/checks/asset_size_app_block_javascript.md
|
83
83
|
- docs/checks/asset_size_css.md
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- docs/checks/deprecate_bgsizes.md
|
91
91
|
- docs/checks/deprecate_lazysizes.md
|
92
92
|
- docs/checks/deprecated_filter.md
|
93
|
+
- docs/checks/deprecated_global_app_block_type.md
|
93
94
|
- docs/checks/html_parsing_error.md
|
94
95
|
- docs/checks/img_lazy_loading.md
|
95
96
|
- docs/checks/img_width_and_height.md
|
@@ -100,6 +101,7 @@ files:
|
|
100
101
|
- docs/checks/missing_required_template_files.md
|
101
102
|
- docs/checks/missing_template.md
|
102
103
|
- docs/checks/nested_snippet.md
|
104
|
+
- docs/checks/pagination_size.md
|
103
105
|
- docs/checks/parser_blocking_javascript.md
|
104
106
|
- docs/checks/parser_blocking_script_tag.md
|
105
107
|
- docs/checks/remote_asset.md
|
@@ -116,11 +118,10 @@ files:
|
|
116
118
|
- docs/checks/valid_html_translation.md
|
117
119
|
- docs/checks/valid_json.md
|
118
120
|
- docs/checks/valid_schema.md
|
121
|
+
- docs/flamegraph.svg
|
119
122
|
- docs/preview.png
|
120
123
|
- exe/theme-check
|
121
124
|
- exe/theme-check-language-server
|
122
|
-
- exe/theme-check-language-server.bat
|
123
|
-
- exe/theme-check.bat
|
124
125
|
- lib/theme_check.rb
|
125
126
|
- lib/theme_check/analyzer.rb
|
126
127
|
- lib/theme_check/asset_file.rb
|
@@ -128,6 +129,7 @@ files:
|
|
128
129
|
- lib/theme_check/check.rb
|
129
130
|
- lib/theme_check/checks.rb
|
130
131
|
- lib/theme_check/checks/TEMPLATE.rb.erb
|
132
|
+
- lib/theme_check/checks/app_block_valid_tags.rb
|
131
133
|
- lib/theme_check/checks/asset_size_app_block_css.rb
|
132
134
|
- lib/theme_check/checks/asset_size_app_block_javascript.rb
|
133
135
|
- lib/theme_check/checks/asset_size_css.rb
|
@@ -140,6 +142,7 @@ files:
|
|
140
142
|
- lib/theme_check/checks/deprecate_bgsizes.rb
|
141
143
|
- lib/theme_check/checks/deprecate_lazysizes.rb
|
142
144
|
- lib/theme_check/checks/deprecated_filter.rb
|
145
|
+
- lib/theme_check/checks/deprecated_global_app_block_type.rb
|
143
146
|
- lib/theme_check/checks/html_parsing_error.rb
|
144
147
|
- lib/theme_check/checks/img_lazy_loading.rb
|
145
148
|
- lib/theme_check/checks/img_width_and_height.rb
|
@@ -150,6 +153,7 @@ files:
|
|
150
153
|
- lib/theme_check/checks/missing_required_template_files.rb
|
151
154
|
- lib/theme_check/checks/missing_template.rb
|
152
155
|
- lib/theme_check/checks/nested_snippet.rb
|
156
|
+
- lib/theme_check/checks/pagination_size.rb
|
153
157
|
- lib/theme_check/checks/parser_blocking_javascript.rb
|
154
158
|
- lib/theme_check/checks/parser_blocking_script_tag.rb
|
155
159
|
- lib/theme_check/checks/remote_asset.rb
|
@@ -181,6 +185,7 @@ files:
|
|
181
185
|
- lib/theme_check/json_check.rb
|
182
186
|
- lib/theme_check/json_file.rb
|
183
187
|
- lib/theme_check/json_helpers.rb
|
188
|
+
- lib/theme_check/json_printer.rb
|
184
189
|
- lib/theme_check/language_server.rb
|
185
190
|
- lib/theme_check/language_server/completion_engine.rb
|
186
191
|
- lib/theme_check/language_server/completion_helper.rb
|
@@ -192,10 +197,16 @@ files:
|
|
192
197
|
- lib/theme_check/language_server/constants.rb
|
193
198
|
- lib/theme_check/language_server/diagnostics_tracker.rb
|
194
199
|
- lib/theme_check/language_server/document_link_engine.rb
|
200
|
+
- lib/theme_check/language_server/document_link_provider.rb
|
201
|
+
- lib/theme_check/language_server/document_link_providers/asset_document_link_provider.rb
|
202
|
+
- lib/theme_check/language_server/document_link_providers/include_document_link_provider.rb
|
203
|
+
- lib/theme_check/language_server/document_link_providers/render_document_link_provider.rb
|
204
|
+
- lib/theme_check/language_server/document_link_providers/section_document_link_provider.rb
|
195
205
|
- lib/theme_check/language_server/handler.rb
|
196
206
|
- lib/theme_check/language_server/protocol.rb
|
197
207
|
- lib/theme_check/language_server/server.rb
|
198
208
|
- lib/theme_check/language_server/tokens.rb
|
209
|
+
- lib/theme_check/language_server/uri_helper.rb
|
199
210
|
- lib/theme_check/language_server/variable_lookup_finder.rb
|
200
211
|
- lib/theme_check/liquid_check.rb
|
201
212
|
- lib/theme_check/locale_diff.rb
|
data/bin/liquid-server
DELETED
data/exe/theme-check.bat
DELETED