yard-lint 1.2.2 → 1.3.0.rc1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +174 -1
- data/README.md +118 -3
- data/Rakefile +20 -0
- data/bin/yard-lint +80 -37
- data/lib/yard/lint/config.rb +5 -0
- data/lib/yard/lint/config_generator.rb +8 -179
- data/lib/yard/lint/config_updater.rb +222 -0
- data/lib/yard/lint/errors.rb +6 -0
- data/lib/yard/lint/executor/in_process_registry.rb +130 -0
- data/lib/yard/lint/executor/query_executor.rb +109 -0
- data/lib/yard/lint/executor/result_collector.rb +55 -0
- data/lib/yard/lint/executor/warning_dispatcher.rb +79 -0
- data/lib/yard/lint/results/base.rb +2 -1
- data/lib/yard/lint/runner.rb +88 -35
- data/lib/yard/lint/stats_calculator.rb +1 -1
- data/lib/yard/lint/templates/default_config.yml +279 -0
- data/lib/yard/lint/templates/strict_config.yml +283 -0
- data/lib/yard/lint/validators/base.rb +52 -118
- data/lib/yard/lint/validators/documentation/blank_line_before_definition/config.rb +25 -0
- data/lib/yard/lint/validators/documentation/blank_line_before_definition/messages_builder.rb +39 -0
- data/lib/yard/lint/validators/documentation/blank_line_before_definition/parser.rb +59 -0
- data/lib/yard/lint/validators/documentation/blank_line_before_definition/result.rb +61 -0
- data/lib/yard/lint/validators/documentation/blank_line_before_definition/validator.rb +94 -0
- data/lib/yard/lint/validators/documentation/blank_line_before_definition.rb +63 -0
- data/lib/yard/lint/validators/documentation/empty_comment_line/config.rb +24 -0
- data/lib/yard/lint/validators/documentation/empty_comment_line/messages_builder.rb +34 -0
- data/lib/yard/lint/validators/documentation/empty_comment_line/parser.rb +60 -0
- data/lib/yard/lint/validators/documentation/empty_comment_line/result.rb +25 -0
- data/lib/yard/lint/validators/documentation/empty_comment_line/validator.rb +109 -0
- data/lib/yard/lint/validators/documentation/empty_comment_line.rb +58 -0
- data/lib/yard/lint/validators/documentation/markdown_syntax/validator.rb +36 -21
- data/lib/yard/lint/validators/documentation/markdown_syntax.rb +0 -1
- data/lib/yard/lint/validators/documentation/undocumented_boolean_methods/validator.rb +19 -29
- data/lib/yard/lint/validators/documentation/undocumented_boolean_methods.rb +0 -1
- data/lib/yard/lint/validators/documentation/undocumented_method_arguments/validator.rb +18 -34
- data/lib/yard/lint/validators/documentation/undocumented_method_arguments.rb +0 -1
- data/lib/yard/lint/validators/documentation/undocumented_objects/parser.rb +2 -2
- data/lib/yard/lint/validators/documentation/undocumented_objects/validator.rb +17 -25
- data/lib/yard/lint/validators/documentation/undocumented_objects.rb +4 -5
- data/lib/yard/lint/validators/documentation/undocumented_options/validator.rb +30 -21
- data/lib/yard/lint/validators/documentation/undocumented_options.rb +0 -1
- data/lib/yard/lint/validators/semantic/abstract_methods/result.rb +2 -2
- data/lib/yard/lint/validators/semantic/abstract_methods/validator.rb +31 -43
- data/lib/yard/lint/validators/semantic/abstract_methods.rb +0 -1
- data/lib/yard/lint/validators/tags/api_tags/validator.rb +24 -39
- data/lib/yard/lint/validators/tags/api_tags.rb +0 -1
- data/lib/yard/lint/validators/tags/collection_type/parser.rb +1 -1
- data/lib/yard/lint/validators/tags/collection_type/validator.rb +37 -66
- data/lib/yard/lint/validators/tags/collection_type.rb +0 -1
- data/lib/yard/lint/validators/tags/example_syntax/validator.rb +51 -64
- data/lib/yard/lint/validators/tags/example_syntax.rb +0 -1
- data/lib/yard/lint/validators/tags/informal_notation/config.rb +40 -0
- data/lib/yard/lint/validators/tags/informal_notation/messages_builder.rb +35 -0
- data/lib/yard/lint/validators/tags/informal_notation/parser.rb +55 -0
- data/lib/yard/lint/validators/tags/informal_notation/result.rb +26 -0
- data/lib/yard/lint/validators/tags/informal_notation/validator.rb +133 -0
- data/lib/yard/lint/validators/tags/informal_notation.rb +45 -0
- data/lib/yard/lint/validators/tags/invalid_types/validator.rb +57 -70
- data/lib/yard/lint/validators/tags/invalid_types.rb +0 -1
- data/lib/yard/lint/validators/tags/meaningless_tag/parser.rb +1 -1
- data/lib/yard/lint/validators/tags/meaningless_tag/validator.rb +22 -54
- data/lib/yard/lint/validators/tags/meaningless_tag.rb +0 -1
- data/lib/yard/lint/validators/tags/non_ascii_type/config.rb +21 -0
- data/lib/yard/lint/validators/tags/non_ascii_type/messages_builder.rb +29 -0
- data/lib/yard/lint/validators/tags/non_ascii_type/parser.rb +59 -0
- data/lib/yard/lint/validators/tags/non_ascii_type/result.rb +25 -0
- data/lib/yard/lint/validators/tags/non_ascii_type/validator.rb +50 -0
- data/lib/yard/lint/validators/tags/non_ascii_type.rb +39 -0
- data/lib/yard/lint/validators/tags/option_tags/result.rb +2 -2
- data/lib/yard/lint/validators/tags/option_tags/validator.rb +25 -40
- data/lib/yard/lint/validators/tags/option_tags.rb +0 -1
- data/lib/yard/lint/validators/tags/order/validator.rb +28 -55
- data/lib/yard/lint/validators/tags/order.rb +0 -1
- data/lib/yard/lint/validators/tags/redundant_param_description/config.rb +15 -1
- data/lib/yard/lint/validators/tags/redundant_param_description/messages_builder.rb +5 -0
- data/lib/yard/lint/validators/tags/redundant_param_description/validator.rb +134 -100
- data/lib/yard/lint/validators/tags/redundant_param_description.rb +0 -1
- data/lib/yard/lint/validators/tags/tag_group_separator/config.rb +29 -0
- data/lib/yard/lint/validators/tags/tag_group_separator/messages_builder.rb +49 -0
- data/lib/yard/lint/validators/tags/tag_group_separator/parser.rb +67 -0
- data/lib/yard/lint/validators/tags/tag_group_separator/result.rb +28 -0
- data/lib/yard/lint/validators/tags/tag_group_separator/validator.rb +117 -0
- data/lib/yard/lint/validators/tags/tag_group_separator.rb +49 -0
- data/lib/yard/lint/validators/tags/tag_type_position/parser.rb +1 -1
- data/lib/yard/lint/validators/tags/tag_type_position/validator.rb +53 -84
- data/lib/yard/lint/validators/tags/tag_type_position.rb +4 -5
- data/lib/yard/lint/validators/tags/type_syntax/parser.rb +8 -3
- data/lib/yard/lint/validators/tags/type_syntax/validator.rb +29 -59
- data/lib/yard/lint/validators/tags/type_syntax.rb +0 -1
- data/lib/yard/lint/validators/warnings/duplicated_parameter_name/validator.rb +1 -18
- data/lib/yard/lint/validators/warnings/invalid_directive_format/validator.rb +1 -18
- data/lib/yard/lint/validators/warnings/invalid_tag_format/validator.rb +1 -18
- data/lib/yard/lint/validators/warnings/unknown_directive/validator.rb +1 -18
- data/lib/yard/lint/validators/warnings/unknown_parameter_name/messages_builder.rb +243 -0
- data/lib/yard/lint/validators/warnings/unknown_parameter_name/result.rb +4 -3
- data/lib/yard/lint/validators/warnings/unknown_parameter_name/validator.rb +1 -18
- data/lib/yard/lint/validators/warnings/unknown_tag/messages_builder.rb +144 -0
- data/lib/yard/lint/validators/warnings/unknown_tag/result.rb +4 -3
- data/lib/yard/lint/validators/warnings/unknown_tag/validator.rb +1 -18
- data/lib/yard/lint/validators/warnings/unknown_tag.rb +10 -0
- data/lib/yard/lint/version.rb +1 -1
- data/lib/yard/lint.rb +81 -13
- data/renovate.json +1 -8
- metadata +40 -6
- data/bin/console +0 -11
- data/bin/setup +0 -8
- data/lib/yard/lint/command_cache.rb +0 -93
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
|
+
version: 1.3.0.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Maciej Mensfeld
|
|
@@ -42,8 +42,6 @@ description: A comprehensive linter for YARD documentation that checks for undoc
|
|
|
42
42
|
email:
|
|
43
43
|
- maciej@mensfeld.pl
|
|
44
44
|
executables:
|
|
45
|
-
- console
|
|
46
|
-
- setup
|
|
47
45
|
- yard-lint
|
|
48
46
|
extensions: []
|
|
49
47
|
extra_rdoc_files: []
|
|
@@ -53,16 +51,18 @@ files:
|
|
|
53
51
|
- LICENSE.txt
|
|
54
52
|
- README.md
|
|
55
53
|
- Rakefile
|
|
56
|
-
- bin/console
|
|
57
|
-
- bin/setup
|
|
58
54
|
- bin/yard-lint
|
|
59
55
|
- lib/yard-lint.rb
|
|
60
56
|
- lib/yard/lint.rb
|
|
61
|
-
- lib/yard/lint/command_cache.rb
|
|
62
57
|
- lib/yard/lint/config.rb
|
|
63
58
|
- lib/yard/lint/config_generator.rb
|
|
64
59
|
- lib/yard/lint/config_loader.rb
|
|
60
|
+
- lib/yard/lint/config_updater.rb
|
|
65
61
|
- lib/yard/lint/errors.rb
|
|
62
|
+
- lib/yard/lint/executor/in_process_registry.rb
|
|
63
|
+
- lib/yard/lint/executor/query_executor.rb
|
|
64
|
+
- lib/yard/lint/executor/result_collector.rb
|
|
65
|
+
- lib/yard/lint/executor/warning_dispatcher.rb
|
|
66
66
|
- lib/yard/lint/ext/irb_notifier_shim.rb
|
|
67
67
|
- lib/yard/lint/formatters/progress.rb
|
|
68
68
|
- lib/yard/lint/git.rb
|
|
@@ -74,8 +74,22 @@ files:
|
|
|
74
74
|
- lib/yard/lint/results/base.rb
|
|
75
75
|
- lib/yard/lint/runner.rb
|
|
76
76
|
- lib/yard/lint/stats_calculator.rb
|
|
77
|
+
- lib/yard/lint/templates/default_config.yml
|
|
78
|
+
- lib/yard/lint/templates/strict_config.yml
|
|
77
79
|
- lib/yard/lint/validators/base.rb
|
|
78
80
|
- lib/yard/lint/validators/config.rb
|
|
81
|
+
- lib/yard/lint/validators/documentation/blank_line_before_definition.rb
|
|
82
|
+
- lib/yard/lint/validators/documentation/blank_line_before_definition/config.rb
|
|
83
|
+
- lib/yard/lint/validators/documentation/blank_line_before_definition/messages_builder.rb
|
|
84
|
+
- lib/yard/lint/validators/documentation/blank_line_before_definition/parser.rb
|
|
85
|
+
- lib/yard/lint/validators/documentation/blank_line_before_definition/result.rb
|
|
86
|
+
- lib/yard/lint/validators/documentation/blank_line_before_definition/validator.rb
|
|
87
|
+
- lib/yard/lint/validators/documentation/empty_comment_line.rb
|
|
88
|
+
- lib/yard/lint/validators/documentation/empty_comment_line/config.rb
|
|
89
|
+
- lib/yard/lint/validators/documentation/empty_comment_line/messages_builder.rb
|
|
90
|
+
- lib/yard/lint/validators/documentation/empty_comment_line/parser.rb
|
|
91
|
+
- lib/yard/lint/validators/documentation/empty_comment_line/result.rb
|
|
92
|
+
- lib/yard/lint/validators/documentation/empty_comment_line/validator.rb
|
|
79
93
|
- lib/yard/lint/validators/documentation/markdown_syntax.rb
|
|
80
94
|
- lib/yard/lint/validators/documentation/markdown_syntax/config.rb
|
|
81
95
|
- lib/yard/lint/validators/documentation/markdown_syntax/messages_builder.rb
|
|
@@ -128,6 +142,12 @@ files:
|
|
|
128
142
|
- lib/yard/lint/validators/tags/example_syntax/parser.rb
|
|
129
143
|
- lib/yard/lint/validators/tags/example_syntax/result.rb
|
|
130
144
|
- lib/yard/lint/validators/tags/example_syntax/validator.rb
|
|
145
|
+
- lib/yard/lint/validators/tags/informal_notation.rb
|
|
146
|
+
- lib/yard/lint/validators/tags/informal_notation/config.rb
|
|
147
|
+
- lib/yard/lint/validators/tags/informal_notation/messages_builder.rb
|
|
148
|
+
- lib/yard/lint/validators/tags/informal_notation/parser.rb
|
|
149
|
+
- lib/yard/lint/validators/tags/informal_notation/result.rb
|
|
150
|
+
- lib/yard/lint/validators/tags/informal_notation/validator.rb
|
|
131
151
|
- lib/yard/lint/validators/tags/invalid_types.rb
|
|
132
152
|
- lib/yard/lint/validators/tags/invalid_types/config.rb
|
|
133
153
|
- lib/yard/lint/validators/tags/invalid_types/messages_builder.rb
|
|
@@ -140,6 +160,12 @@ files:
|
|
|
140
160
|
- lib/yard/lint/validators/tags/meaningless_tag/parser.rb
|
|
141
161
|
- lib/yard/lint/validators/tags/meaningless_tag/result.rb
|
|
142
162
|
- lib/yard/lint/validators/tags/meaningless_tag/validator.rb
|
|
163
|
+
- lib/yard/lint/validators/tags/non_ascii_type.rb
|
|
164
|
+
- lib/yard/lint/validators/tags/non_ascii_type/config.rb
|
|
165
|
+
- lib/yard/lint/validators/tags/non_ascii_type/messages_builder.rb
|
|
166
|
+
- lib/yard/lint/validators/tags/non_ascii_type/parser.rb
|
|
167
|
+
- lib/yard/lint/validators/tags/non_ascii_type/result.rb
|
|
168
|
+
- lib/yard/lint/validators/tags/non_ascii_type/validator.rb
|
|
143
169
|
- lib/yard/lint/validators/tags/option_tags.rb
|
|
144
170
|
- lib/yard/lint/validators/tags/option_tags/config.rb
|
|
145
171
|
- lib/yard/lint/validators/tags/option_tags/messages_builder.rb
|
|
@@ -158,6 +184,12 @@ files:
|
|
|
158
184
|
- lib/yard/lint/validators/tags/redundant_param_description/parser.rb
|
|
159
185
|
- lib/yard/lint/validators/tags/redundant_param_description/result.rb
|
|
160
186
|
- lib/yard/lint/validators/tags/redundant_param_description/validator.rb
|
|
187
|
+
- lib/yard/lint/validators/tags/tag_group_separator.rb
|
|
188
|
+
- lib/yard/lint/validators/tags/tag_group_separator/config.rb
|
|
189
|
+
- lib/yard/lint/validators/tags/tag_group_separator/messages_builder.rb
|
|
190
|
+
- lib/yard/lint/validators/tags/tag_group_separator/parser.rb
|
|
191
|
+
- lib/yard/lint/validators/tags/tag_group_separator/result.rb
|
|
192
|
+
- lib/yard/lint/validators/tags/tag_group_separator/validator.rb
|
|
161
193
|
- lib/yard/lint/validators/tags/tag_type_position.rb
|
|
162
194
|
- lib/yard/lint/validators/tags/tag_type_position/config.rb
|
|
163
195
|
- lib/yard/lint/validators/tags/tag_type_position/messages_builder.rb
|
|
@@ -192,11 +224,13 @@ files:
|
|
|
192
224
|
- lib/yard/lint/validators/warnings/unknown_directive/validator.rb
|
|
193
225
|
- lib/yard/lint/validators/warnings/unknown_parameter_name.rb
|
|
194
226
|
- lib/yard/lint/validators/warnings/unknown_parameter_name/config.rb
|
|
227
|
+
- lib/yard/lint/validators/warnings/unknown_parameter_name/messages_builder.rb
|
|
195
228
|
- lib/yard/lint/validators/warnings/unknown_parameter_name/parser.rb
|
|
196
229
|
- lib/yard/lint/validators/warnings/unknown_parameter_name/result.rb
|
|
197
230
|
- lib/yard/lint/validators/warnings/unknown_parameter_name/validator.rb
|
|
198
231
|
- lib/yard/lint/validators/warnings/unknown_tag.rb
|
|
199
232
|
- lib/yard/lint/validators/warnings/unknown_tag/config.rb
|
|
233
|
+
- lib/yard/lint/validators/warnings/unknown_tag/messages_builder.rb
|
|
200
234
|
- lib/yard/lint/validators/warnings/unknown_tag/parser.rb
|
|
201
235
|
- lib/yard/lint/validators/warnings/unknown_tag/result.rb
|
|
202
236
|
- lib/yard/lint/validators/warnings/unknown_tag/validator.rb
|
data/bin/console
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require "bundler/setup"
|
|
5
|
-
require "yard/lint"
|
|
6
|
-
|
|
7
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
|
8
|
-
# with your gem easier. You can also use a different console, if you like.
|
|
9
|
-
|
|
10
|
-
require "irb"
|
|
11
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Yard
|
|
4
|
-
module Lint
|
|
5
|
-
# Cache for YARD command executions to avoid running identical commands multiple times
|
|
6
|
-
# This provides a transparent optimization layer - validators don't need to know about it
|
|
7
|
-
class CommandCache
|
|
8
|
-
def initialize
|
|
9
|
-
@cache = {}
|
|
10
|
-
@hits = 0
|
|
11
|
-
@misses = 0
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Execute a command through the cache
|
|
15
|
-
# If the command has been executed before, return cached result
|
|
16
|
-
# Otherwise execute and cache the result
|
|
17
|
-
# @param command_string [String] the shell command to execute
|
|
18
|
-
# @return [Hash] hash with stdout, stderr, exit_code keys
|
|
19
|
-
# @note Returns a deep clone to prevent validators from modifying cached data
|
|
20
|
-
def execute(command_string)
|
|
21
|
-
cache_key = generate_cache_key(command_string)
|
|
22
|
-
|
|
23
|
-
if @cache.key?(cache_key)
|
|
24
|
-
@hits += 1
|
|
25
|
-
deep_clone(@cache[cache_key])
|
|
26
|
-
else
|
|
27
|
-
@misses += 1
|
|
28
|
-
result = execute_command(command_string)
|
|
29
|
-
@cache[cache_key] = deep_clone(result)
|
|
30
|
-
result
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# Get cache statistics
|
|
35
|
-
# @return [Hash] hash with hits, misses, and total executions
|
|
36
|
-
def stats
|
|
37
|
-
{
|
|
38
|
-
hits: @hits,
|
|
39
|
-
misses: @misses,
|
|
40
|
-
total: @hits + @misses,
|
|
41
|
-
saved_executions: @hits
|
|
42
|
-
}
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
private
|
|
46
|
-
|
|
47
|
-
# Generate a cache key for the command
|
|
48
|
-
# Normalizes the command to handle whitespace differences
|
|
49
|
-
# @param command_string [String] the command to generate key for
|
|
50
|
-
# @return [String] SHA256 hash of normalized command
|
|
51
|
-
def generate_cache_key(command_string)
|
|
52
|
-
# Normalize whitespace: collapse multiple spaces/newlines into single spaces
|
|
53
|
-
normalized = command_string.strip.gsub(/\s+/, ' ')
|
|
54
|
-
Digest::SHA256.hexdigest(normalized)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# Actually execute the command
|
|
58
|
-
# @param command_string [String] the command to execute
|
|
59
|
-
# @return [Hash] hash with stdout, stderr, exit_code keys
|
|
60
|
-
def execute_command(command_string)
|
|
61
|
-
# Set up environment to load IRB shim before YARD (Ruby 3.5+ compatibility)
|
|
62
|
-
env = build_environment_with_shim
|
|
63
|
-
|
|
64
|
-
stdout, stderr, status = Open3.capture3(env, command_string)
|
|
65
|
-
{
|
|
66
|
-
stdout: stdout,
|
|
67
|
-
stderr: stderr,
|
|
68
|
-
exit_code: status.exitstatus
|
|
69
|
-
}
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
# Build environment hash with RUBYOPT to load IRB shim
|
|
73
|
-
# This ensures the shim is loaded in subprocesses (like yard list commands)
|
|
74
|
-
# @return [Hash] environment variables for command execution
|
|
75
|
-
def build_environment_with_shim
|
|
76
|
-
shim_path = File.expand_path('ext/irb_notifier_shim.rb', __dir__)
|
|
77
|
-
rubyopt = "-r#{shim_path}"
|
|
78
|
-
|
|
79
|
-
# Preserve existing RUBYOPT if present
|
|
80
|
-
rubyopt = "#{ENV['RUBYOPT'].strip} #{rubyopt}" if ENV['RUBYOPT']
|
|
81
|
-
|
|
82
|
-
{ 'RUBYOPT' => rubyopt }
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
# Deep clone a hash to prevent modifications to cached data
|
|
86
|
-
# @param hash [Hash] the hash to clone
|
|
87
|
-
# @return [Hash] deep cloned hash
|
|
88
|
-
def deep_clone(hash)
|
|
89
|
-
Marshal.load(Marshal.dump(hash))
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
end
|