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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/body_objects_parser.rb +34 -6
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/call_objects_parser.rb +2 -2
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/body_parsers/const_objects_parser.rb +2 -2
- data/lib/ruby_lsp/ruby_lsp_ree/parsing/parsed_method_node.rb +4 -0
- data/lib/ruby_lsp_ree/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3af40015524718e3433f1a2b95917baa2b54c15c864e86a7da3bf6118e7071e9
|
4
|
+
data.tar.gz: e5147f8b8e9bdd46b581ab242bce841f2aea4399d2316049969971e661fe8dd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6203eec4bde801799acc516f4a2b1f3f70d785e67b2002075244f17f33e52bd65a27bbd2193da1e590cc2dd7cfc885d2dd39d1e55a4f5b5eafe6e5694bf23b7a
|
7
|
+
data.tar.gz: bbad6e6ed3c0ce9a07f7e6717f5bdd9271b422861e7066a092030d66ca44e331223594d5aed4746274abf20b1c22c77dca03b0a38b9cd45dddf0d58d48545dd8
|
data/Gemfile.lock
CHANGED
@@ -32,12 +32,14 @@ class RubyLsp::Ree::BodyObjectsParser
|
|
32
32
|
@target_type = target_type
|
33
33
|
end
|
34
34
|
|
35
|
-
def parse(
|
35
|
+
def parse(nodes)
|
36
36
|
target_objects = []
|
37
37
|
|
38
|
-
return target_objects unless
|
39
|
-
|
40
|
-
|
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
|
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
|
-
|
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.
|
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.
|
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])
|
data/lib/ruby_lsp_ree/version.rb
CHANGED