ruby-lsp 0.23.14 → 0.23.16
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/VERSION +1 -1
- data/exe/ruby-lsp-launcher +9 -1
- data/lib/ruby_indexer/lib/ruby_indexer/configuration.rb +2 -2
- data/lib/ruby_indexer/lib/ruby_indexer/declaration_listener.rb +6 -3
- data/lib/ruby_indexer/lib/ruby_indexer/entry.rb +4 -2
- data/lib/ruby_indexer/lib/ruby_indexer/index.rb +60 -30
- data/lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb +5 -4
- data/lib/ruby_indexer/lib/ruby_indexer/reference_finder.rb +5 -1
- data/lib/ruby_indexer/test/class_variables_test.rb +14 -14
- data/lib/ruby_indexer/test/classes_and_modules_test.rb +65 -40
- data/lib/ruby_indexer/test/configuration_test.rb +6 -4
- data/lib/ruby_indexer/test/constant_test.rb +34 -34
- data/lib/ruby_indexer/test/enhancements_test.rb +1 -1
- data/lib/ruby_indexer/test/index_test.rb +139 -135
- data/lib/ruby_indexer/test/instance_variables_test.rb +37 -37
- data/lib/ruby_indexer/test/method_test.rb +118 -118
- data/lib/ruby_indexer/test/prefix_tree_test.rb +13 -13
- data/lib/ruby_indexer/test/rbs_indexer_test.rb +64 -70
- data/lib/ruby_indexer/test/test_case.rb +2 -2
- data/lib/ruby_lsp/document.rb +6 -1
- data/lib/ruby_lsp/erb_document.rb +12 -4
- data/lib/ruby_lsp/global_state.rb +1 -1
- data/lib/ruby_lsp/listeners/code_lens.rb +3 -3
- data/lib/ruby_lsp/listeners/completion.rb +24 -11
- data/lib/ruby_lsp/listeners/definition.rb +1 -1
- data/lib/ruby_lsp/listeners/document_link.rb +3 -1
- data/lib/ruby_lsp/listeners/document_symbol.rb +3 -3
- data/lib/ruby_lsp/listeners/folding_ranges.rb +8 -4
- data/lib/ruby_lsp/listeners/hover.rb +2 -2
- data/lib/ruby_lsp/listeners/semantic_highlighting.rb +12 -5
- data/lib/ruby_lsp/listeners/signature_help.rb +5 -1
- data/lib/ruby_lsp/listeners/spec_style.rb +1 -1
- data/lib/ruby_lsp/listeners/test_style.rb +8 -8
- data/lib/ruby_lsp/requests/code_action_resolve.rb +14 -15
- data/lib/ruby_lsp/requests/completion_resolve.rb +1 -1
- data/lib/ruby_lsp/requests/hover.rb +2 -2
- data/lib/ruby_lsp/requests/on_type_formatting.rb +4 -2
- data/lib/ruby_lsp/requests/prepare_type_hierarchy.rb +1 -2
- data/lib/ruby_lsp/requests/references.rb +2 -1
- data/lib/ruby_lsp/requests/rename.rb +8 -5
- data/lib/ruby_lsp/requests/selection_ranges.rb +1 -1
- data/lib/ruby_lsp/requests/semantic_highlighting.rb +4 -4
- data/lib/ruby_lsp/requests/show_syntax_tree.rb +2 -2
- data/lib/ruby_lsp/requests/support/common.rb +3 -1
- data/lib/ruby_lsp/requests/support/rubocop_formatter.rb +2 -2
- data/lib/ruby_lsp/requests/support/source_uri.rb +5 -3
- data/lib/ruby_lsp/response_builders/document_symbol.rb +3 -2
- data/lib/ruby_lsp/response_builders/hover.rb +1 -1
- data/lib/ruby_lsp/response_builders/semantic_highlighting.rb +1 -1
- data/lib/ruby_lsp/ruby_document.rb +2 -2
- data/lib/ruby_lsp/scripts/compose_bundle.rb +6 -4
- data/lib/ruby_lsp/server.rb +14 -5
- data/lib/ruby_lsp/setup_bundler.rb +7 -3
- data/lib/ruby_lsp/static_docs.rb +8 -1
- data/lib/ruby_lsp/store.rb +3 -2
- data/lib/ruby_lsp/test_reporters/lsp_reporter.rb +164 -0
- data/lib/ruby_lsp/test_reporters/minitest_reporter.rb +105 -0
- data/lib/ruby_lsp/test_reporters/test_unit_reporter.rb +94 -0
- data/lib/ruby_lsp/type_inferrer.rb +4 -1
- data/lib/ruby_lsp/utils.rb +12 -2
- metadata +6 -6
- data/lib/ruby_lsp/ruby_lsp_reporter_plugin.rb +0 -109
- data/lib/ruby_lsp/test_reporter.rb +0 -207
- 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 =  | 
| 23 | 
            -
                  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 | 
| 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 =  | 
| 55 | 
            -
                  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 | 
| 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 =  | 
| 75 | 
            -
                  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 | 
| 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 =  | 
| 95 | 
            -
                  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 | 
| 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 =  | 
| 116 | 
            -
                  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 | 
| 118 | 
            +
                  assert_equal("Foo::Bar", owner&.name)
         | 
| 119 119 |  | 
| 120 | 
            -
                  entry =  | 
| 121 | 
            -
                  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 | 
| 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 =  | 
| 160 | 
            -
                  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 | 
| 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 =  | 
| 167 | 
            -
                  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 | 
| 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 =  | 
| 174 | 
            -
                  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 | 
| 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 =  | 
| 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 =  | 
| 198 | 
            -
                  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 | 
| 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 =  | 
| 215 | 
            -
                  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 | 
| 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 =  | 
| 235 | 
            -
                  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 | 
| 237 | 
            +
                  assert_equal("Foo::<Class:Foo>", owner&.name)
         | 
| 238 238 | 
             
                end
         | 
| 239 239 | 
             
              end
         | 
| 240 240 | 
             
            end
         |