rubocop-yard 0.8.2 → 0.9.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +9 -0
- data/config/default.yml +4 -0
- data/lib/rubocop/cop/yard/collection_style.rb +0 -4
- data/lib/rubocop/cop/yard/collection_type.rb +0 -4
- data/lib/rubocop/cop/yard/helper.rb +6 -0
- data/lib/rubocop/cop/yard/tag_type_position.rb +43 -0
- data/lib/rubocop/cop/yard/tag_type_syntax.rb +0 -4
- data/lib/rubocop/cop/yard_cops.rb +1 -0
- data/lib/rubocop/yard/version.rb +1 -1
- data/sig/rubocop/yard.rbs +9 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06747e91e4d94f896cb88e9fb16826b8863afb224451a97a55aedbe0e0c36517
|
4
|
+
data.tar.gz: 8f8eb7d93d78b2f23b356850e346e82f1cdf187b40fc2e17e584751a5929774a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a299956fd71c933d0d4aa59d68c273cd49e481b61be404f1a071b6051d8c874e18f7de1a27b1b3d59b72c6e3ee098ec554d1bb5c06e94971cc4bb04e4890555
|
7
|
+
data.tar.gz: e940c21c3172cc9ba385f16d227418006406af7c44f34a7c1da32ee53dabfa3062d7e83b2a2351671a7a68d9c4457f4672df574e5d71a1e68fcf406fa5da98e2
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -15,6 +15,15 @@ Check tag type syntax error.
|
|
15
15
|
^^^^^^^^^^^^^ (SyntaxError) invalid character at |
|
16
16
|
```
|
17
17
|
|
18
|
+
### `YARD/TagTypePosition`
|
19
|
+
|
20
|
+
Notice tag type position.
|
21
|
+
|
22
|
+
```
|
23
|
+
# @option [Integer] opts foo
|
24
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This docs found `[Integer]`, but parser of YARD can't found types. Please check syntax of YARD.
|
25
|
+
```
|
26
|
+
|
18
27
|
### `YARD/CollectionStyle`
|
19
28
|
|
20
29
|
`EnforcedStyle long (default)`
|
data/config/default.yml
CHANGED
@@ -82,10 +82,6 @@ module RuboCop
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
-
def inline_comment?(comment)
|
86
|
-
!comment_line?(comment.source_range.source_line)
|
87
|
-
end
|
88
|
-
|
89
85
|
def include_yard_tag?(comment)
|
90
86
|
comment.source.match?(/@(?:param|return|option|raise|yieldparam|yieldreturn)\s+.*\[.*\]/)
|
91
87
|
end
|
@@ -112,10 +112,6 @@ module RuboCop
|
|
112
112
|
corrector.replace(comment, comment.source.sub(/\[(.*)\]/) { "[#{styled_string(types_explainer)}]" })
|
113
113
|
end
|
114
114
|
|
115
|
-
def inline_comment?(comment)
|
116
|
-
!comment_line?(comment.source_range.source_line)
|
117
|
-
end
|
118
|
-
|
119
115
|
def include_yard_tag?(comment)
|
120
116
|
comment.source.match?(/@(?:param|return|option|raise|yieldparam|yieldreturn)\s+.*\[.*\]/)
|
121
117
|
end
|
@@ -8,6 +8,8 @@ module RuboCop
|
|
8
8
|
case tag
|
9
9
|
when ::YARD::Tags::OptionTag
|
10
10
|
tag.pair.types
|
11
|
+
when ::YARD::Tags::OverloadTag
|
12
|
+
tag.types
|
11
13
|
else
|
12
14
|
tag.types
|
13
15
|
end
|
@@ -69,6 +71,10 @@ module RuboCop
|
|
69
71
|
raise "#{types_explainer.class} is not supported"
|
70
72
|
end
|
71
73
|
end
|
74
|
+
|
75
|
+
def inline_comment?(comment)
|
76
|
+
!comment_line?(comment.source_range.source_line)
|
77
|
+
end
|
72
78
|
end
|
73
79
|
end
|
74
80
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module YARD
|
6
|
+
class TagTypePosition < Base
|
7
|
+
include YARD::Helper
|
8
|
+
include RangeHelp
|
9
|
+
|
10
|
+
def on_new_investigation
|
11
|
+
processed_source.comments.each do |comment|
|
12
|
+
next if inline_comment?(comment)
|
13
|
+
next unless include_yard_tag?(comment)
|
14
|
+
next unless include_yard_tag_type?(comment)
|
15
|
+
|
16
|
+
check(comment)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def check(comment)
|
23
|
+
docstring = comment.text.gsub(/\A#\s*/, '')
|
24
|
+
::YARD::DocstringParser.new.parse(docstring).tags.each do |tag|
|
25
|
+
types = extract_tag_types(tag)
|
26
|
+
if types.nil?
|
27
|
+
match = comment.source.match(/(?<type>\[.+\])/)
|
28
|
+
add_offense(comment, message: "This docs found `#{match[:type]}`, but parser of YARD can't found types. Please check syntax of YARD.")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def include_yard_tag?(comment)
|
34
|
+
comment.source.match?(/@(?:param|return|option|raise|yieldparam|yieldreturn)\s+.*\[.*\]/)
|
35
|
+
end
|
36
|
+
|
37
|
+
def include_yard_tag_type?(comment)
|
38
|
+
comment.source.match?(/\[.+\]/)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -43,10 +43,6 @@ module RuboCop
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
def inline_comment?(comment)
|
47
|
-
!comment_line?(comment.source_range.source_line)
|
48
|
-
end
|
49
|
-
|
50
46
|
def include_yard_tag?(comment)
|
51
47
|
comment.source.match?(/@(?:param|return|option|raise|yieldparam|yieldreturn)\s+.*\[.*\]/)
|
52
48
|
end
|
data/lib/rubocop/yard/version.rb
CHANGED
data/sig/rubocop/yard.rbs
CHANGED
@@ -16,6 +16,15 @@ module RuboCop
|
|
16
16
|
|
17
17
|
module Helper
|
18
18
|
def extract_tag_types: (tag tag) -> Array[String]?
|
19
|
+
def inline_comment?: (::Parser::Source::Comment comment) -> bool
|
20
|
+
end
|
21
|
+
|
22
|
+
class TagTypePosition < ::RuboCop::Cop::Base
|
23
|
+
include YARD::Helper
|
24
|
+
|
25
|
+
def check: (::Parser::Source::Comment comment) -> void
|
26
|
+
def include_yard_tag?: (::Parser::Source::Comment comment) -> bool
|
27
|
+
def include_yard_tag_type?: (::Parser::Source::Comment comment) -> bool
|
19
28
|
end
|
20
29
|
|
21
30
|
class TagTypeSyntax < ::RuboCop::Cop::Base
|
@@ -25,7 +34,6 @@ module RuboCop
|
|
25
34
|
|
26
35
|
def check: (::Parser::Source::Comment comment) -> void
|
27
36
|
def check_syntax_error: (::Parser::Source::Comment comment) { () -> void } -> void
|
28
|
-
def inline_comment?: (::Parser::Source::Comment comment) -> bool
|
29
37
|
def include_yard_tag?: (::Parser::Source::Comment comment) -> bool
|
30
38
|
def tag_range_for_comment: (::Parser::Source::Comment comment) -> untyped
|
31
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-yard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- lib/rubocop/cop/yard/meaningless_tag.rb
|
58
58
|
- lib/rubocop/cop/yard/mismatch_name.rb
|
59
59
|
- lib/rubocop/cop/yard/patch.rb
|
60
|
+
- lib/rubocop/cop/yard/tag_type_position.rb
|
60
61
|
- lib/rubocop/cop/yard/tag_type_syntax.rb
|
61
62
|
- lib/rubocop/cop/yard_cops.rb
|
62
63
|
- lib/rubocop/yard.rb
|