ruby-lsp 0.23.14 → 0.23.15

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/exe/ruby-lsp-launcher +9 -1
  4. data/lib/ruby_indexer/lib/ruby_indexer/configuration.rb +1 -1
  5. data/lib/ruby_indexer/lib/ruby_indexer/declaration_listener.rb +6 -3
  6. data/lib/ruby_indexer/lib/ruby_indexer/entry.rb +4 -2
  7. data/lib/ruby_indexer/lib/ruby_indexer/index.rb +59 -29
  8. data/lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb +5 -4
  9. data/lib/ruby_indexer/lib/ruby_indexer/reference_finder.rb +5 -1
  10. data/lib/ruby_indexer/test/class_variables_test.rb +14 -14
  11. data/lib/ruby_indexer/test/classes_and_modules_test.rb +65 -40
  12. data/lib/ruby_indexer/test/configuration_test.rb +6 -4
  13. data/lib/ruby_indexer/test/constant_test.rb +34 -34
  14. data/lib/ruby_indexer/test/enhancements_test.rb +1 -1
  15. data/lib/ruby_indexer/test/index_test.rb +139 -135
  16. data/lib/ruby_indexer/test/instance_variables_test.rb +37 -37
  17. data/lib/ruby_indexer/test/method_test.rb +118 -118
  18. data/lib/ruby_indexer/test/prefix_tree_test.rb +13 -13
  19. data/lib/ruby_indexer/test/rbs_indexer_test.rb +64 -70
  20. data/lib/ruby_indexer/test/test_case.rb +2 -2
  21. data/lib/ruby_lsp/erb_document.rb +12 -4
  22. data/lib/ruby_lsp/global_state.rb +1 -1
  23. data/lib/ruby_lsp/listeners/code_lens.rb +3 -3
  24. data/lib/ruby_lsp/listeners/completion.rb +24 -11
  25. data/lib/ruby_lsp/listeners/definition.rb +1 -1
  26. data/lib/ruby_lsp/listeners/document_link.rb +3 -1
  27. data/lib/ruby_lsp/listeners/document_symbol.rb +3 -3
  28. data/lib/ruby_lsp/listeners/folding_ranges.rb +8 -4
  29. data/lib/ruby_lsp/listeners/hover.rb +2 -2
  30. data/lib/ruby_lsp/listeners/semantic_highlighting.rb +12 -5
  31. data/lib/ruby_lsp/listeners/signature_help.rb +5 -1
  32. data/lib/ruby_lsp/listeners/spec_style.rb +1 -1
  33. data/lib/ruby_lsp/listeners/test_style.rb +3 -3
  34. data/lib/ruby_lsp/requests/code_action_resolve.rb +4 -3
  35. data/lib/ruby_lsp/requests/completion_resolve.rb +1 -1
  36. data/lib/ruby_lsp/requests/hover.rb +2 -2
  37. data/lib/ruby_lsp/requests/on_type_formatting.rb +4 -2
  38. data/lib/ruby_lsp/requests/prepare_type_hierarchy.rb +1 -2
  39. data/lib/ruby_lsp/requests/references.rb +2 -1
  40. data/lib/ruby_lsp/requests/rename.rb +8 -5
  41. data/lib/ruby_lsp/requests/semantic_highlighting.rb +4 -4
  42. data/lib/ruby_lsp/requests/show_syntax_tree.rb +1 -1
  43. data/lib/ruby_lsp/requests/support/common.rb +3 -1
  44. data/lib/ruby_lsp/requests/support/rubocop_formatter.rb +2 -2
  45. data/lib/ruby_lsp/requests/support/source_uri.rb +1 -1
  46. data/lib/ruby_lsp/response_builders/document_symbol.rb +3 -2
  47. data/lib/ruby_lsp/response_builders/hover.rb +1 -1
  48. data/lib/ruby_lsp/response_builders/semantic_highlighting.rb +1 -1
  49. data/lib/ruby_lsp/scripts/compose_bundle.rb +6 -4
  50. data/lib/ruby_lsp/server.rb +12 -4
  51. data/lib/ruby_lsp/setup_bundler.rb +5 -2
  52. data/lib/ruby_lsp/static_docs.rb +8 -1
  53. data/lib/ruby_lsp/store.rb +3 -2
  54. data/lib/ruby_lsp/test_reporters/lsp_reporter.rb +152 -0
  55. data/lib/ruby_lsp/test_reporters/minitest_reporter.rb +105 -0
  56. data/lib/ruby_lsp/test_reporters/test_unit_reporter.rb +94 -0
  57. data/lib/ruby_lsp/type_inferrer.rb +4 -1
  58. metadata +6 -6
  59. data/lib/ruby_lsp/ruby_lsp_reporter_plugin.rb +0 -109
  60. data/lib/ruby_lsp/test_reporter.rb +0 -207
  61. data/lib/ruby_lsp/test_unit_test_runner.rb +0 -98
@@ -19,10 +19,10 @@ module RubyIndexer
19
19
 
20
20
  assert_entry("@a", Entry::InstanceVariable, "/fake/path/foo.rb:4-6:4-8")
21
21
 
22
- entry = T.must(@index["@a"]&.first)
23
- owner = T.must(entry.owner)
22
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
23
+ owner = entry.owner
24
24
  assert_instance_of(Entry::Class, owner)
25
- assert_equal("Foo::Bar", owner.name)
25
+ assert_equal("Foo::Bar", owner&.name)
26
26
  end
27
27
 
28
28
  def test_instance_variable_with_multibyte_characters
@@ -51,10 +51,10 @@ module RubyIndexer
51
51
 
52
52
  assert_entry("@a", Entry::InstanceVariable, "/fake/path/foo.rb:4-6:4-8")
53
53
 
54
- entry = T.must(@index["@a"]&.first)
55
- owner = T.must(entry.owner)
54
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
55
+ owner = entry.owner
56
56
  assert_instance_of(Entry::Class, owner)
57
- assert_equal("Foo::Bar", owner.name)
57
+ assert_equal("Foo::Bar", owner&.name)
58
58
  end
59
59
 
60
60
  def test_instance_variable_operator_write
@@ -71,10 +71,10 @@ module RubyIndexer
71
71
 
72
72
  assert_entry("@a", Entry::InstanceVariable, "/fake/path/foo.rb:4-6:4-8")
73
73
 
74
- entry = T.must(@index["@a"]&.first)
75
- owner = T.must(entry.owner)
74
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
75
+ owner = entry.owner
76
76
  assert_instance_of(Entry::Class, owner)
77
- assert_equal("Foo::Bar", owner.name)
77
+ assert_equal("Foo::Bar", owner&.name)
78
78
  end
79
79
 
80
80
  def test_instance_variable_or_write
@@ -91,10 +91,10 @@ module RubyIndexer
91
91
 
92
92
  assert_entry("@a", Entry::InstanceVariable, "/fake/path/foo.rb:4-6:4-8")
93
93
 
94
- entry = T.must(@index["@a"]&.first)
95
- owner = T.must(entry.owner)
94
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
95
+ owner = entry.owner
96
96
  assert_instance_of(Entry::Class, owner)
97
- assert_equal("Foo::Bar", owner.name)
97
+ assert_equal("Foo::Bar", owner&.name)
98
98
  end
99
99
 
100
100
  def test_instance_variable_target
@@ -112,15 +112,15 @@ module RubyIndexer
112
112
  assert_entry("@a", Entry::InstanceVariable, "/fake/path/foo.rb:4-6:4-8")
113
113
  assert_entry("@b", Entry::InstanceVariable, "/fake/path/foo.rb:4-10:4-12")
114
114
 
115
- entry = T.must(@index["@a"]&.first)
116
- owner = T.must(entry.owner)
115
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
116
+ owner = entry.owner
117
117
  assert_instance_of(Entry::Class, owner)
118
- assert_equal("Foo::Bar", owner.name)
118
+ assert_equal("Foo::Bar", owner&.name)
119
119
 
120
- entry = T.must(@index["@b"]&.first)
121
- owner = T.must(entry.owner)
120
+ entry = @index["@b"]&.first #: as Entry::InstanceVariable
121
+ owner = entry.owner
122
122
  assert_instance_of(Entry::Class, owner)
123
- assert_equal("Foo::Bar", owner.name)
123
+ assert_equal("Foo::Bar", owner&.name)
124
124
  end
125
125
 
126
126
  def test_empty_name_instance_variables
@@ -156,24 +156,24 @@ module RubyIndexer
156
156
 
157
157
  assert_entry("@a", Entry::InstanceVariable, "/fake/path/foo.rb:2-4:2-6")
158
158
 
159
- entry = T.must(@index["@a"]&.first)
160
- owner = T.must(entry.owner)
159
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
160
+ owner = entry.owner
161
161
  assert_instance_of(Entry::SingletonClass, owner)
162
- assert_equal("Foo::Bar::<Class:Bar>", owner.name)
162
+ assert_equal("Foo::Bar::<Class:Bar>", owner&.name)
163
163
 
164
164
  assert_entry("@b", Entry::InstanceVariable, "/fake/path/foo.rb:6-8:6-10")
165
165
 
166
- entry = T.must(@index["@b"]&.first)
167
- owner = T.must(entry.owner)
166
+ entry = @index["@b"]&.first #: as Entry::InstanceVariable
167
+ owner = entry.owner
168
168
  assert_instance_of(Entry::SingletonClass, owner)
169
- assert_equal("Foo::Bar::<Class:Bar>", owner.name)
169
+ assert_equal("Foo::Bar::<Class:Bar>", owner&.name)
170
170
 
171
171
  assert_entry("@c", Entry::InstanceVariable, "/fake/path/foo.rb:9-6:9-8")
172
172
 
173
- entry = T.must(@index["@c"]&.first)
174
- owner = T.must(entry.owner)
173
+ entry = @index["@c"]&.first #: as Entry::InstanceVariable
174
+ owner = entry.owner
175
175
  assert_instance_of(Entry::SingletonClass, owner)
176
- assert_equal("Foo::Bar::<Class:Bar>::<Class:<Class:Bar>>", owner.name)
176
+ assert_equal("Foo::Bar::<Class:Bar>::<Class:<Class:Bar>>", owner&.name)
177
177
  end
178
178
 
179
179
  def test_top_level_instance_variables
@@ -181,7 +181,7 @@ module RubyIndexer
181
181
  @a = 123
182
182
  RUBY
183
183
 
184
- entry = T.must(@index["@a"]&.first)
184
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
185
185
  assert_nil(entry.owner)
186
186
  end
187
187
 
@@ -194,10 +194,10 @@ module RubyIndexer
194
194
  end
195
195
  RUBY
196
196
 
197
- entry = T.must(@index["@a"]&.first)
198
- owner = T.must(entry.owner)
197
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
198
+ owner = entry.owner
199
199
  assert_instance_of(Entry::SingletonClass, owner)
200
- assert_equal("Foo::<Class:Foo>", owner.name)
200
+ assert_equal("Foo::<Class:Foo>", owner&.name)
201
201
  end
202
202
 
203
203
  def test_instance_variable_inside_dynamic_method_declaration
@@ -211,10 +211,10 @@ module RubyIndexer
211
211
 
212
212
  # If the surrounding method is being defined on any dynamic value that isn't `self`, then we attribute the
213
213
  # instance variable to the wrong owner since there's no way to understand that statically
214
- entry = T.must(@index["@a"]&.first)
215
- owner = T.must(entry.owner)
214
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
215
+ owner = entry.owner
216
216
  assert_instance_of(Entry::Class, owner)
217
- assert_equal("Foo", owner.name)
217
+ assert_equal("Foo", owner&.name)
218
218
  end
219
219
 
220
220
  def test_module_function_does_not_impact_instance_variables
@@ -231,10 +231,10 @@ module RubyIndexer
231
231
  end
232
232
  RUBY
233
233
 
234
- entry = T.must(@index["@a"]&.first)
235
- owner = T.must(entry.owner)
234
+ entry = @index["@a"]&.first #: as Entry::InstanceVariable
235
+ owner = entry.owner
236
236
  assert_instance_of(Entry::SingletonClass, owner)
237
- assert_equal("Foo::<Class:Foo>", owner.name)
237
+ assert_equal("Foo::<Class:Foo>", owner&.name)
238
238
  end
239
239
  end
240
240
  end