rubocop-rbs_inline 1.2.0 → 1.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8008a16d537a1c97bc627ada003d8b6cb5cf106816d0bdcd7ecb7c49255e941
4
- data.tar.gz: 2597b7e5e77c085c887ec295de883451661752847d4e24a2d618625c5abaf341
3
+ metadata.gz: df9439ba1e35119fa462bf18e5fa2a95932072807697d9d9a0e6f68e85331a06
4
+ data.tar.gz: c78bec5cc75c31720322a082aa87ab085077c01b010ab1c79e7033b236f54308
5
5
  SHA512:
6
- metadata.gz: 23b3de5f3348d0a4fd045f4258e7f278832d581cca1404b0ab3196b2a608e3fdb1c3fde594f4d7619b9284846e8f608ba2248c0ac50b7cbd893655263bfb4e1b
7
- data.tar.gz: 191da5351ce4d508b7ddc00c00b09b8944005aaf73aa1072bd03d85de6a3d411b9c84eb838161f0e88354a7c796da4027ee218c22b7ed887606de6d2874c6150
6
+ metadata.gz: 4bd4daa7ae11ace6793d58d78b06cb65b21fb5f3c8fb956b33b021a4b5aacdf397cff2dbf50d2ce9c888e0492764aa8280c24712c554013bb611a646a02d12bf
7
+ data.tar.gz: 020fa5e9e7dff73ba78d14e12b0a9caf4490893efaa422facddbb58097e44dfcd1e2c96e50cdef3beafdc71e9e97229fc4c30e116dc3eacf476fe545a1943b40
@@ -1,5 +1,12 @@
1
1
  {
2
2
  "cSpell.words": [
3
+ "blockarg",
4
+ "Ivar",
5
+ "kwarg",
6
+ "kwoptarg",
7
+ "kwrestarg",
8
+ "optarg",
9
+ "restarg",
3
10
  "strscan"
4
11
  ],
5
12
  "rbs-helper.rbs-inline-on-save": true,
data/Steepfile CHANGED
@@ -8,4 +8,5 @@ target :lib do
8
8
  check 'lib'
9
9
 
10
10
  configure_code_diagnostics(D::Ruby.strict)
11
+ implicitly_returns_nil!
11
12
  end
@@ -30,7 +30,8 @@ module RuboCop
30
30
  RBS_INLINE_KEYWORDS = %w[inherits override use module-self generic skip module class].freeze #: Array[String]
31
31
 
32
32
  def on_new_investigation #: void
33
- processed_source.comments.each do |comment|
33
+ comments = consume_embedded_rbs(processed_source.comments)
34
+ comments.each do |comment|
34
35
  add_offense(comment) if comment.text =~ /\A#\s+#{SIGNATURE_PATTERN}/
35
36
  add_offense(comment) if comment.text =~ /\A#\s+:\s*#{SIGNATURE_PATTERN}/
36
37
 
@@ -40,6 +41,33 @@ module RuboCop
40
41
  end
41
42
  end
42
43
  end
44
+
45
+ private
46
+
47
+ def consume_embedded_rbs(comments) # rubocop:disable Metrics/MethodLength
48
+ in_embedded = false
49
+ indent = 1
50
+ line = 0
51
+ comments.select do |comment|
52
+ case comment.text
53
+ when /\A#(\s+)@rbs!(\s+|\Z)/
54
+ in_embedded = true
55
+ indent = Regexp.last_match(1).to_s.size
56
+ line = comment.loc.line
57
+ false
58
+ when /\A#(\s{#{indent + 1},}.*|\s*)\Z/
59
+ if in_embedded && comment.loc.line == line + 1
60
+ line += 1
61
+ false
62
+ else
63
+ true
64
+ end
65
+ else
66
+ in_embedded = false
67
+ true
68
+ end
69
+ end
70
+ end
43
71
  end
44
72
  end
45
73
  end
@@ -141,7 +141,7 @@ module RuboCop
141
141
  # RBS::Inline::AST::Annotations::VarType
142
142
  def add_offense_for(annotation) #: void # rubocop:disable Metrics/AbcSize
143
143
  name = annotation_name(annotation)
144
- loc = annotation.source.comments.first.location
144
+ loc = annotation.source.comments.first&.location or raise
145
145
  source = processed_source.buffer.source.dup.force_encoding('ASCII')
146
146
  text = source[loc.start_offset...loc.end_offset] or raise
147
147
  comment = text.force_encoding(processed_source.buffer.source.encoding)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module RbsInline
5
- VERSION = '1.2.0'
5
+ VERSION = '1.2.1'
6
6
  end
7
7
  end
@@ -6,7 +6,7 @@ gems:
6
6
  source:
7
7
  type: git
8
8
  name: ruby/gem_rbs_collection
9
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
9
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
10
10
  remote: https://github.com/ruby/gem_rbs_collection.git
11
11
  repo_dir: gems
12
12
  - name: dbm
@@ -18,7 +18,7 @@ gems:
18
18
  source:
19
19
  type: git
20
20
  name: ruby/gem_rbs_collection
21
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
21
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
22
22
  remote: https://github.com/ruby/gem_rbs_collection.git
23
23
  repo_dir: gems
24
24
  - name: fileutils
@@ -46,7 +46,7 @@ gems:
46
46
  source:
47
47
  type: git
48
48
  name: ruby/gem_rbs_collection
49
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
49
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
50
50
  remote: https://github.com/ruby/gem_rbs_collection.git
51
51
  repo_dir: gems
52
52
  - name: parser
@@ -54,7 +54,7 @@ gems:
54
54
  source:
55
55
  type: git
56
56
  name: ruby/gem_rbs_collection
57
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
57
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
58
58
  remote: https://github.com/ruby/gem_rbs_collection.git
59
59
  repo_dir: gems
60
60
  - name: pathname
@@ -62,7 +62,7 @@ gems:
62
62
  source:
63
63
  type: stdlib
64
64
  - name: prism
65
- version: 1.0.0
65
+ version: 1.2.0
66
66
  source:
67
67
  type: rubygems
68
68
  - name: pstore
@@ -78,7 +78,7 @@ gems:
78
78
  source:
79
79
  type: git
80
80
  name: ruby/gem_rbs_collection
81
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
81
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
82
82
  remote: https://github.com/ruby/gem_rbs_collection.git
83
83
  repo_dir: gems
84
84
  - name: rake
@@ -86,15 +86,15 @@ gems:
86
86
  source:
87
87
  type: git
88
88
  name: ruby/gem_rbs_collection
89
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
89
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
90
90
  remote: https://github.com/ruby/gem_rbs_collection.git
91
91
  repo_dir: gems
92
92
  - name: rbs
93
- version: 3.6.1
93
+ version: 3.8.1
94
94
  source:
95
95
  type: rubygems
96
96
  - name: rbs-inline
97
- version: 0.9.0
97
+ version: 0.10.0
98
98
  source:
99
99
  type: rubygems
100
100
  - name: rdoc
@@ -106,7 +106,7 @@ gems:
106
106
  source:
107
107
  type: git
108
108
  name: ruby/gem_rbs_collection
109
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
109
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
110
110
  remote: https://github.com/ruby/gem_rbs_collection.git
111
111
  repo_dir: gems
112
112
  - name: rubocop
@@ -114,7 +114,7 @@ gems:
114
114
  source:
115
115
  type: git
116
116
  name: ruby/gem_rbs_collection
117
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
117
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
118
118
  remote: https://github.com/ruby/gem_rbs_collection.git
119
119
  repo_dir: gems
120
120
  - name: rubocop-ast
@@ -122,7 +122,7 @@ gems:
122
122
  source:
123
123
  type: git
124
124
  name: ruby/gem_rbs_collection
125
- revision: 218cf130d31f63e110e350efc3fa265311b0f238
125
+ revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
126
126
  remote: https://github.com/ruby/gem_rbs_collection.git
127
127
  repo_dir: gems
128
128
  - name: strscan
@@ -27,6 +27,10 @@ module RuboCop
27
27
  RBS_INLINE_KEYWORDS: Array[String]
28
28
 
29
29
  def on_new_investigation: () -> void
30
+
31
+ private
32
+
33
+ def consume_embedded_rbs: (untyped comments) -> untyped
30
34
  end
31
35
  end
32
36
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-rbs_inline
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takeshi KOMIYA
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-10-21 00:00:00.000000000 Z
10
+ date: 2025-01-13 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rbs-inline
@@ -87,7 +86,6 @@ metadata:
87
86
  source_code_uri: https://github.com/tk0miya/rubocop-rbs_inline
88
87
  changelog_uri: https://github.com/tk0miya/rubocop-rbs_inline
89
88
  rubygems_mfa_required: 'true'
90
- post_install_message:
91
89
  rdoc_options: []
92
90
  require_paths:
93
91
  - lib
@@ -102,8 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
100
  - !ruby/object:Gem::Version
103
101
  version: '0'
104
102
  requirements: []
105
- rubygems_version: 3.5.16
106
- signing_key:
103
+ rubygems_version: 3.6.2
107
104
  specification_version: 4
108
105
  summary: rubocop extension to check RBS annotation comments
109
106
  test_files: []