theme-check 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4001e286b9a0c851493de76250770565088d1d8f646a6e592ee3f2c142b47c3c
4
- data.tar.gz: 3c3cd833684e0020211365eec091b70be3a064ae72f4c1d7337908fbfdbdacd8
3
+ metadata.gz: 3d699b72927dc2112b7cf3560a303a3dff52dfd99120e3201cd9721372282e36
4
+ data.tar.gz: e850929c23554d200de3ca17e0759e8a760f98152cf293561a54aa5fbc24c5e5
5
5
  SHA512:
6
- metadata.gz: 35855ff5a3e10f8a8dc60cc40d619fe713f013eb8ee64f92c565c34e3a3b58b9646ca1b707535f777e53cabae1dd58facc2adc4722e5c704b11ff70d9407e959
7
- data.tar.gz: fb9f94add954ec84a0fb8ca6616e8d91981701ff0d62f5dc89692dcd4ddf7715073db531dc81ec7dd1c8a4fc8df93360adbc32ee02254d8538a027236995cbdf
6
+ metadata.gz: f3e26f98b06a8c596442ac7562d72810ab92b4e20a3ddca2892860f94377fb1b5f4e9d6ba94eba5687170c364ac17a080fb971b95cc41b66d3a811b2637282ab
7
+ data.tar.gz: c2d95ee213323de5df634c2b47b21317a3fef5f9edae2aae056d87ecc41694a0ba9296eb9dd0c9cf70213ad920d2b8fa4849d197c77cb196c50111728156eca5
@@ -47,23 +47,35 @@ module ThemeCheck
47
47
  log("Checking #{config.root}")
48
48
  analyzer.analyze_theme
49
49
  log("Found #{theme.all.size} templates, and #{analyzer.offenses.size} offenses")
50
- send_offenses(analyzer.offenses)
50
+ send_diagnostics(analyzer.offenses, theme.all)
51
51
  end
52
52
 
53
- def send_offenses(offenses)
53
+ def send_diagnostics(offenses, templates)
54
+ contains_offenses = []
55
+
54
56
  offenses.group_by(&:template).each do |template, template_offenses|
55
57
  next unless template
56
- # https://microsoft.github.io/language-server-protocol/specifications/specification-current/#notificationMessage
57
- send_response(
58
- method: 'textDocument/publishDiagnostics',
59
- params: {
60
- uri: "file:#{template.path}",
61
- diagnostics: template_offenses.map { |offense| offense_to_diagnostic(offense) },
62
- },
63
- )
58
+ send_diagnostic(template.path, template_offenses)
59
+ contains_offenses.push(template.path)
60
+ end
61
+
62
+ # Publish diagnostics with empty array if template does not contain error
63
+ templates.select { |t| !contains_offenses.include?(t.path) }.each do |template|
64
+ send_diagnostic(template.path, [])
64
65
  end
65
66
  end
66
67
 
68
+ def send_diagnostic(path, offenses)
69
+ # https://microsoft.github.io/language-server-protocol/specifications/specification-current/#notificationMessage
70
+ send_response(
71
+ method: 'textDocument/publishDiagnostics',
72
+ params: {
73
+ uri: "file:#{path}",
74
+ diagnostics: offenses.map { |offense| offense_to_diagnostic(offense) },
75
+ },
76
+ )
77
+ end
78
+
67
79
  def offense_to_diagnostic(offense)
68
80
  {
69
81
  range: range(offense),
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ThemeCheck
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.2"
4
4
  end
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: 0.2.0
4
+ version: 0.2.2
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-01-20 00:00:00.000000000 Z
11
+ date: 2021-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: liquid