rubocop-on-rbs 1.1.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c58e575d4d662fa8cf0539226bc2c9f2bcd9358cfd751c3e776ce6f66ebcb86
4
- data.tar.gz: 7e7411ebc61e2dfc2751fb3cb3e827580ecc5c7715c0eb5accd62532e3aad3eb
3
+ metadata.gz: 501f65e78ff030f4d111a08793afa70a614c28715e9d9fa4caa95e24bbcc48dd
4
+ data.tar.gz: 5600ce340c99239465721d201d75881e3bcd8343787659bbf18faaaf8f51f58f
5
5
  SHA512:
6
- metadata.gz: bba5622fc180ce5d83f368f418d9c2a730f233de4e0c66f4ca8ef07563471d714fbdc614d6149ecb001fbfbedbe4a128df6417dc8a7c1b9f6687b18e5bcf08fc
7
- data.tar.gz: 33ab0de3a1621c4298e98f5e2577c0bcc55becc71cf0d688c59256181edcaac513bf4c04b6c9790dd176878489a4b1bd0de897285e36ed5d1d18ad15dd07289b
6
+ metadata.gz: 9506a4022805eeaabedd6de962bc91812f34176e40251cb902b4abaee2a5b7fc45dd962946032dcf5cedea397f88daec6d46cae9e54ccc8d9c3f35a6b9941b15
7
+ data.tar.gz: 3b0176a6d2aa9fc2a85c21445720b9571e8881d6cd742c9b1b534ca76ff5103bc340e38a417e0bf6aec32259b5818aa24872553bdff3e6e47096eba19291cc9f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.1.0] - 2024-10-01
4
+
5
+ * Add RBS/Layout/EmptyLinesAroundAccessModifier by @ksss in https://github.com/ksss/rubocop-on-rbs/pull/39
6
+ * Fix error when same line with `RBS/Layout/EndAlignment` by @ksss in https://github.com/ksss/rubocop-on-rbs/pull/40
7
+
3
8
  ## [1.0.0] - 2024-09-17
4
9
 
5
10
  * Add RBS/Layout/EmptyLines by @ksss in https://github.com/ksss/rubocop-on-rbs/pull/35
data/config/default.yml CHANGED
@@ -118,6 +118,16 @@ RBS/Lint/Syntax:
118
118
  Description: 'Check RBS syntax'
119
119
  Enabled: true
120
120
 
121
+ RBS/Lint/TopLevelInterface:
122
+ Description: 'Check top level interface'
123
+ Enabled: pending
124
+ VersionAdded: '1.2.0'
125
+
126
+ RBS/Lint/TopLevelTypeAlias:
127
+ Description: 'Check top level type alias'
128
+ Enabled: pending
129
+ VersionAdded: '1.2.0'
130
+
121
131
  RBS/Lint/UselessAccessModifier:
122
132
  AutoCorrect: contextual
123
133
  Description: 'Check useless access modifier'
@@ -12,6 +12,7 @@ module RuboCop
12
12
  def check(decl)
13
13
  first_line = decl.location.start_line
14
14
  last_line = decl.location.end_line
15
+ return if last_line == first_line
15
16
 
16
17
  check_beginning(first_line)
17
18
  check_ending(last_line)
@@ -29,7 +30,6 @@ module RuboCop
29
30
  return unless line_no.positive?
30
31
  return unless processed_source.lines[line_no]
31
32
  return unless processed_source.lines[line_no].empty?
32
- return unless processed_source.lines[line_no + 1]
33
33
 
34
34
  range = source_range(processed_source.buffer, line_no + 1, 0)
35
35
  message = message(MSG_EXTRA, desc)
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module RBS
6
+ module Lint
7
+ # Top-level namespaces are likely to conflict and should be avoided.
8
+ #
9
+ # @example
10
+ # # bad
11
+ # interface _Option
12
+ # def option: () -> untyped
13
+ # end
14
+ #
15
+ # # good
16
+ # class Foo
17
+ # interface _Option
18
+ # def option: () -> untyped
19
+ # end
20
+ # end
21
+ #
22
+ class TopLevelInterface < RuboCop::RBS::CopBase
23
+ MSG = 'Top level interface detected.'
24
+
25
+ def on_rbs_new_investigation
26
+ @last_end = nil
27
+ end
28
+
29
+ def on_rbs_class(decl)
30
+ return unless @last_end_pos.nil? || (@last_end_pos < decl.location.end_pos)
31
+
32
+ @last_end_pos = decl.location.end_pos
33
+ end
34
+ alias on_rbs_module on_rbs_class
35
+
36
+ def on_rbs_interface(decl)
37
+ return unless @last_end_pos.nil? || (@last_end_pos < decl.location.start_pos)
38
+
39
+ range = location_to_range(decl.location)
40
+ add_offense(range)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module RBS
6
+ module Lint
7
+ # Top-level namespaces are likely to conflict and should be avoided.
8
+ #
9
+ # @example
10
+ # # bad
11
+ # type foo = String
12
+ #
13
+ # # good
14
+ # class Foo
15
+ # type bar = Integer
16
+ # end
17
+ #
18
+ class TopLevelTypeAlias < RuboCop::RBS::CopBase
19
+ MSG = 'Top level type alias detected.'
20
+
21
+ def on_rbs_new_investigation
22
+ @last_end = nil
23
+ end
24
+
25
+ def on_rbs_class(decl)
26
+ return unless @last_end_pos.nil? || (@last_end_pos < decl.location.end_pos)
27
+
28
+ @last_end_pos = decl.location.end_pos
29
+ end
30
+ alias on_rbs_module on_rbs_class
31
+ alias on_rbs_interface on_rbs_class
32
+
33
+ def on_rbs_type_alias(decl)
34
+ return unless @last_end_pos.nil? || (@last_end_pos < decl.location.start_pos)
35
+
36
+ range = location_to_range(decl.location)
37
+ add_offense(range)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -25,6 +25,8 @@ require_relative 'rbs/lint/ambiguous_operator_precedence'
25
25
  require_relative 'rbs/lint/duplicate_overload'
26
26
  require_relative 'rbs/lint/literal_intersection'
27
27
  require_relative 'rbs/lint/syntax'
28
+ require_relative 'rbs/lint/top_level_interface'
29
+ require_relative 'rbs/lint/top_level_type_alias'
28
30
  require_relative 'rbs/lint/useless_access_modifier'
29
31
  require_relative 'rbs/lint/useless_overload_type_params'
30
32
  require_relative 'rbs/lint/will_syntax_error'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RuboCop
4
4
  module RBS
5
- VERSION = '1.1.0'
5
+ VERSION = '1.2.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-on-rbs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ksss
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-01 00:00:00.000000000 Z
11
+ date: 2024-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbs
@@ -87,6 +87,8 @@ files:
87
87
  - lib/rubocop/cop/rbs/lint/duplicate_overload.rb
88
88
  - lib/rubocop/cop/rbs/lint/literal_intersection.rb
89
89
  - lib/rubocop/cop/rbs/lint/syntax.rb
90
+ - lib/rubocop/cop/rbs/lint/top_level_interface.rb
91
+ - lib/rubocop/cop/rbs/lint/top_level_type_alias.rb
90
92
  - lib/rubocop/cop/rbs/lint/useless_access_modifier.rb
91
93
  - lib/rubocop/cop/rbs/lint/useless_overload_type_params.rb
92
94
  - lib/rubocop/cop/rbs/lint/will_syntax_error.rb
@@ -128,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
130
  - !ruby/object:Gem::Version
129
131
  version: '0'
130
132
  requirements: []
131
- rubygems_version: 3.5.11
133
+ rubygems_version: 3.5.16
132
134
  signing_key:
133
135
  specification_version: 4
134
136
  summary: RuboCop extension for RBS file.