ruby-lsp-ree 0.1.22 → 0.1.23

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: be41c6719d100fed8169e29ecfb808cf73611625cd14982727ee7763ab55d809
4
- data.tar.gz: 2dac21136c9605aadeb19544f3efb6d9cf3044b40cfeaca2279203ba846f101d
3
+ metadata.gz: 3af40015524718e3433f1a2b95917baa2b54c15c864e86a7da3bf6118e7071e9
4
+ data.tar.gz: e5147f8b8e9bdd46b581ab242bce841f2aea4399d2316049969971e661fe8dd9
5
5
  SHA512:
6
- metadata.gz: 03f9fd7161d065c127b7f479b547b92edad8923b9a24eaa12b687382ad50b1946fa37029281bdda7aa9b9159ddc19f281f304479ec9c35e8516701eaf13b4e6b
7
- data.tar.gz: d2324472049d592331c2ad8a32e156fa374f85f644ab67ce366cecdd486260804c0830aa6372c040669ca291584cd39368860b8ebc29f1c4013bb927a20e5a12
6
+ metadata.gz: 6203eec4bde801799acc516f4a2b1f3f70d785e67b2002075244f17f33e52bd65a27bbd2193da1e590cc2dd7cfc885d2dd39d1e55a4f5b5eafe6e5694bf23b7a
7
+ data.tar.gz: bbad6e6ed3c0ce9a07f7e6717f5bdd9271b422861e7066a092030d66ca44e331223594d5aed4746274abf20b1c22c77dca03b0a38b9cd45dddf0d58d48545dd8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-lsp-ree (0.1.22)
4
+ ruby-lsp-ree (0.1.23)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -32,12 +32,14 @@ class RubyLsp::Ree::BodyObjectsParser
32
32
  @target_type = target_type
33
33
  end
34
34
 
35
- def parse(node_body)
35
+ def parse(nodes)
36
36
  target_objects = []
37
37
 
38
- return target_objects unless node_body
39
-
40
- node_body.each do |node|
38
+ return target_objects unless nodes
39
+
40
+ nodes.each do |node|
41
+ next if node.is_a?(Prism::DefNode) # for now don't step into method, parse each method separately
42
+
41
43
  if node.is_a?(Prism::ConstantReadNode) && @target_type == :const_object
42
44
  target_objects << ConstObject.new(name: node.name)
43
45
  end
@@ -46,6 +48,8 @@ class RubyLsp::Ree::BodyObjectsParser
46
48
  if node.receiver
47
49
  target_objects += parse([node.receiver])
48
50
  else
51
+ next if node.name == :link # don't parse objects inside links
52
+
49
53
  if @target_type == :call_object
50
54
  target_objects << CallObject.new(name: node.name, type: :method_call)
51
55
  end
@@ -62,7 +66,7 @@ class RubyLsp::Ree::BodyObjectsParser
62
66
  end
63
67
 
64
68
  if node.respond_to?(:statements)
65
- target_objects += parse(node.statements.body)
69
+ target_objects += parse([node.statements])
66
70
  end
67
71
 
68
72
  if node.respond_to?(:subsequent)
@@ -88,10 +92,34 @@ class RubyLsp::Ree::BodyObjectsParser
88
92
  if node.respond_to?(:parts) && node.parts
89
93
  target_objects += parse(node.parts)
90
94
  end
95
+
96
+ if node.respond_to?(:rescue_clause) && node.rescue_clause
97
+ target_objects += parse([node.rescue_clause])
98
+ end
99
+
100
+ if node.respond_to?(:else_clause) && node.else_clause
101
+ target_objects += parse([node.else_clause])
102
+ end
103
+
104
+ if node.respond_to?(:ensure_clause) && node.ensure_clause
105
+ target_objects += parse([node.ensure_clause])
106
+ end
107
+
108
+ if node.respond_to?(:body) && node.body
109
+ if node.body.is_a?(Array)
110
+ target_objects += parse(node.body)
111
+ else
112
+ target_objects += parse([node.body])
113
+ end
114
+ end
91
115
  end
92
116
 
93
117
  if node.respond_to?(:block) && node.block && node.block.is_a?(Prism::BlockNode)
94
- target_objects += parse(get_method_body(node.block))
118
+ if node.block.body.is_a?(Array)
119
+ target_objects += parse(node.block.body)
120
+ else
121
+ target_objects += parse([node.block.body])
122
+ end
95
123
  end
96
124
  end
97
125
 
@@ -23,10 +23,10 @@ class RubyLsp::Ree::CallObjectsParser
23
23
  end
24
24
 
25
25
  def method_call_objects(method_object)
26
- method_body = method_object.method_body
26
+ method_body = method_object.full_method_body
27
27
  return [] unless method_body
28
28
 
29
- call_objects = @body_parser.parse(method_body)
29
+ call_objects = @body_parser.parse([method_body])
30
30
 
31
31
  call_objects.each{ |call_object| call_object.set_method_name(method_object.name) }
32
32
  call_objects
@@ -23,10 +23,10 @@ class RubyLsp::Ree::ConstObjectsParser
23
23
  end
24
24
 
25
25
  def method_const_objects(method_object)
26
- method_body = method_object.method_body
26
+ method_body = method_object.full_method_body
27
27
  return [] unless method_body
28
28
 
29
- const_objects = @body_parser.parse(method_body)
29
+ const_objects = @body_parser.parse([method_body])
30
30
 
31
31
  if method_object.has_contract?
32
32
  const_objects += @body_parser.parse([method_object.contract_node])
@@ -38,6 +38,10 @@ class RubyLsp::Ree::ParsedMethodNode
38
38
  get_method_body(@method_node)
39
39
  end
40
40
 
41
+ def full_method_body
42
+ @method_node.body
43
+ end
44
+
41
45
  def raised_errors_nested
42
46
  return @raised_errors_nested if @raised_errors_nested
43
47
  raised = raised_errors
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RubyLsp
4
4
  module Ree
5
- VERSION = "0.1.22"
5
+ VERSION = "0.1.23"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp-ree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.22
4
+ version: 0.1.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov