ruby-lsp 0.23.11 → 0.23.12
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/README.md +2 -2
- data/VERSION +1 -1
- data/exe/ruby-lsp-launcher +12 -11
- data/lib/rubocop/cop/ruby_lsp/use_register_with_handler_method.rb +3 -5
- data/lib/ruby_indexer/lib/ruby_indexer/configuration.rb +52 -77
- data/lib/ruby_indexer/lib/ruby_indexer/declaration_listener.rb +61 -144
- data/lib/ruby_indexer/lib/ruby_indexer/enhancement.rb +8 -6
- data/lib/ruby_indexer/lib/ruby_indexer/entry.rb +73 -182
- data/lib/ruby_indexer/lib/ruby_indexer/index.rb +48 -181
- data/lib/ruby_indexer/lib/ruby_indexer/location.rb +4 -27
- data/lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb +12 -14
- data/lib/ruby_indexer/lib/ruby_indexer/rbs_indexer.rb +21 -44
- data/lib/ruby_indexer/lib/ruby_indexer/reference_finder.rb +40 -58
- data/lib/ruby_indexer/lib/ruby_indexer/uri.rb +9 -16
- data/lib/ruby_indexer/lib/ruby_indexer/visibility_scope.rb +5 -9
- data/lib/ruby_indexer/test/configuration_test.rb +32 -2
- data/lib/ruby_indexer/test/method_test.rb +2 -2
- data/lib/ruby_lsp/addon.rb +32 -67
- data/lib/ruby_lsp/base_server.rb +10 -10
- data/lib/ruby_lsp/client_capabilities.rb +4 -6
- data/lib/ruby_lsp/document.rb +21 -32
- data/lib/ruby_lsp/erb_document.rb +17 -27
- data/lib/ruby_lsp/global_state.rb +30 -32
- data/lib/ruby_lsp/internal.rb +2 -0
- data/lib/ruby_lsp/listeners/code_lens.rb +21 -39
- data/lib/ruby_lsp/listeners/completion.rb +34 -53
- data/lib/ruby_lsp/listeners/definition.rb +35 -49
- data/lib/ruby_lsp/listeners/document_highlight.rb +60 -69
- data/lib/ruby_lsp/listeners/document_link.rb +9 -19
- data/lib/ruby_lsp/listeners/document_symbol.rb +34 -48
- data/lib/ruby_lsp/listeners/folding_ranges.rb +31 -38
- data/lib/ruby_lsp/listeners/hover.rb +37 -47
- data/lib/ruby_lsp/listeners/inlay_hints.rb +3 -10
- data/lib/ruby_lsp/listeners/semantic_highlighting.rb +29 -35
- data/lib/ruby_lsp/listeners/signature_help.rb +4 -23
- data/lib/ruby_lsp/listeners/spec_style.rb +199 -0
- data/lib/ruby_lsp/listeners/test_style.rb +136 -30
- data/lib/ruby_lsp/node_context.rb +8 -35
- data/lib/ruby_lsp/rbs_document.rb +7 -5
- data/lib/ruby_lsp/requests/code_action_resolve.rb +10 -10
- data/lib/ruby_lsp/requests/code_actions.rb +5 -14
- data/lib/ruby_lsp/requests/code_lens.rb +4 -13
- data/lib/ruby_lsp/requests/completion.rb +4 -15
- data/lib/ruby_lsp/requests/completion_resolve.rb +4 -4
- data/lib/ruby_lsp/requests/definition.rb +4 -12
- data/lib/ruby_lsp/requests/diagnostics.rb +6 -9
- data/lib/ruby_lsp/requests/discover_tests.rb +15 -3
- data/lib/ruby_lsp/requests/document_highlight.rb +3 -11
- data/lib/ruby_lsp/requests/document_link.rb +4 -13
- data/lib/ruby_lsp/requests/document_symbol.rb +4 -7
- data/lib/ruby_lsp/requests/folding_ranges.rb +4 -7
- data/lib/ruby_lsp/requests/formatting.rb +4 -7
- data/lib/ruby_lsp/requests/go_to_relevant_file.rb +87 -0
- data/lib/ruby_lsp/requests/hover.rb +6 -16
- data/lib/ruby_lsp/requests/inlay_hints.rb +4 -13
- data/lib/ruby_lsp/requests/on_type_formatting.rb +17 -24
- data/lib/ruby_lsp/requests/prepare_rename.rb +3 -8
- data/lib/ruby_lsp/requests/prepare_type_hierarchy.rb +4 -13
- data/lib/ruby_lsp/requests/range_formatting.rb +3 -4
- data/lib/ruby_lsp/requests/references.rb +5 -35
- data/lib/ruby_lsp/requests/rename.rb +9 -35
- data/lib/ruby_lsp/requests/request.rb +5 -17
- data/lib/ruby_lsp/requests/selection_ranges.rb +3 -3
- data/lib/ruby_lsp/requests/semantic_highlighting.rb +6 -23
- data/lib/ruby_lsp/requests/show_syntax_tree.rb +4 -5
- data/lib/ruby_lsp/requests/signature_help.rb +6 -24
- data/lib/ruby_lsp/requests/support/annotation.rb +4 -10
- data/lib/ruby_lsp/requests/support/common.rb +12 -49
- data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +12 -14
- data/lib/ruby_lsp/requests/support/rubocop_formatter.rb +7 -10
- data/lib/ruby_lsp/requests/support/rubocop_runner.rb +9 -15
- data/lib/ruby_lsp/requests/support/selection_range.rb +1 -3
- data/lib/ruby_lsp/requests/support/sorbet.rb +1 -7
- data/lib/ruby_lsp/requests/support/source_uri.rb +5 -16
- data/lib/ruby_lsp/requests/support/syntax_tree_formatter.rb +7 -10
- data/lib/ruby_lsp/requests/support/test_item.rb +14 -13
- data/lib/ruby_lsp/requests/type_hierarchy_supertypes.rb +4 -5
- data/lib/ruby_lsp/requests/workspace_symbol.rb +3 -3
- data/lib/ruby_lsp/response_builders/collection_response_builder.rb +4 -4
- data/lib/ruby_lsp/response_builders/document_symbol.rb +8 -11
- data/lib/ruby_lsp/response_builders/hover.rb +5 -5
- data/lib/ruby_lsp/response_builders/response_builder.rb +1 -1
- data/lib/ruby_lsp/response_builders/semantic_highlighting.rb +18 -40
- data/lib/ruby_lsp/response_builders/signature_help.rb +4 -5
- data/lib/ruby_lsp/response_builders/test_collection.rb +5 -9
- data/lib/ruby_lsp/ruby_document.rb +15 -40
- data/lib/ruby_lsp/ruby_lsp_reporter_plugin.rb +106 -0
- data/lib/ruby_lsp/scope.rb +6 -10
- data/lib/ruby_lsp/server.rb +125 -74
- data/lib/ruby_lsp/setup_bundler.rb +22 -15
- data/lib/ruby_lsp/store.rb +12 -28
- data/lib/ruby_lsp/test_helper.rb +3 -12
- data/lib/ruby_lsp/test_reporter.rb +71 -0
- data/lib/ruby_lsp/test_unit_test_runner.rb +96 -0
- data/lib/ruby_lsp/type_inferrer.rb +9 -13
- data/lib/ruby_lsp/utils.rb +27 -65
- metadata +8 -3
@@ -4,18 +4,11 @@
|
|
4
4
|
module RubyLsp
|
5
5
|
module Listeners
|
6
6
|
class DocumentSymbol
|
7
|
-
extend T::Sig
|
8
7
|
include Requests::Support::Common
|
9
8
|
|
10
9
|
ATTR_ACCESSORS = T.let([:attr_reader, :attr_writer, :attr_accessor].freeze, T::Array[Symbol])
|
11
10
|
|
12
|
-
|
13
|
-
params(
|
14
|
-
response_builder: ResponseBuilders::DocumentSymbol,
|
15
|
-
uri: URI::Generic,
|
16
|
-
dispatcher: Prism::Dispatcher,
|
17
|
-
).void
|
18
|
-
end
|
11
|
+
#: (ResponseBuilders::DocumentSymbol response_builder, URI::Generic uri, Prism::Dispatcher dispatcher) -> void
|
19
12
|
def initialize(response_builder, uri, dispatcher)
|
20
13
|
@response_builder = response_builder
|
21
14
|
@uri = uri
|
@@ -52,7 +45,7 @@ module RubyLsp
|
|
52
45
|
)
|
53
46
|
end
|
54
47
|
|
55
|
-
|
48
|
+
#: (Prism::ClassNode node) -> void
|
56
49
|
def on_class_node_enter(node)
|
57
50
|
@response_builder << create_document_symbol(
|
58
51
|
name: node.constant_path.location.slice,
|
@@ -62,12 +55,12 @@ module RubyLsp
|
|
62
55
|
)
|
63
56
|
end
|
64
57
|
|
65
|
-
|
58
|
+
#: (Prism::ClassNode node) -> void
|
66
59
|
def on_class_node_leave(node)
|
67
60
|
@response_builder.pop
|
68
61
|
end
|
69
62
|
|
70
|
-
|
63
|
+
#: (Prism::SingletonClassNode node) -> void
|
71
64
|
def on_singleton_class_node_enter(node)
|
72
65
|
expression = node.expression
|
73
66
|
|
@@ -79,12 +72,12 @@ module RubyLsp
|
|
79
72
|
)
|
80
73
|
end
|
81
74
|
|
82
|
-
|
75
|
+
#: (Prism::SingletonClassNode node) -> void
|
83
76
|
def on_singleton_class_node_leave(node)
|
84
77
|
@response_builder.pop
|
85
78
|
end
|
86
79
|
|
87
|
-
|
80
|
+
#: (Prism::CallNode node) -> void
|
88
81
|
def on_call_node_enter(node)
|
89
82
|
node_name = node.name
|
90
83
|
if ATTR_ACCESSORS.include?(node_name)
|
@@ -98,7 +91,7 @@ module RubyLsp
|
|
98
91
|
end
|
99
92
|
end
|
100
93
|
|
101
|
-
|
94
|
+
#: (Prism::CallNode node) -> void
|
102
95
|
def on_call_node_leave(node)
|
103
96
|
return unless rake?
|
104
97
|
|
@@ -107,7 +100,7 @@ module RubyLsp
|
|
107
100
|
end
|
108
101
|
end
|
109
102
|
|
110
|
-
|
103
|
+
#: (Prism::ConstantPathWriteNode node) -> void
|
111
104
|
def on_constant_path_write_node_enter(node)
|
112
105
|
create_document_symbol(
|
113
106
|
name: node.target.location.slice,
|
@@ -117,7 +110,7 @@ module RubyLsp
|
|
117
110
|
)
|
118
111
|
end
|
119
112
|
|
120
|
-
|
113
|
+
#: (Prism::ConstantWriteNode node) -> void
|
121
114
|
def on_constant_write_node_enter(node)
|
122
115
|
create_document_symbol(
|
123
116
|
name: node.name.to_s,
|
@@ -127,7 +120,7 @@ module RubyLsp
|
|
127
120
|
)
|
128
121
|
end
|
129
122
|
|
130
|
-
|
123
|
+
#: (Prism::ConstantPathAndWriteNode node) -> void
|
131
124
|
def on_constant_path_and_write_node_enter(node)
|
132
125
|
create_document_symbol(
|
133
126
|
name: node.target.location.slice,
|
@@ -137,7 +130,7 @@ module RubyLsp
|
|
137
130
|
)
|
138
131
|
end
|
139
132
|
|
140
|
-
|
133
|
+
#: (Prism::ConstantPathOrWriteNode node) -> void
|
141
134
|
def on_constant_path_or_write_node_enter(node)
|
142
135
|
create_document_symbol(
|
143
136
|
name: node.target.location.slice,
|
@@ -147,7 +140,7 @@ module RubyLsp
|
|
147
140
|
)
|
148
141
|
end
|
149
142
|
|
150
|
-
|
143
|
+
#: (Prism::ConstantPathOperatorWriteNode node) -> void
|
151
144
|
def on_constant_path_operator_write_node_enter(node)
|
152
145
|
create_document_symbol(
|
153
146
|
name: node.target.location.slice,
|
@@ -157,7 +150,7 @@ module RubyLsp
|
|
157
150
|
)
|
158
151
|
end
|
159
152
|
|
160
|
-
|
153
|
+
#: (Prism::ConstantOrWriteNode node) -> void
|
161
154
|
def on_constant_or_write_node_enter(node)
|
162
155
|
create_document_symbol(
|
163
156
|
name: node.name.to_s,
|
@@ -167,7 +160,7 @@ module RubyLsp
|
|
167
160
|
)
|
168
161
|
end
|
169
162
|
|
170
|
-
|
163
|
+
#: (Prism::ConstantAndWriteNode node) -> void
|
171
164
|
def on_constant_and_write_node_enter(node)
|
172
165
|
create_document_symbol(
|
173
166
|
name: node.name.to_s,
|
@@ -177,7 +170,7 @@ module RubyLsp
|
|
177
170
|
)
|
178
171
|
end
|
179
172
|
|
180
|
-
|
173
|
+
#: (Prism::ConstantOperatorWriteNode node) -> void
|
181
174
|
def on_constant_operator_write_node_enter(node)
|
182
175
|
create_document_symbol(
|
183
176
|
name: node.name.to_s,
|
@@ -187,7 +180,7 @@ module RubyLsp
|
|
187
180
|
)
|
188
181
|
end
|
189
182
|
|
190
|
-
|
183
|
+
#: (Prism::ConstantTargetNode node) -> void
|
191
184
|
def on_constant_target_node_enter(node)
|
192
185
|
create_document_symbol(
|
193
186
|
name: node.name.to_s,
|
@@ -197,7 +190,7 @@ module RubyLsp
|
|
197
190
|
)
|
198
191
|
end
|
199
192
|
|
200
|
-
|
193
|
+
#: (Prism::ConstantPathTargetNode node) -> void
|
201
194
|
def on_constant_path_target_node_enter(node)
|
202
195
|
create_document_symbol(
|
203
196
|
name: node.slice,
|
@@ -207,12 +200,12 @@ module RubyLsp
|
|
207
200
|
)
|
208
201
|
end
|
209
202
|
|
210
|
-
|
203
|
+
#: (Prism::DefNode node) -> void
|
211
204
|
def on_def_node_leave(node)
|
212
205
|
@response_builder.pop
|
213
206
|
end
|
214
207
|
|
215
|
-
|
208
|
+
#: (Prism::ModuleNode node) -> void
|
216
209
|
def on_module_node_enter(node)
|
217
210
|
@response_builder << create_document_symbol(
|
218
211
|
name: node.constant_path.location.slice,
|
@@ -222,7 +215,7 @@ module RubyLsp
|
|
222
215
|
)
|
223
216
|
end
|
224
217
|
|
225
|
-
|
218
|
+
#: (Prism::DefNode node) -> void
|
226
219
|
def on_def_node_enter(node)
|
227
220
|
receiver = node.receiver
|
228
221
|
previous_symbol = @response_builder.last
|
@@ -248,12 +241,12 @@ module RubyLsp
|
|
248
241
|
@response_builder << symbol
|
249
242
|
end
|
250
243
|
|
251
|
-
|
244
|
+
#: (Prism::ModuleNode node) -> void
|
252
245
|
def on_module_node_leave(node)
|
253
246
|
@response_builder.pop
|
254
247
|
end
|
255
248
|
|
256
|
-
|
249
|
+
#: (Prism::ClassVariableWriteNode node) -> void
|
257
250
|
def on_class_variable_write_node_enter(node)
|
258
251
|
create_document_symbol(
|
259
252
|
name: node.name.to_s,
|
@@ -263,7 +256,7 @@ module RubyLsp
|
|
263
256
|
)
|
264
257
|
end
|
265
258
|
|
266
|
-
|
259
|
+
#: (Prism::InstanceVariableWriteNode node) -> void
|
267
260
|
def on_instance_variable_write_node_enter(node)
|
268
261
|
create_document_symbol(
|
269
262
|
name: node.name.to_s,
|
@@ -273,7 +266,7 @@ module RubyLsp
|
|
273
266
|
)
|
274
267
|
end
|
275
268
|
|
276
|
-
|
269
|
+
#: (Prism::InstanceVariableTargetNode node) -> void
|
277
270
|
def on_instance_variable_target_node_enter(node)
|
278
271
|
create_document_symbol(
|
279
272
|
name: node.name.to_s,
|
@@ -283,7 +276,7 @@ module RubyLsp
|
|
283
276
|
)
|
284
277
|
end
|
285
278
|
|
286
|
-
|
279
|
+
#: (Prism::InstanceVariableOperatorWriteNode node) -> void
|
287
280
|
def on_instance_variable_operator_write_node_enter(node)
|
288
281
|
create_document_symbol(
|
289
282
|
name: node.name.to_s,
|
@@ -293,7 +286,7 @@ module RubyLsp
|
|
293
286
|
)
|
294
287
|
end
|
295
288
|
|
296
|
-
|
289
|
+
#: (Prism::InstanceVariableOrWriteNode node) -> void
|
297
290
|
def on_instance_variable_or_write_node_enter(node)
|
298
291
|
create_document_symbol(
|
299
292
|
name: node.name.to_s,
|
@@ -303,7 +296,7 @@ module RubyLsp
|
|
303
296
|
)
|
304
297
|
end
|
305
298
|
|
306
|
-
|
299
|
+
#: (Prism::InstanceVariableAndWriteNode node) -> void
|
307
300
|
def on_instance_variable_and_write_node_enter(node)
|
308
301
|
create_document_symbol(
|
309
302
|
name: node.name.to_s,
|
@@ -313,7 +306,7 @@ module RubyLsp
|
|
313
306
|
)
|
314
307
|
end
|
315
308
|
|
316
|
-
|
309
|
+
#: (Prism::AliasMethodNode node) -> void
|
317
310
|
def on_alias_method_node_enter(node)
|
318
311
|
new_name_node = node.new_name
|
319
312
|
return unless new_name_node.is_a?(Prism::SymbolNode)
|
@@ -331,14 +324,7 @@ module RubyLsp
|
|
331
324
|
|
332
325
|
private
|
333
326
|
|
334
|
-
|
335
|
-
params(
|
336
|
-
name: String,
|
337
|
-
kind: Integer,
|
338
|
-
range_location: Prism::Location,
|
339
|
-
selection_range_location: Prism::Location,
|
340
|
-
).returns(Interface::DocumentSymbol)
|
341
|
-
end
|
327
|
+
#: (name: String, kind: Integer, range_location: Prism::Location, selection_range_location: Prism::Location) -> Interface::DocumentSymbol
|
342
328
|
def create_document_symbol(name:, kind:, range_location:, selection_range_location:)
|
343
329
|
name = "<blank>" if name.strip.empty?
|
344
330
|
symbol = Interface::DocumentSymbol.new(
|
@@ -354,7 +340,7 @@ module RubyLsp
|
|
354
340
|
symbol
|
355
341
|
end
|
356
342
|
|
357
|
-
|
343
|
+
#: (Prism::CallNode node) -> void
|
358
344
|
def handle_attr_accessor(node)
|
359
345
|
receiver = node.receiver
|
360
346
|
return if receiver && !receiver.is_a?(Prism::SelfNode)
|
@@ -387,7 +373,7 @@ module RubyLsp
|
|
387
373
|
end
|
388
374
|
end
|
389
375
|
|
390
|
-
|
376
|
+
#: (Prism::CallNode node) -> void
|
391
377
|
def handle_alias_method(node)
|
392
378
|
receiver = node.receiver
|
393
379
|
return if receiver && !receiver.is_a?(Prism::SelfNode)
|
@@ -420,7 +406,7 @@ module RubyLsp
|
|
420
406
|
end
|
421
407
|
end
|
422
408
|
|
423
|
-
|
409
|
+
#: (Prism::CallNode node) -> void
|
424
410
|
def handle_rake_namespace(node)
|
425
411
|
return unless rake?
|
426
412
|
return if node.receiver
|
@@ -446,7 +432,7 @@ module RubyLsp
|
|
446
432
|
)
|
447
433
|
end
|
448
434
|
|
449
|
-
|
435
|
+
#: (Prism::CallNode node) -> void
|
450
436
|
def handle_rake_task(node)
|
451
437
|
return unless rake?
|
452
438
|
return if node.receiver
|
@@ -481,7 +467,7 @@ module RubyLsp
|
|
481
467
|
)
|
482
468
|
end
|
483
469
|
|
484
|
-
|
470
|
+
#: -> bool
|
485
471
|
def rake?
|
486
472
|
if (path = @uri.to_standardized_path)
|
487
473
|
path.match?(/(Rakefile|\.rake)$/)
|
@@ -4,16 +4,9 @@
|
|
4
4
|
module RubyLsp
|
5
5
|
module Listeners
|
6
6
|
class FoldingRanges
|
7
|
-
extend T::Sig
|
8
7
|
include Requests::Support::Common
|
9
8
|
|
10
|
-
|
11
|
-
params(
|
12
|
-
response_builder: ResponseBuilders::CollectionResponseBuilder[Interface::FoldingRange],
|
13
|
-
comments: T::Array[Prism::Comment],
|
14
|
-
dispatcher: Prism::Dispatcher,
|
15
|
-
).void
|
16
|
-
end
|
9
|
+
#: (ResponseBuilders::CollectionResponseBuilder[Interface::FoldingRange] response_builder, Array[Prism::Comment] comments, Prism::Dispatcher dispatcher) -> void
|
17
10
|
def initialize(response_builder, comments, dispatcher)
|
18
11
|
@response_builder = response_builder
|
19
12
|
@requires = T.let([], T::Array[Prism::CallNode])
|
@@ -47,33 +40,33 @@ module RubyLsp
|
|
47
40
|
)
|
48
41
|
end
|
49
42
|
|
50
|
-
|
43
|
+
#: -> void
|
51
44
|
def finalize_response!
|
52
45
|
push_comment_ranges
|
53
46
|
emit_requires_range
|
54
47
|
end
|
55
48
|
|
56
|
-
|
49
|
+
#: (Prism::IfNode node) -> void
|
57
50
|
def on_if_node_enter(node)
|
58
51
|
add_statements_range(node)
|
59
52
|
end
|
60
53
|
|
61
|
-
|
54
|
+
#: (Prism::InNode node) -> void
|
62
55
|
def on_in_node_enter(node)
|
63
56
|
add_statements_range(node)
|
64
57
|
end
|
65
58
|
|
66
|
-
|
59
|
+
#: (Prism::RescueNode node) -> void
|
67
60
|
def on_rescue_node_enter(node)
|
68
61
|
add_statements_range(node)
|
69
62
|
end
|
70
63
|
|
71
|
-
|
64
|
+
#: (Prism::WhenNode node) -> void
|
72
65
|
def on_when_node_enter(node)
|
73
66
|
add_statements_range(node)
|
74
67
|
end
|
75
68
|
|
76
|
-
|
69
|
+
#: (Prism::InterpolatedStringNode node) -> void
|
77
70
|
def on_interpolated_string_node_enter(node)
|
78
71
|
opening_loc = node.opening_loc || node.location
|
79
72
|
closing_loc = node.closing_loc || node.parts.last&.location || node.location
|
@@ -81,82 +74,82 @@ module RubyLsp
|
|
81
74
|
add_lines_range(opening_loc.start_line, closing_loc.start_line - 1)
|
82
75
|
end
|
83
76
|
|
84
|
-
|
77
|
+
#: (Prism::ArrayNode node) -> void
|
85
78
|
def on_array_node_enter(node)
|
86
79
|
add_simple_range(node)
|
87
80
|
end
|
88
81
|
|
89
|
-
|
82
|
+
#: (Prism::BlockNode node) -> void
|
90
83
|
def on_block_node_enter(node)
|
91
84
|
add_simple_range(node)
|
92
85
|
end
|
93
86
|
|
94
|
-
|
87
|
+
#: (Prism::CaseNode node) -> void
|
95
88
|
def on_case_node_enter(node)
|
96
89
|
add_simple_range(node)
|
97
90
|
end
|
98
91
|
|
99
|
-
|
92
|
+
#: (Prism::CaseMatchNode node) -> void
|
100
93
|
def on_case_match_node_enter(node)
|
101
94
|
add_simple_range(node)
|
102
95
|
end
|
103
96
|
|
104
|
-
|
97
|
+
#: (Prism::ClassNode node) -> void
|
105
98
|
def on_class_node_enter(node)
|
106
99
|
add_simple_range(node)
|
107
100
|
end
|
108
101
|
|
109
|
-
|
102
|
+
#: (Prism::ModuleNode node) -> void
|
110
103
|
def on_module_node_enter(node)
|
111
104
|
add_simple_range(node)
|
112
105
|
end
|
113
106
|
|
114
|
-
|
107
|
+
#: (Prism::ForNode node) -> void
|
115
108
|
def on_for_node_enter(node)
|
116
109
|
add_simple_range(node)
|
117
110
|
end
|
118
111
|
|
119
|
-
|
112
|
+
#: (Prism::HashNode node) -> void
|
120
113
|
def on_hash_node_enter(node)
|
121
114
|
add_simple_range(node)
|
122
115
|
end
|
123
116
|
|
124
|
-
|
117
|
+
#: (Prism::SingletonClassNode node) -> void
|
125
118
|
def on_singleton_class_node_enter(node)
|
126
119
|
add_simple_range(node)
|
127
120
|
end
|
128
121
|
|
129
|
-
|
122
|
+
#: (Prism::UnlessNode node) -> void
|
130
123
|
def on_unless_node_enter(node)
|
131
124
|
add_simple_range(node)
|
132
125
|
end
|
133
126
|
|
134
|
-
|
127
|
+
#: (Prism::UntilNode node) -> void
|
135
128
|
def on_until_node_enter(node)
|
136
129
|
add_simple_range(node)
|
137
130
|
end
|
138
131
|
|
139
|
-
|
132
|
+
#: (Prism::WhileNode node) -> void
|
140
133
|
def on_while_node_enter(node)
|
141
134
|
add_simple_range(node)
|
142
135
|
end
|
143
136
|
|
144
|
-
|
137
|
+
#: (Prism::ElseNode node) -> void
|
145
138
|
def on_else_node_enter(node)
|
146
139
|
add_simple_range(node)
|
147
140
|
end
|
148
141
|
|
149
|
-
|
142
|
+
#: (Prism::EnsureNode node) -> void
|
150
143
|
def on_ensure_node_enter(node)
|
151
144
|
add_simple_range(node)
|
152
145
|
end
|
153
146
|
|
154
|
-
|
147
|
+
#: (Prism::BeginNode node) -> void
|
155
148
|
def on_begin_node_enter(node)
|
156
149
|
add_simple_range(node)
|
157
150
|
end
|
158
151
|
|
159
|
-
|
152
|
+
#: (Prism::DefNode node) -> void
|
160
153
|
def on_def_node_enter(node)
|
161
154
|
params = node.parameters
|
162
155
|
parameter_loc = params&.location
|
@@ -171,7 +164,7 @@ module RubyLsp
|
|
171
164
|
end
|
172
165
|
end
|
173
166
|
|
174
|
-
|
167
|
+
#: (Prism::CallNode node) -> void
|
175
168
|
def on_call_node_enter(node)
|
176
169
|
# If we find a require, don't visit the child nodes (prevent `super`), so that we can keep accumulating into
|
177
170
|
# the `@requires` array and then push the range whenever we find a node that isn't a CallNode
|
@@ -184,14 +177,14 @@ module RubyLsp
|
|
184
177
|
add_lines_range(location.start_line, location.end_line - 1)
|
185
178
|
end
|
186
179
|
|
187
|
-
|
180
|
+
#: (Prism::LambdaNode node) -> void
|
188
181
|
def on_lambda_node_enter(node)
|
189
182
|
add_simple_range(node)
|
190
183
|
end
|
191
184
|
|
192
185
|
private
|
193
186
|
|
194
|
-
|
187
|
+
#: -> void
|
195
188
|
def push_comment_ranges
|
196
189
|
# Group comments that are on consecutive lines and then push ranges for each group that has at least 2 comments
|
197
190
|
@comments.chunk_while do |this, other|
|
@@ -207,7 +200,7 @@ module RubyLsp
|
|
207
200
|
end
|
208
201
|
end
|
209
202
|
|
210
|
-
|
203
|
+
#: -> void
|
211
204
|
def emit_requires_range
|
212
205
|
if @requires.length > 1
|
213
206
|
@response_builder << Interface::FoldingRange.new(
|
@@ -220,7 +213,7 @@ module RubyLsp
|
|
220
213
|
@requires.clear
|
221
214
|
end
|
222
215
|
|
223
|
-
|
216
|
+
#: (Prism::CallNode node) -> bool
|
224
217
|
def require?(node)
|
225
218
|
message = node.message
|
226
219
|
return false unless message == "require" || message == "require_relative"
|
@@ -234,7 +227,7 @@ module RubyLsp
|
|
234
227
|
arguments.length == 1 && arguments.first.is_a?(Prism::StringNode)
|
235
228
|
end
|
236
229
|
|
237
|
-
|
230
|
+
#: ((Prism::IfNode | Prism::InNode | Prism::RescueNode | Prism::WhenNode) node) -> void
|
238
231
|
def add_statements_range(node)
|
239
232
|
statements = node.statements
|
240
233
|
return unless statements
|
@@ -245,13 +238,13 @@ module RubyLsp
|
|
245
238
|
add_lines_range(node.location.start_line, statement.location.end_line)
|
246
239
|
end
|
247
240
|
|
248
|
-
|
241
|
+
#: (Prism::Node node) -> void
|
249
242
|
def add_simple_range(node)
|
250
243
|
location = node.location
|
251
244
|
add_lines_range(location.start_line, location.end_line - 1)
|
252
245
|
end
|
253
246
|
|
254
|
-
|
247
|
+
#: (Integer start_line, Integer end_line) -> void
|
255
248
|
def add_lines_range(start_line, end_line)
|
256
249
|
emit_requires_range
|
257
250
|
return if start_line >= end_line
|