rucoa 0.5.0 → 0.5.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: '05869f9180ae7dbf00c359ad9d0b89fe3b126c8f9a6171b8b8155c7ad683f95f'
4
- data.tar.gz: 429c84f3e305a90bcc1b7c39fbb14af894a95e24117c91d6914681ae8c53624c
3
+ metadata.gz: 4ffd244eb4ed0935120e2d33a03798897a4880e06ff999c1779a920e4926215c
4
+ data.tar.gz: fe7296dba2ff6d185a729e6649cd9630a5644961837d28306f3a5a193643d38e
5
5
  SHA512:
6
- metadata.gz: db443ae921e01609343392377664bf625bb4c2a057dc9d41ec1d611a7723807e6499d6669f097fb7d903b706110b6a34d83c09539612aba9d7b0e2fbd2302cf0
7
- data.tar.gz: a6dabfb0fb1ac3228cb7217c9f9360fe6f32de32b65642492f00dbdc628d4578ed1c3a4f799c94c42ca8fe2553b3426c2105582569f9acd3e9971d68cc6722ec
6
+ metadata.gz: 9f9965f568980d2f069a5670dcf5e008986399b8826a331410bdd0f31cacf10a01068bc8e37109241ccd2c1e79bf9f0bc639600b7608260fffd02b07251e310b
7
+ data.tar.gz: 1143b279fbbf845f07f0654b37eadf20226d96b1dc930ceea5fd9fc3daf90b6bd786d3a55c08b9601019d85b0e79284de1268de5ed628136cb0097be3e6af846
data/Gemfile.lock CHANGED
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rucoa (0.5.0)
4
+ rucoa (0.5.1)
5
5
  parser
6
6
  rbs
7
7
  rubocop
8
+ yard
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
@@ -6,32 +6,32 @@ module Rucoa
6
6
  @settings = {}
7
7
  end
8
8
 
9
- # @return [Boolean]
9
+ # @return [void]
10
10
  def disable_code_action
11
11
  disable('codeAction')
12
12
  end
13
13
 
14
- # @return [Boolean]
14
+ # @return [void]
15
15
  def disable_diagnostics
16
16
  disable('diagnostics')
17
17
  end
18
18
 
19
- # @return [Boolean]
19
+ # @return [void]
20
20
  def disable_document_symbol
21
21
  disable('documentSymbol')
22
22
  end
23
23
 
24
- # @return [Boolean]
24
+ # @return [void]
25
25
  def disable_formatting
26
26
  disable('formatting')
27
27
  end
28
28
 
29
- # @return [Boolean]
29
+ # @return [void]
30
30
  def disable_selection_range
31
31
  disable('selectionRange')
32
32
  end
33
33
 
34
- # @return [Boolean]
34
+ # @return [void]
35
35
  def disable_signature_help
36
36
  disable('signatureHelp')
37
37
  end
@@ -131,10 +131,37 @@ module Rucoa
131
131
  end
132
132
 
133
133
  # @return [Array<String>]
134
+ # @return [String]
135
+ # @example returns return type annotated by YARD @return tags
136
+ # definitions = Rucoa::YardStringDocumentLoader.call(
137
+ # content: <<~RUBY,
138
+ # # @return [String]
139
+ # def foo
140
+ # 'foo'
141
+ # end
142
+ # RUBY
143
+ # path: '/path/to/foo.rb'
144
+ # )
145
+ # expect(definitions.first.return_types).to eq(
146
+ # %w[
147
+ # String
148
+ # ]
149
+ # )
150
+ # @example ignores empty @return tags
151
+ # definitions = Rucoa::YardStringDocumentLoader.call(
152
+ # content: <<~RUBY,
153
+ # # @return []
154
+ # def foo
155
+ # 'foo'
156
+ # end
157
+ # RUBY
158
+ # path: '/path/to/foo.rb'
159
+ # )
160
+ # expect(definitions.first.return_types).to eq([])
134
161
  def return_types
135
162
  return %w[Object] if return_tags.empty?
136
163
 
137
- return_tags.flat_map(&:types).map do |type|
164
+ return_tags.flat_map(&:types).compact.map do |type|
138
165
  YardType.new(type).to_rucoa_type
139
166
  end
140
167
  end
@@ -173,7 +200,7 @@ module Rucoa
173
200
  # 'Hash{Symbol => Object}'
174
201
  # )
175
202
  # expect(yard_type.to_rucoa_type).to eq('Hash')
176
- # @exampel scrubs "Array<Array<Integer>>" to "Array"
203
+ # @example scrubs "Array<Array<Integer>>" to "Array"
177
204
  # yard_type = Rucoa::DefinitionBuilders::YardMethodDefinitionBuilder::YardType.new(
178
205
  # 'Array<Array<Integer>>'
179
206
  # )
@@ -40,7 +40,7 @@ module Rucoa
40
40
  ]
41
41
 
42
42
  def call
43
- return unless respondable?
43
+ return unless responsible?
44
44
 
45
45
  respond(document_symbols)
46
46
  end
@@ -206,8 +206,9 @@ module Rucoa
206
206
  end
207
207
 
208
208
  # @return [Boolean]
209
- def respondable?
210
- configuration.enables_document_symbol? && source
209
+ def responsible?
210
+ configuration.enables_document_symbol? &&
211
+ !source.nil?
211
212
  end
212
213
 
213
214
  # @return [Rucoa::Source]
@@ -4,7 +4,7 @@ module Rucoa
4
4
  module Handlers
5
5
  class TextDocumentSelectionRangeHandler < Base
6
6
  def call
7
- return unless respondable?
7
+ return unless responsible?
8
8
 
9
9
  respond(
10
10
  positions.filter_map do |position|
@@ -19,9 +19,9 @@ module Rucoa
19
19
  private
20
20
 
21
21
  # @return [Boolean]
22
- def respondable?
22
+ def responsible?
23
23
  configuration.enables_selection_range? &&
24
- source
24
+ !source.nil?
25
25
  end
26
26
 
27
27
  # @return [Rucoa::Source]
@@ -11,7 +11,7 @@ module Rucoa
11
11
 
12
12
  # @return [Hash]
13
13
  def signature_help
14
- return unless respondable?
14
+ return unless responsible?
15
15
 
16
16
  {
17
17
  signatures: signature_informations
@@ -19,7 +19,7 @@ module Rucoa
19
19
  end
20
20
 
21
21
  # @return [Boolean]
22
- def respondable?
22
+ def responsible?
23
23
  configuration.enables_signature_help? &&
24
24
  node.is_a?(Nodes::SendNode)
25
25
  end
@@ -11,16 +11,16 @@ module Rucoa
11
11
  @node = node
12
12
  end
13
13
 
14
- # @return [Array<String>, nil]
14
+ # @return [Array<String>]
15
15
  def method_definitions
16
- method_full_qualified_name&.flat_map do |full_qualified_name|
16
+ method_full_qualified_names.flat_map do |full_qualified_name|
17
17
  @definition_store.select_by_full_qualified_name(full_qualified_name)
18
18
  end
19
19
  end
20
20
 
21
- # @return [Array<String>, nil]
21
+ # @return [Array<String>]
22
22
  def method_receiver_types
23
- return unless @node.is_a?(Nodes::SendNode)
23
+ return [] unless @node.is_a?(Nodes::SendNode)
24
24
 
25
25
  if @node.receiver
26
26
  self.class.new(
@@ -32,7 +32,7 @@ module Rucoa
32
32
  end
33
33
  end
34
34
 
35
- # @return [Array<String>, nil]
35
+ # @return [Array<String>]
36
36
  def return_types
37
37
  case @node.type
38
38
  when :const
@@ -67,14 +67,16 @@ module Rucoa
67
67
  %w[Regexp]
68
68
  when true
69
69
  %w[TrueClass]
70
+ else
71
+ []
70
72
  end
71
73
  end
72
74
 
73
75
  private
74
76
 
75
- # @return [Array<String>, nil]
76
- def method_full_qualified_name
77
- method_receiver_types&.map do |type|
77
+ # @return [Array<String>]
78
+ def method_full_qualified_names
79
+ method_receiver_types.map do |type|
78
80
  [
79
81
  type,
80
82
  @node.name
@@ -101,7 +103,7 @@ module Rucoa
101
103
 
102
104
  # @return [Array<String>]
103
105
  def return_types_for_send
104
- method_full_qualified_name.flat_map do |full_qualified_name|
106
+ method_full_qualified_names.flat_map do |full_qualified_name|
105
107
  @definition_store.select_by_full_qualified_name(full_qualified_name).flat_map(&:return_types)
106
108
  end.uniq
107
109
  end
@@ -47,8 +47,8 @@ module Rucoa
47
47
  # @return [Hash]
48
48
  def to_vscode_position
49
49
  {
50
- character: @column,
51
- line: @line - 1
50
+ 'character' => @column,
51
+ 'line' => @line - 1
52
52
  }
53
53
  end
54
54
  end
data/lib/rucoa/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rucoa
4
- VERSION = '0.5.0'
4
+ VERSION = '0.5.1'
5
5
  end
data/rucoa.gemspec CHANGED
@@ -30,4 +30,5 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency 'parser'
31
31
  spec.add_dependency 'rbs'
32
32
  spec.add_dependency 'rubocop'
33
+ spec.add_dependency 'yard'
33
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rucoa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-10 00:00:00.000000000 Z
11
+ date: 2022-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description:
56
70
  email:
57
71
  - r7kamura@gmail.com