rucoa 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
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