yard-lint 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +57 -3
  4. data/README.md +154 -529
  5. data/Rakefile +11 -8
  6. data/bin/yard-lint +64 -5
  7. data/lib/yard/lint/config.rb +4 -0
  8. data/lib/yard/lint/config_validator.rb +230 -0
  9. data/lib/yard/lint/errors.rb +6 -0
  10. data/lib/yard/lint/path_grouper.rb +70 -0
  11. data/lib/yard/lint/result_builder.rb +19 -5
  12. data/lib/yard/lint/results/base.rb +3 -3
  13. data/lib/yard/lint/templates/default_config.yml +17 -0
  14. data/lib/yard/lint/templates/strict_config.yml +17 -0
  15. data/lib/yard/lint/todo_generator.rb +261 -0
  16. data/lib/yard/lint/validators/base.rb +1 -1
  17. data/lib/yard/lint/validators/documentation/missing_return/config.rb +23 -0
  18. data/lib/yard/lint/validators/documentation/missing_return/messages_builder.rb +23 -0
  19. data/lib/yard/lint/validators/documentation/missing_return/parser.rb +128 -0
  20. data/lib/yard/lint/validators/documentation/missing_return/result.rb +25 -0
  21. data/lib/yard/lint/validators/documentation/missing_return/validator.rb +40 -0
  22. data/lib/yard/lint/validators/documentation/missing_return.rb +49 -0
  23. data/lib/yard/lint/validators/documentation/undocumented_boolean_methods/parser.rb +1 -1
  24. data/lib/yard/lint/validators/documentation/undocumented_method_arguments/parser.rb +1 -1
  25. data/lib/yard/lint/validators/documentation/undocumented_method_arguments/validator.rb +3 -0
  26. data/lib/yard/lint/validators/documentation/undocumented_objects/parser.rb +1 -1
  27. data/lib/yard/lint/validators/tags/collection_type/messages_builder.rb +8 -2
  28. data/lib/yard/lint/validators/tags/collection_type/validator.rb +33 -14
  29. data/lib/yard/lint/validators/tags/example_style/config.rb +33 -0
  30. data/lib/yard/lint/validators/tags/example_style/linter_detector.rb +71 -0
  31. data/lib/yard/lint/validators/tags/example_style/messages_builder.rb +29 -0
  32. data/lib/yard/lint/validators/tags/example_style/parser.rb +88 -0
  33. data/lib/yard/lint/validators/tags/example_style/result.rb +42 -0
  34. data/lib/yard/lint/validators/tags/example_style/rubocop_runner.rb +210 -0
  35. data/lib/yard/lint/validators/tags/example_style/validator.rb +87 -0
  36. data/lib/yard/lint/validators/tags/example_style.rb +61 -0
  37. data/lib/yard/lint/validators/tags/forbidden_tags.rb +2 -2
  38. data/lib/yard/lint/validators/tags/invalid_types/validator.rb +1 -1
  39. data/lib/yard/lint/validators/tags/tag_group_separator/parser.rb +1 -1
  40. data/lib/yard/lint/validators/tags/type_syntax/validator.rb +19 -0
  41. data/lib/yard/lint/validators/warnings/unknown_tag/parser.rb +1 -1
  42. data/lib/yard/lint/version.rb +1 -1
  43. data/mise.toml +2 -0
  44. data/package-lock.json +329 -0
  45. data/package.json +7 -0
  46. data/proxy_types +0 -0
  47. data/renovate.json +18 -1
  48. metadata +23 -3
  49. data/.coditsu/ci.yml +0 -3
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yard
4
+ module Lint
5
+ module Validators
6
+ module Tags
7
+ # ExampleStyle validator
8
+ #
9
+ # Validates code style in `@example` tags using RuboCop or StandardRB.
10
+ # This validator ensures that code examples follow the same style guidelines
11
+ # as the project codebase for consistency.
12
+ #
13
+ # ## Requirements
14
+ #
15
+ # - RuboCop or StandardRB gem must be installed
16
+ # - Validator auto-detects which linter to use based on project setup
17
+ #
18
+ # ## Configuration
19
+ #
20
+ # Basic usage:
21
+ #
22
+ # Tags/ExampleStyle:
23
+ # Enabled: true
24
+ #
25
+ # Advanced configuration:
26
+ #
27
+ # Tags/ExampleStyle:
28
+ # Enabled: true
29
+ # Linter: auto # 'auto', 'rubocop', 'standard', or 'none'
30
+ # SkipPatterns:
31
+ # - '/skip-lint/i'
32
+ # - '/bad code/i'
33
+ # DisabledCops:
34
+ # - 'Metrics/MethodLength'
35
+ #
36
+ # ## Skipping Examples
37
+ #
38
+ # Skip linting for specific examples (negative examples):
39
+ #
40
+ # # @example Bad code (skip-lint)
41
+ # # user = User.new("invalid")
42
+ #
43
+ # Or use inline RuboCop directives:
44
+ #
45
+ # # @example
46
+ # # # rubocop:disable all
47
+ # # user = User.new("invalid")
48
+ # # # rubocop:enable all
49
+ module ExampleStyle
50
+ autoload :Validator, 'yard/lint/validators/tags/example_style/validator'
51
+ autoload :Config, 'yard/lint/validators/tags/example_style/config'
52
+ autoload :Parser, 'yard/lint/validators/tags/example_style/parser'
53
+ autoload :Result, 'yard/lint/validators/tags/example_style/result'
54
+ autoload :MessagesBuilder, 'yard/lint/validators/tags/example_style/messages_builder'
55
+ autoload :LinterDetector, 'yard/lint/validators/tags/example_style/linter_detector'
56
+ autoload :RubocopRunner, 'yard/lint/validators/tags/example_style/rubocop_runner'
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -37,14 +37,14 @@ module Yard
37
37
  # # Does something
38
38
  # # @return [void]
39
39
  # def do_something
40
- # puts 'done'
40
+ # puts "done"
41
41
  # end
42
42
  #
43
43
  # @example Good - Document side effects instead
44
44
  # # Prints 'done' to stdout
45
45
  # # @return [nil] always returns nil after printing
46
46
  # def do_something
47
- # puts 'done'
47
+ # puts "done"
48
48
  # end
49
49
  #
50
50
  # @example Bad - @param [Object] (when configured as forbidden)
@@ -34,7 +34,7 @@ module Yard
34
34
  allowed_types = ALLOWED_DEFAULTS + extra_types
35
35
 
36
36
  # Sanitize type string (remove type syntax characters)
37
- sanitize = ->(type) { type.tr('=><>,{} ', '') }
37
+ sanitize = ->(type) { type.tr('=><>,{} ()', '') }
38
38
 
39
39
  # Check for invalid types
40
40
  invalid_types = object.docstring.tags
@@ -7,7 +7,7 @@ module Yard
7
7
  module TagGroupSeparator
8
8
  # Parser for extracting tag group separator violations from raw validator output.
9
9
  #
10
- # @example Output format
10
+ # @example Output format (skip-lint)
11
11
  # /path/to/file.rb:10: ClassName#method_name
12
12
  # param->return,return->error
13
13
  class Parser < Parsers::Base
@@ -7,6 +7,18 @@ module Yard
7
7
  module TypeSyntax
8
8
  # Runs YARD to validate type syntax using TypesExplainer::Parser
9
9
  class Validator < Base
10
+ # Matches valid Ruby symbol literals: :foo, :foo?, :foo!, :foo=
11
+ SYMBOL_LITERAL = /\A:[a-zA-Z_]\w*[?!=]?\z/
12
+ # Matches valid quoted symbol literals: :"foo", :'foo' (quotes must match)
13
+ QUOTED_SYMBOL_LITERAL = /\A:("[^"]*"|'[^']*')\z/
14
+ # Matches string literals: "foo", 'foo' (quotes must match)
15
+ STRING_LITERAL = /\A("[^"]*"|'[^']*')\z/
16
+ # Matches numeric literals: 1, -1, 1.0, -2.5
17
+ NUMERIC_LITERAL = /\A-?\d+(\.\d+)?\z/
18
+
19
+ private_constant :SYMBOL_LITERAL, :QUOTED_SYMBOL_LITERAL, :STRING_LITERAL,
20
+ :NUMERIC_LITERAL
21
+
10
22
  # Enable in-process execution
11
23
  in_process visibility: :public
12
24
 
@@ -25,6 +37,13 @@ module Yard
25
37
  next unless tag.types
26
38
 
27
39
  tag.types.each do |type_str|
40
+ # Skip literal types that YARD accepts but TypesExplainer::Parser doesn't
41
+ # See: https://github.com/mensfeld/yard-lint/issues/109
42
+ next if type_str.match?(SYMBOL_LITERAL)
43
+ next if type_str.match?(QUOTED_SYMBOL_LITERAL)
44
+ next if type_str.match?(STRING_LITERAL)
45
+ next if type_str.match?(NUMERIC_LITERAL)
46
+
28
47
  begin
29
48
  YARD::Tags::TypesExplainer::Parser.parse(type_str)
30
49
  rescue SyntaxError => e
@@ -6,7 +6,7 @@ module Yard
6
6
  module Warnings
7
7
  module UnknownTag
8
8
  # Parser used to extract warnings details that are related to yard unknown tags
9
- # @example
9
+ # @example Output format (skip-lint)
10
10
  # [warn]: Unknown tag @example1 in file `/builds/path/engine.rb` near line 32
11
11
  class Parser < ::Yard::Lint::Parsers::OneLineBase
12
12
  # Set of regexps for detecting warnings reported by YARD stats
@@ -3,6 +3,6 @@
3
3
  module Yard
4
4
  module Lint
5
5
  # @return [String] version of the YARD Lint gem
6
- VERSION = '1.4.0'
6
+ VERSION = '1.5.0'
7
7
  end
8
8
  end
data/mise.toml ADDED
@@ -0,0 +1,2 @@
1
+ [tools]
2
+ ruby = "3.3.0"
data/package-lock.json ADDED
@@ -0,0 +1,329 @@
1
+ {
2
+ "name": "yard-lint",
3
+ "lockfileVersion": 3,
4
+ "requires": true,
5
+ "packages": {
6
+ "": {
7
+ "name": "yard-lint",
8
+ "devDependencies": {
9
+ "lostconf": "0.4.0"
10
+ }
11
+ },
12
+ "node_modules/@nodelib/fs.scandir": {
13
+ "version": "2.1.5",
14
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
15
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
16
+ "dev": true,
17
+ "license": "MIT",
18
+ "dependencies": {
19
+ "@nodelib/fs.stat": "2.0.5",
20
+ "run-parallel": "^1.1.9"
21
+ },
22
+ "engines": {
23
+ "node": ">= 8"
24
+ }
25
+ },
26
+ "node_modules/@nodelib/fs.stat": {
27
+ "version": "2.0.5",
28
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
29
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
30
+ "dev": true,
31
+ "license": "MIT",
32
+ "engines": {
33
+ "node": ">= 8"
34
+ }
35
+ },
36
+ "node_modules/@nodelib/fs.walk": {
37
+ "version": "1.2.8",
38
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
39
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
40
+ "dev": true,
41
+ "license": "MIT",
42
+ "dependencies": {
43
+ "@nodelib/fs.scandir": "2.1.5",
44
+ "fastq": "^1.6.0"
45
+ },
46
+ "engines": {
47
+ "node": ">= 8"
48
+ }
49
+ },
50
+ "node_modules/braces": {
51
+ "version": "3.0.3",
52
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
53
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
54
+ "dev": true,
55
+ "license": "MIT",
56
+ "dependencies": {
57
+ "fill-range": "^7.1.1"
58
+ },
59
+ "engines": {
60
+ "node": ">=8"
61
+ }
62
+ },
63
+ "node_modules/chalk": {
64
+ "version": "5.6.2",
65
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
66
+ "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
67
+ "dev": true,
68
+ "license": "MIT",
69
+ "engines": {
70
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
71
+ },
72
+ "funding": {
73
+ "url": "https://github.com/chalk/chalk?sponsor=1"
74
+ }
75
+ },
76
+ "node_modules/commander": {
77
+ "version": "12.1.0",
78
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
79
+ "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
80
+ "dev": true,
81
+ "license": "MIT",
82
+ "engines": {
83
+ "node": ">=18"
84
+ }
85
+ },
86
+ "node_modules/fast-glob": {
87
+ "version": "3.3.3",
88
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
89
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
90
+ "dev": true,
91
+ "license": "MIT",
92
+ "dependencies": {
93
+ "@nodelib/fs.stat": "^2.0.2",
94
+ "@nodelib/fs.walk": "^1.2.3",
95
+ "glob-parent": "^5.1.2",
96
+ "merge2": "^1.3.0",
97
+ "micromatch": "^4.0.8"
98
+ },
99
+ "engines": {
100
+ "node": ">=8.6.0"
101
+ }
102
+ },
103
+ "node_modules/fastq": {
104
+ "version": "1.20.1",
105
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
106
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
107
+ "dev": true,
108
+ "license": "ISC",
109
+ "dependencies": {
110
+ "reusify": "^1.0.4"
111
+ }
112
+ },
113
+ "node_modules/fill-range": {
114
+ "version": "7.1.1",
115
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
116
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
117
+ "dev": true,
118
+ "license": "MIT",
119
+ "dependencies": {
120
+ "to-regex-range": "^5.0.1"
121
+ },
122
+ "engines": {
123
+ "node": ">=8"
124
+ }
125
+ },
126
+ "node_modules/glob-parent": {
127
+ "version": "5.1.2",
128
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
129
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
130
+ "dev": true,
131
+ "license": "ISC",
132
+ "dependencies": {
133
+ "is-glob": "^4.0.1"
134
+ },
135
+ "engines": {
136
+ "node": ">= 6"
137
+ }
138
+ },
139
+ "node_modules/is-extglob": {
140
+ "version": "2.1.1",
141
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
142
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
143
+ "dev": true,
144
+ "license": "MIT",
145
+ "engines": {
146
+ "node": ">=0.10.0"
147
+ }
148
+ },
149
+ "node_modules/is-glob": {
150
+ "version": "4.0.3",
151
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
152
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
153
+ "dev": true,
154
+ "license": "MIT",
155
+ "dependencies": {
156
+ "is-extglob": "^2.1.1"
157
+ },
158
+ "engines": {
159
+ "node": ">=0.10.0"
160
+ }
161
+ },
162
+ "node_modules/is-number": {
163
+ "version": "7.0.0",
164
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
165
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
166
+ "dev": true,
167
+ "license": "MIT",
168
+ "engines": {
169
+ "node": ">=0.12.0"
170
+ }
171
+ },
172
+ "node_modules/lostconf": {
173
+ "version": "0.4.0",
174
+ "resolved": "https://registry.npmjs.org/lostconf/-/lostconf-0.4.0.tgz",
175
+ "integrity": "sha512-VNbUnirRU7uESqMHslIRHTcuyx/rr4OZK+L7EQXtYUe5PorBgqBYvPu+6xOr0CoUy4n34NNUKO6BBH6TgwwGTA==",
176
+ "dev": true,
177
+ "license": "MIT",
178
+ "dependencies": {
179
+ "chalk": "^5.3.0",
180
+ "commander": "^12.1.0",
181
+ "fast-glob": "^3.3.2",
182
+ "micromatch": "^4.0.8",
183
+ "smol-toml": "^1.3.0",
184
+ "yaml": "^2.5.0"
185
+ },
186
+ "bin": {
187
+ "lostconf": "dist/cli.js"
188
+ },
189
+ "engines": {
190
+ "node": ">=18.0.0"
191
+ }
192
+ },
193
+ "node_modules/merge2": {
194
+ "version": "1.4.1",
195
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
196
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
197
+ "dev": true,
198
+ "license": "MIT",
199
+ "engines": {
200
+ "node": ">= 8"
201
+ }
202
+ },
203
+ "node_modules/micromatch": {
204
+ "version": "4.0.8",
205
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
206
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
207
+ "dev": true,
208
+ "license": "MIT",
209
+ "dependencies": {
210
+ "braces": "^3.0.3",
211
+ "picomatch": "^2.3.1"
212
+ },
213
+ "engines": {
214
+ "node": ">=8.6"
215
+ }
216
+ },
217
+ "node_modules/picomatch": {
218
+ "version": "2.3.1",
219
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
220
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
221
+ "dev": true,
222
+ "license": "MIT",
223
+ "engines": {
224
+ "node": ">=8.6"
225
+ },
226
+ "funding": {
227
+ "url": "https://github.com/sponsors/jonschlinkert"
228
+ }
229
+ },
230
+ "node_modules/queue-microtask": {
231
+ "version": "1.2.3",
232
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
233
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
234
+ "dev": true,
235
+ "funding": [
236
+ {
237
+ "type": "github",
238
+ "url": "https://github.com/sponsors/feross"
239
+ },
240
+ {
241
+ "type": "patreon",
242
+ "url": "https://www.patreon.com/feross"
243
+ },
244
+ {
245
+ "type": "consulting",
246
+ "url": "https://feross.org/support"
247
+ }
248
+ ],
249
+ "license": "MIT"
250
+ },
251
+ "node_modules/reusify": {
252
+ "version": "1.1.0",
253
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
254
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
255
+ "dev": true,
256
+ "license": "MIT",
257
+ "engines": {
258
+ "iojs": ">=1.0.0",
259
+ "node": ">=0.10.0"
260
+ }
261
+ },
262
+ "node_modules/run-parallel": {
263
+ "version": "1.2.0",
264
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
265
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
266
+ "dev": true,
267
+ "funding": [
268
+ {
269
+ "type": "github",
270
+ "url": "https://github.com/sponsors/feross"
271
+ },
272
+ {
273
+ "type": "patreon",
274
+ "url": "https://www.patreon.com/feross"
275
+ },
276
+ {
277
+ "type": "consulting",
278
+ "url": "https://feross.org/support"
279
+ }
280
+ ],
281
+ "license": "MIT",
282
+ "dependencies": {
283
+ "queue-microtask": "^1.2.2"
284
+ }
285
+ },
286
+ "node_modules/smol-toml": {
287
+ "version": "1.6.0",
288
+ "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz",
289
+ "integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==",
290
+ "dev": true,
291
+ "license": "BSD-3-Clause",
292
+ "engines": {
293
+ "node": ">= 18"
294
+ },
295
+ "funding": {
296
+ "url": "https://github.com/sponsors/cyyynthia"
297
+ }
298
+ },
299
+ "node_modules/to-regex-range": {
300
+ "version": "5.0.1",
301
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
302
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
303
+ "dev": true,
304
+ "license": "MIT",
305
+ "dependencies": {
306
+ "is-number": "^7.0.0"
307
+ },
308
+ "engines": {
309
+ "node": ">=8.0"
310
+ }
311
+ },
312
+ "node_modules/yaml": {
313
+ "version": "2.8.2",
314
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
315
+ "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
316
+ "dev": true,
317
+ "license": "ISC",
318
+ "bin": {
319
+ "yaml": "bin.mjs"
320
+ },
321
+ "engines": {
322
+ "node": ">= 14.6"
323
+ },
324
+ "funding": {
325
+ "url": "https://github.com/sponsors/eemeli"
326
+ }
327
+ }
328
+ }
329
+ }
data/package.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "yard-lint",
3
+ "private": true,
4
+ "devDependencies": {
5
+ "lostconf": "0.4.0"
6
+ }
7
+ }
data/proxy_types ADDED
Binary file
data/renovate.json CHANGED
@@ -9,7 +9,24 @@
9
9
  "pinDigests": true
10
10
  },
11
11
  "includePaths": [
12
+ ".ruby-version",
12
13
  "Gemfile",
13
- "yard-lint.gemspec"
14
+ "Gemfile.lint",
15
+ "yard-lint.gemspec",
16
+ ".github/workflows/**",
17
+ "package.json"
18
+ ],
19
+ "packageRules": [
20
+ {
21
+ "description": "Group ruby/setup-ruby action with ruby version updates",
22
+ "matchPackageNames": [
23
+ "ruby/setup-ruby",
24
+ "ruby"
25
+ ],
26
+ "groupName": "ruby setup"
27
+ }
28
+ ],
29
+ "labels": [
30
+ "dependencies"
14
31
  ]
15
32
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yard-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -46,7 +46,6 @@ executables:
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
- - ".coditsu/ci.yml"
50
49
  - ".ruby-version"
51
50
  - CHANGELOG.md
52
51
  - LICENSE.txt
@@ -59,6 +58,7 @@ files:
59
58
  - lib/yard/lint/config_generator.rb
60
59
  - lib/yard/lint/config_loader.rb
61
60
  - lib/yard/lint/config_updater.rb
61
+ - lib/yard/lint/config_validator.rb
62
62
  - lib/yard/lint/errors.rb
63
63
  - lib/yard/lint/executor/in_process_registry.rb
64
64
  - lib/yard/lint/executor/query_executor.rb
@@ -70,6 +70,7 @@ files:
70
70
  - lib/yard/lint/parsers/base.rb
71
71
  - lib/yard/lint/parsers/one_line_base.rb
72
72
  - lib/yard/lint/parsers/two_line_base.rb
73
+ - lib/yard/lint/path_grouper.rb
73
74
  - lib/yard/lint/result_builder.rb
74
75
  - lib/yard/lint/results/aggregate.rb
75
76
  - lib/yard/lint/results/base.rb
@@ -77,6 +78,7 @@ files:
77
78
  - lib/yard/lint/stats_calculator.rb
78
79
  - lib/yard/lint/templates/default_config.yml
79
80
  - lib/yard/lint/templates/strict_config.yml
81
+ - lib/yard/lint/todo_generator.rb
80
82
  - lib/yard/lint/validators/base.rb
81
83
  - lib/yard/lint/validators/config.rb
82
84
  - lib/yard/lint/validators/documentation/blank_line_before_definition.rb
@@ -97,6 +99,12 @@ files:
97
99
  - lib/yard/lint/validators/documentation/markdown_syntax/parser.rb
98
100
  - lib/yard/lint/validators/documentation/markdown_syntax/result.rb
99
101
  - lib/yard/lint/validators/documentation/markdown_syntax/validator.rb
102
+ - lib/yard/lint/validators/documentation/missing_return.rb
103
+ - lib/yard/lint/validators/documentation/missing_return/config.rb
104
+ - lib/yard/lint/validators/documentation/missing_return/messages_builder.rb
105
+ - lib/yard/lint/validators/documentation/missing_return/parser.rb
106
+ - lib/yard/lint/validators/documentation/missing_return/result.rb
107
+ - lib/yard/lint/validators/documentation/missing_return/validator.rb
100
108
  - lib/yard/lint/validators/documentation/undocumented_boolean_methods.rb
101
109
  - lib/yard/lint/validators/documentation/undocumented_boolean_methods/config.rb
102
110
  - lib/yard/lint/validators/documentation/undocumented_boolean_methods/parser.rb
@@ -137,6 +145,14 @@ files:
137
145
  - lib/yard/lint/validators/tags/collection_type/parser.rb
138
146
  - lib/yard/lint/validators/tags/collection_type/result.rb
139
147
  - lib/yard/lint/validators/tags/collection_type/validator.rb
148
+ - lib/yard/lint/validators/tags/example_style.rb
149
+ - lib/yard/lint/validators/tags/example_style/config.rb
150
+ - lib/yard/lint/validators/tags/example_style/linter_detector.rb
151
+ - lib/yard/lint/validators/tags/example_style/messages_builder.rb
152
+ - lib/yard/lint/validators/tags/example_style/parser.rb
153
+ - lib/yard/lint/validators/tags/example_style/result.rb
154
+ - lib/yard/lint/validators/tags/example_style/rubocop_runner.rb
155
+ - lib/yard/lint/validators/tags/example_style/validator.rb
140
156
  - lib/yard/lint/validators/tags/example_syntax.rb
141
157
  - lib/yard/lint/validators/tags/example_syntax/config.rb
142
158
  - lib/yard/lint/validators/tags/example_syntax/messages_builder.rb
@@ -243,6 +259,10 @@ files:
243
259
  - lib/yard/lint/validators/warnings/unknown_tag/validator.rb
244
260
  - lib/yard/lint/version.rb
245
261
  - misc/logo.png
262
+ - mise.toml
263
+ - package-lock.json
264
+ - package.json
265
+ - proxy_types
246
266
  - renovate.json
247
267
  homepage: https://github.com/mensfeld/yard-lint
248
268
  licenses:
@@ -266,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
266
286
  - !ruby/object:Gem::Version
267
287
  version: '0'
268
288
  requirements: []
269
- rubygems_version: 4.0.0.dev
289
+ rubygems_version: 4.0.6
270
290
  specification_version: 4
271
291
  summary: YARD documentation linter and validator
272
292
  test_files: []
data/.coditsu/ci.yml DELETED
@@ -1,3 +0,0 @@
1
- repository_id: '65b8c66c-02f1-44a2-a078-4af9a0ced5cd'
2
- api_key: <%= ENV['CODITSU_API_KEY'] %>
3
- api_secret: <%= ENV['CODITSU_API_SECRET'] %>