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.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/VERSION +1 -1
  4. data/exe/ruby-lsp-launcher +12 -11
  5. data/lib/rubocop/cop/ruby_lsp/use_register_with_handler_method.rb +3 -5
  6. data/lib/ruby_indexer/lib/ruby_indexer/configuration.rb +52 -77
  7. data/lib/ruby_indexer/lib/ruby_indexer/declaration_listener.rb +61 -144
  8. data/lib/ruby_indexer/lib/ruby_indexer/enhancement.rb +8 -6
  9. data/lib/ruby_indexer/lib/ruby_indexer/entry.rb +73 -182
  10. data/lib/ruby_indexer/lib/ruby_indexer/index.rb +48 -181
  11. data/lib/ruby_indexer/lib/ruby_indexer/location.rb +4 -27
  12. data/lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb +12 -14
  13. data/lib/ruby_indexer/lib/ruby_indexer/rbs_indexer.rb +21 -44
  14. data/lib/ruby_indexer/lib/ruby_indexer/reference_finder.rb +40 -58
  15. data/lib/ruby_indexer/lib/ruby_indexer/uri.rb +9 -16
  16. data/lib/ruby_indexer/lib/ruby_indexer/visibility_scope.rb +5 -9
  17. data/lib/ruby_indexer/test/configuration_test.rb +32 -2
  18. data/lib/ruby_indexer/test/method_test.rb +2 -2
  19. data/lib/ruby_lsp/addon.rb +32 -67
  20. data/lib/ruby_lsp/base_server.rb +10 -10
  21. data/lib/ruby_lsp/client_capabilities.rb +4 -6
  22. data/lib/ruby_lsp/document.rb +21 -32
  23. data/lib/ruby_lsp/erb_document.rb +17 -27
  24. data/lib/ruby_lsp/global_state.rb +30 -32
  25. data/lib/ruby_lsp/internal.rb +2 -0
  26. data/lib/ruby_lsp/listeners/code_lens.rb +21 -39
  27. data/lib/ruby_lsp/listeners/completion.rb +34 -53
  28. data/lib/ruby_lsp/listeners/definition.rb +35 -49
  29. data/lib/ruby_lsp/listeners/document_highlight.rb +60 -69
  30. data/lib/ruby_lsp/listeners/document_link.rb +9 -19
  31. data/lib/ruby_lsp/listeners/document_symbol.rb +34 -48
  32. data/lib/ruby_lsp/listeners/folding_ranges.rb +31 -38
  33. data/lib/ruby_lsp/listeners/hover.rb +37 -47
  34. data/lib/ruby_lsp/listeners/inlay_hints.rb +3 -10
  35. data/lib/ruby_lsp/listeners/semantic_highlighting.rb +29 -35
  36. data/lib/ruby_lsp/listeners/signature_help.rb +4 -23
  37. data/lib/ruby_lsp/listeners/spec_style.rb +199 -0
  38. data/lib/ruby_lsp/listeners/test_style.rb +136 -30
  39. data/lib/ruby_lsp/node_context.rb +8 -35
  40. data/lib/ruby_lsp/rbs_document.rb +7 -5
  41. data/lib/ruby_lsp/requests/code_action_resolve.rb +10 -10
  42. data/lib/ruby_lsp/requests/code_actions.rb +5 -14
  43. data/lib/ruby_lsp/requests/code_lens.rb +4 -13
  44. data/lib/ruby_lsp/requests/completion.rb +4 -15
  45. data/lib/ruby_lsp/requests/completion_resolve.rb +4 -4
  46. data/lib/ruby_lsp/requests/definition.rb +4 -12
  47. data/lib/ruby_lsp/requests/diagnostics.rb +6 -9
  48. data/lib/ruby_lsp/requests/discover_tests.rb +15 -3
  49. data/lib/ruby_lsp/requests/document_highlight.rb +3 -11
  50. data/lib/ruby_lsp/requests/document_link.rb +4 -13
  51. data/lib/ruby_lsp/requests/document_symbol.rb +4 -7
  52. data/lib/ruby_lsp/requests/folding_ranges.rb +4 -7
  53. data/lib/ruby_lsp/requests/formatting.rb +4 -7
  54. data/lib/ruby_lsp/requests/go_to_relevant_file.rb +87 -0
  55. data/lib/ruby_lsp/requests/hover.rb +6 -16
  56. data/lib/ruby_lsp/requests/inlay_hints.rb +4 -13
  57. data/lib/ruby_lsp/requests/on_type_formatting.rb +17 -24
  58. data/lib/ruby_lsp/requests/prepare_rename.rb +3 -8
  59. data/lib/ruby_lsp/requests/prepare_type_hierarchy.rb +4 -13
  60. data/lib/ruby_lsp/requests/range_formatting.rb +3 -4
  61. data/lib/ruby_lsp/requests/references.rb +5 -35
  62. data/lib/ruby_lsp/requests/rename.rb +9 -35
  63. data/lib/ruby_lsp/requests/request.rb +5 -17
  64. data/lib/ruby_lsp/requests/selection_ranges.rb +3 -3
  65. data/lib/ruby_lsp/requests/semantic_highlighting.rb +6 -23
  66. data/lib/ruby_lsp/requests/show_syntax_tree.rb +4 -5
  67. data/lib/ruby_lsp/requests/signature_help.rb +6 -24
  68. data/lib/ruby_lsp/requests/support/annotation.rb +4 -10
  69. data/lib/ruby_lsp/requests/support/common.rb +12 -49
  70. data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +12 -14
  71. data/lib/ruby_lsp/requests/support/rubocop_formatter.rb +7 -10
  72. data/lib/ruby_lsp/requests/support/rubocop_runner.rb +9 -15
  73. data/lib/ruby_lsp/requests/support/selection_range.rb +1 -3
  74. data/lib/ruby_lsp/requests/support/sorbet.rb +1 -7
  75. data/lib/ruby_lsp/requests/support/source_uri.rb +5 -16
  76. data/lib/ruby_lsp/requests/support/syntax_tree_formatter.rb +7 -10
  77. data/lib/ruby_lsp/requests/support/test_item.rb +14 -13
  78. data/lib/ruby_lsp/requests/type_hierarchy_supertypes.rb +4 -5
  79. data/lib/ruby_lsp/requests/workspace_symbol.rb +3 -3
  80. data/lib/ruby_lsp/response_builders/collection_response_builder.rb +4 -4
  81. data/lib/ruby_lsp/response_builders/document_symbol.rb +8 -11
  82. data/lib/ruby_lsp/response_builders/hover.rb +5 -5
  83. data/lib/ruby_lsp/response_builders/response_builder.rb +1 -1
  84. data/lib/ruby_lsp/response_builders/semantic_highlighting.rb +18 -40
  85. data/lib/ruby_lsp/response_builders/signature_help.rb +4 -5
  86. data/lib/ruby_lsp/response_builders/test_collection.rb +5 -9
  87. data/lib/ruby_lsp/ruby_document.rb +15 -40
  88. data/lib/ruby_lsp/ruby_lsp_reporter_plugin.rb +106 -0
  89. data/lib/ruby_lsp/scope.rb +6 -10
  90. data/lib/ruby_lsp/server.rb +125 -74
  91. data/lib/ruby_lsp/setup_bundler.rb +22 -15
  92. data/lib/ruby_lsp/store.rb +12 -28
  93. data/lib/ruby_lsp/test_helper.rb +3 -12
  94. data/lib/ruby_lsp/test_reporter.rb +71 -0
  95. data/lib/ruby_lsp/test_unit_test_runner.rb +96 -0
  96. data/lib/ruby_lsp/type_inferrer.rb +9 -13
  97. data/lib/ruby_lsp/utils.rb +27 -65
  98. 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
- sig do
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
- sig { params(node: Prism::ClassNode).void }
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
- sig { params(node: Prism::ClassNode).void }
58
+ #: (Prism::ClassNode node) -> void
66
59
  def on_class_node_leave(node)
67
60
  @response_builder.pop
68
61
  end
69
62
 
70
- sig { params(node: Prism::SingletonClassNode).void }
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
- sig { params(node: Prism::SingletonClassNode).void }
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
- sig { params(node: Prism::CallNode).void }
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
- sig { params(node: Prism::CallNode).void }
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
- sig { params(node: Prism::ConstantPathWriteNode).void }
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
- sig { params(node: Prism::ConstantWriteNode).void }
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
- sig { params(node: Prism::ConstantPathAndWriteNode).void }
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
- sig { params(node: Prism::ConstantPathOrWriteNode).void }
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
- sig { params(node: Prism::ConstantPathOperatorWriteNode).void }
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
- sig { params(node: Prism::ConstantOrWriteNode).void }
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
- sig { params(node: Prism::ConstantAndWriteNode).void }
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
- sig { params(node: Prism::ConstantOperatorWriteNode).void }
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
- sig { params(node: Prism::ConstantTargetNode).void }
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
- sig { params(node: Prism::ConstantPathTargetNode).void }
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
- sig { params(node: Prism::DefNode).void }
203
+ #: (Prism::DefNode node) -> void
211
204
  def on_def_node_leave(node)
212
205
  @response_builder.pop
213
206
  end
214
207
 
215
- sig { params(node: Prism::ModuleNode).void }
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
- sig { params(node: Prism::DefNode).void }
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
- sig { params(node: Prism::ModuleNode).void }
244
+ #: (Prism::ModuleNode node) -> void
252
245
  def on_module_node_leave(node)
253
246
  @response_builder.pop
254
247
  end
255
248
 
256
- sig { params(node: Prism::ClassVariableWriteNode).void }
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
- sig { params(node: Prism::InstanceVariableWriteNode).void }
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
- sig { params(node: Prism::InstanceVariableTargetNode).void }
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
- sig { params(node: Prism::InstanceVariableOperatorWriteNode).void }
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
- sig { params(node: Prism::InstanceVariableOrWriteNode).void }
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
- sig { params(node: Prism::InstanceVariableAndWriteNode).void }
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
- sig { params(node: Prism::AliasMethodNode).void }
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
- sig do
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
- sig { params(node: Prism::CallNode).void }
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
- sig { params(node: Prism::CallNode).void }
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
- sig { params(node: Prism::CallNode).void }
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
- sig { params(node: Prism::CallNode).void }
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
- sig { returns(T::Boolean) }
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
- sig do
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
- sig { void }
43
+ #: -> void
51
44
  def finalize_response!
52
45
  push_comment_ranges
53
46
  emit_requires_range
54
47
  end
55
48
 
56
- sig { params(node: Prism::IfNode).void }
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
- sig { params(node: Prism::InNode).void }
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
- sig { params(node: Prism::RescueNode).void }
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
- sig { params(node: Prism::WhenNode).void }
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
- sig { params(node: Prism::InterpolatedStringNode).void }
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
- sig { params(node: Prism::ArrayNode).void }
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
- sig { params(node: Prism::BlockNode).void }
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
- sig { params(node: Prism::CaseNode).void }
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
- sig { params(node: Prism::CaseMatchNode).void }
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
- sig { params(node: Prism::ClassNode).void }
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
- sig { params(node: Prism::ModuleNode).void }
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
- sig { params(node: Prism::ForNode).void }
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
- sig { params(node: Prism::HashNode).void }
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
- sig { params(node: Prism::SingletonClassNode).void }
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
- sig { params(node: Prism::UnlessNode).void }
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
- sig { params(node: Prism::UntilNode).void }
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
- sig { params(node: Prism::WhileNode).void }
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
- sig { params(node: Prism::ElseNode).void }
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
- sig { params(node: Prism::EnsureNode).void }
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
- sig { params(node: Prism::BeginNode).void }
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
- sig { params(node: Prism::DefNode).void }
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
- sig { params(node: Prism::CallNode).void }
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
- sig { params(node: Prism::LambdaNode).void }
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
- sig { void }
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
- sig { void }
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
- sig { params(node: Prism::CallNode).returns(T::Boolean) }
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
- sig { params(node: T.any(Prism::IfNode, Prism::InNode, Prism::RescueNode, Prism::WhenNode)).void }
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
- sig { params(node: Prism::Node).void }
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
- sig { params(start_line: Integer, end_line: Integer).void }
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