ruby-lsp 0.23.11 → 0.23.17
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 +20 -11
- data/lib/rubocop/cop/ruby_lsp/use_language_server_aliases.rb +1 -1
- data/lib/rubocop/cop/ruby_lsp/use_register_with_handler_method.rb +3 -5
- data/lib/ruby_indexer/lib/ruby_indexer/configuration.rb +82 -116
- data/lib/ruby_indexer/lib/ruby_indexer/declaration_listener.rb +134 -183
- data/lib/ruby_indexer/lib/ruby_indexer/enhancement.rb +9 -10
- data/lib/ruby_indexer/lib/ruby_indexer/entry.rb +97 -217
- data/lib/ruby_indexer/lib/ruby_indexer/index.rb +139 -281
- data/lib/ruby_indexer/lib/ruby_indexer/location.rb +4 -27
- data/lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb +18 -19
- data/lib/ruby_indexer/lib/ruby_indexer/rbs_indexer.rb +23 -55
- data/lib/ruby_indexer/lib/ruby_indexer/reference_finder.rb +47 -61
- data/lib/ruby_indexer/lib/ruby_indexer/uri.rb +17 -19
- data/lib/ruby_indexer/lib/ruby_indexer/visibility_scope.rb +7 -11
- 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 +48 -7
- 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 +146 -135
- data/lib/ruby_indexer/test/instance_variables_test.rb +37 -37
- data/lib/ruby_indexer/test/method_test.rb +149 -123
- data/lib/ruby_indexer/test/prefix_tree_test.rb +13 -13
- data/lib/ruby_indexer/test/rbs_indexer_test.rb +68 -73
- data/lib/ruby_indexer/test/test_case.rb +9 -3
- data/lib/ruby_indexer/test/uri_test.rb +15 -2
- data/lib/ruby_lsp/addon.rb +44 -71
- data/lib/ruby_lsp/base_server.rb +29 -32
- data/lib/ruby_lsp/client_capabilities.rb +10 -12
- data/lib/ruby_lsp/document.rb +40 -54
- data/lib/ruby_lsp/erb_document.rb +37 -41
- data/lib/ruby_lsp/global_state.rb +52 -57
- data/lib/ruby_lsp/internal.rb +2 -0
- data/lib/ruby_lsp/listeners/code_lens.rb +82 -89
- data/lib/ruby_lsp/listeners/completion.rb +67 -73
- data/lib/ruby_lsp/listeners/definition.rb +44 -58
- data/lib/ruby_lsp/listeners/document_highlight.rb +123 -150
- data/lib/ruby_lsp/listeners/document_link.rb +50 -70
- data/lib/ruby_lsp/listeners/document_symbol.rb +38 -52
- data/lib/ruby_lsp/listeners/folding_ranges.rb +40 -43
- data/lib/ruby_lsp/listeners/hover.rb +92 -110
- data/lib/ruby_lsp/listeners/inlay_hints.rb +4 -11
- data/lib/ruby_lsp/listeners/semantic_highlighting.rb +54 -56
- data/lib/ruby_lsp/listeners/signature_help.rb +12 -27
- data/lib/ruby_lsp/listeners/spec_style.rb +155 -0
- data/lib/ruby_lsp/listeners/test_discovery.rb +89 -0
- data/lib/ruby_lsp/listeners/test_style.rb +167 -90
- data/lib/ruby_lsp/node_context.rb +12 -39
- data/lib/ruby_lsp/rbs_document.rb +9 -7
- data/lib/ruby_lsp/requests/code_action_resolve.rb +63 -59
- data/lib/ruby_lsp/requests/code_actions.rb +14 -26
- data/lib/ruby_lsp/requests/code_lens.rb +20 -19
- data/lib/ruby_lsp/requests/completion.rb +7 -20
- data/lib/ruby_lsp/requests/completion_resolve.rb +6 -6
- data/lib/ruby_lsp/requests/definition.rb +7 -17
- data/lib/ruby_lsp/requests/diagnostics.rb +8 -11
- data/lib/ruby_lsp/requests/discover_tests.rb +18 -5
- data/lib/ruby_lsp/requests/document_highlight.rb +5 -15
- data/lib/ruby_lsp/requests/document_link.rb +6 -17
- data/lib/ruby_lsp/requests/document_symbol.rb +5 -8
- data/lib/ruby_lsp/requests/folding_ranges.rb +7 -15
- data/lib/ruby_lsp/requests/formatting.rb +6 -9
- data/lib/ruby_lsp/requests/go_to_relevant_file.rb +85 -0
- data/lib/ruby_lsp/requests/hover.rb +10 -20
- data/lib/ruby_lsp/requests/inlay_hints.rb +6 -17
- data/lib/ruby_lsp/requests/on_type_formatting.rb +32 -40
- data/lib/ruby_lsp/requests/prepare_rename.rb +4 -9
- data/lib/ruby_lsp/requests/prepare_type_hierarchy.rb +5 -15
- data/lib/ruby_lsp/requests/range_formatting.rb +5 -6
- data/lib/ruby_lsp/requests/references.rb +9 -53
- data/lib/ruby_lsp/requests/rename.rb +20 -46
- data/lib/ruby_lsp/requests/request.rb +8 -19
- data/lib/ruby_lsp/requests/selection_ranges.rb +6 -6
- data/lib/ruby_lsp/requests/semantic_highlighting.rb +16 -35
- data/lib/ruby_lsp/requests/show_syntax_tree.rb +7 -8
- data/lib/ruby_lsp/requests/signature_help.rb +8 -26
- data/lib/ruby_lsp/requests/support/annotation.rb +4 -10
- data/lib/ruby_lsp/requests/support/common.rb +15 -55
- data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +27 -35
- data/lib/ruby_lsp/requests/support/rubocop_formatter.rb +11 -14
- data/lib/ruby_lsp/requests/support/rubocop_runner.rb +22 -34
- data/lib/ruby_lsp/requests/support/selection_range.rb +1 -3
- data/lib/ruby_lsp/requests/support/sorbet.rb +29 -38
- data/lib/ruby_lsp/requests/support/source_uri.rb +20 -32
- data/lib/ruby_lsp/requests/support/syntax_tree_formatter.rb +12 -19
- data/lib/ruby_lsp/requests/support/test_item.rb +16 -14
- data/lib/ruby_lsp/requests/type_hierarchy_supertypes.rb +5 -6
- data/lib/ruby_lsp/requests/workspace_symbol.rb +4 -4
- data/lib/ruby_lsp/response_builders/collection_response_builder.rb +5 -5
- data/lib/ruby_lsp/response_builders/document_symbol.rb +14 -19
- data/lib/ruby_lsp/response_builders/hover.rb +11 -14
- data/lib/ruby_lsp/response_builders/response_builder.rb +1 -1
- data/lib/ruby_lsp/response_builders/semantic_highlighting.rb +60 -88
- data/lib/ruby_lsp/response_builders/signature_help.rb +5 -6
- data/lib/ruby_lsp/response_builders/test_collection.rb +43 -10
- data/lib/ruby_lsp/ruby_document.rb +24 -92
- data/lib/ruby_lsp/scope.rb +7 -11
- data/lib/ruby_lsp/scripts/compose_bundle.rb +6 -4
- data/lib/ruby_lsp/server.rb +182 -99
- data/lib/ruby_lsp/setup_bundler.rb +65 -60
- data/lib/ruby_lsp/static_docs.rb +11 -7
- data/lib/ruby_lsp/store.rb +29 -47
- data/lib/ruby_lsp/test_helper.rb +2 -12
- data/lib/ruby_lsp/test_reporters/lsp_reporter.rb +191 -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 +13 -14
- data/lib/ruby_lsp/utils.rb +92 -83
- metadata +9 -3
@@ -3,35 +3,28 @@
|
|
3
3
|
|
4
4
|
module RubyLsp
|
5
5
|
class ERBDocument < Document
|
6
|
-
extend T::Sig
|
7
6
|
extend T::Generic
|
8
7
|
|
9
8
|
ParseResultType = type_member { { fixed: Prism::ParseResult } }
|
10
9
|
|
11
|
-
|
10
|
+
#: String
|
12
11
|
attr_reader :host_language_source
|
13
12
|
|
14
|
-
|
15
|
-
returns(T.any(
|
16
|
-
T.proc.params(arg0: Integer).returns(Integer),
|
17
|
-
Prism::CodeUnitsCache,
|
18
|
-
))
|
19
|
-
end
|
13
|
+
#: (^(Integer arg0) -> Integer | Prism::CodeUnitsCache)
|
20
14
|
attr_reader :code_units_cache
|
21
15
|
|
22
|
-
|
16
|
+
#: (source: String, version: Integer, uri: URI::Generic, global_state: GlobalState) -> void
|
23
17
|
def initialize(source:, version:, uri:, global_state:)
|
24
18
|
# This has to be initialized before calling super because we call `parse` in the parent constructor, which
|
25
19
|
# overrides this with the proper virtual host language source
|
26
|
-
@host_language_source =
|
20
|
+
@host_language_source = "" #: String
|
27
21
|
super
|
28
|
-
@code_units_cache =
|
29
|
-
|
30
|
-
Prism::CodeUnitsCache,
|
31
|
-
))
|
22
|
+
@code_units_cache =
|
23
|
+
@parse_result.code_units_cache(@encoding) #: (^(Integer arg0) -> Integer | Prism::CodeUnitsCache)
|
32
24
|
end
|
33
25
|
|
34
|
-
|
26
|
+
# @override
|
27
|
+
#: -> bool
|
35
28
|
def parse!
|
36
29
|
return false unless @needs_parsing
|
37
30
|
|
@@ -46,22 +39,19 @@ module RubyLsp
|
|
46
39
|
true
|
47
40
|
end
|
48
41
|
|
49
|
-
|
42
|
+
# @override
|
43
|
+
#: -> bool
|
50
44
|
def syntax_error?
|
51
45
|
@parse_result.failure?
|
52
46
|
end
|
53
47
|
|
54
|
-
|
48
|
+
# @override
|
49
|
+
#: -> Symbol
|
55
50
|
def language_id
|
56
|
-
|
51
|
+
:erb
|
57
52
|
end
|
58
53
|
|
59
|
-
|
60
|
-
params(
|
61
|
-
position: T::Hash[Symbol, T.untyped],
|
62
|
-
node_types: T::Array[T.class_of(Prism::Node)],
|
63
|
-
).returns(NodeContext)
|
64
|
-
end
|
54
|
+
#: (Hash[Symbol, untyped] position, ?node_types: Array[singleton(Prism::Node)]) -> NodeContext
|
65
55
|
def locate_node(position, node_types: [])
|
66
56
|
char_position, _ = find_index_by_position(position)
|
67
57
|
|
@@ -73,28 +63,26 @@ module RubyLsp
|
|
73
63
|
)
|
74
64
|
end
|
75
65
|
|
76
|
-
|
66
|
+
#: (Integer char_position) -> bool?
|
77
67
|
def inside_host_language?(char_position)
|
78
68
|
char = @host_language_source[char_position]
|
79
69
|
char && char != " "
|
80
70
|
end
|
81
71
|
|
82
72
|
class ERBScanner
|
83
|
-
|
84
|
-
|
85
|
-
sig { returns(String) }
|
73
|
+
#: String
|
86
74
|
attr_reader :ruby, :host_language
|
87
75
|
|
88
|
-
|
76
|
+
#: (String source) -> void
|
89
77
|
def initialize(source)
|
90
78
|
@source = source
|
91
|
-
@host_language =
|
92
|
-
@ruby =
|
93
|
-
@current_pos =
|
94
|
-
@inside_ruby =
|
79
|
+
@host_language = +"" #: String
|
80
|
+
@ruby = +"" #: String
|
81
|
+
@current_pos = 0 #: Integer
|
82
|
+
@inside_ruby = false #: bool
|
95
83
|
end
|
96
84
|
|
97
|
-
|
85
|
+
#: -> void
|
98
86
|
def scan
|
99
87
|
while @current_pos < @source.length
|
100
88
|
scan_char
|
@@ -104,7 +92,7 @@ module RubyLsp
|
|
104
92
|
|
105
93
|
private
|
106
94
|
|
107
|
-
|
95
|
+
#: -> void
|
108
96
|
def scan_char
|
109
97
|
char = @source[@current_pos]
|
110
98
|
|
@@ -123,7 +111,9 @@ module RubyLsp
|
|
123
111
|
push_char(" ")
|
124
112
|
end
|
125
113
|
else
|
126
|
-
push_char(
|
114
|
+
push_char(
|
115
|
+
char, #: as !nil
|
116
|
+
)
|
127
117
|
end
|
128
118
|
when "-"
|
129
119
|
if @inside_ruby && next_char == "%" &&
|
@@ -132,7 +122,9 @@ module RubyLsp
|
|
132
122
|
push_char(" ")
|
133
123
|
@inside_ruby = false
|
134
124
|
else
|
135
|
-
push_char(
|
125
|
+
push_char(
|
126
|
+
char, #: as !nil
|
127
|
+
)
|
136
128
|
end
|
137
129
|
when "%"
|
138
130
|
if @inside_ruby && next_char == ">"
|
@@ -140,7 +132,9 @@ module RubyLsp
|
|
140
132
|
@current_pos += 1
|
141
133
|
push_char(" ")
|
142
134
|
else
|
143
|
-
push_char(
|
135
|
+
push_char(
|
136
|
+
char, #: as !nil
|
137
|
+
)
|
144
138
|
end
|
145
139
|
when "\r"
|
146
140
|
@ruby << char
|
@@ -155,11 +149,13 @@ module RubyLsp
|
|
155
149
|
@ruby << char
|
156
150
|
@host_language << char
|
157
151
|
else
|
158
|
-
push_char(
|
152
|
+
push_char(
|
153
|
+
char, #: as !nil
|
154
|
+
)
|
159
155
|
end
|
160
156
|
end
|
161
157
|
|
162
|
-
|
158
|
+
#: (String char) -> void
|
163
159
|
def push_char(char)
|
164
160
|
if @inside_ruby
|
165
161
|
@ruby << char
|
@@ -170,7 +166,7 @@ module RubyLsp
|
|
170
166
|
end
|
171
167
|
end
|
172
168
|
|
173
|
-
|
169
|
+
#: -> String
|
174
170
|
def next_char
|
175
171
|
@source[@current_pos + 1] || ""
|
176
172
|
end
|
@@ -3,93 +3,88 @@
|
|
3
3
|
|
4
4
|
module RubyLsp
|
5
5
|
class GlobalState
|
6
|
-
|
7
|
-
|
8
|
-
sig { returns(String) }
|
6
|
+
#: String
|
9
7
|
attr_reader :test_library
|
10
8
|
|
11
|
-
|
9
|
+
#: String
|
12
10
|
attr_accessor :formatter
|
13
11
|
|
14
|
-
|
12
|
+
#: bool
|
15
13
|
attr_reader :has_type_checker
|
16
14
|
|
17
|
-
|
15
|
+
#: RubyIndexer::Index
|
18
16
|
attr_reader :index
|
19
17
|
|
20
|
-
|
18
|
+
#: Encoding
|
21
19
|
attr_reader :encoding
|
22
20
|
|
23
|
-
|
21
|
+
#: bool
|
24
22
|
attr_reader :top_level_bundle
|
25
23
|
|
26
|
-
|
24
|
+
#: TypeInferrer
|
27
25
|
attr_reader :type_inferrer
|
28
26
|
|
29
|
-
|
27
|
+
#: ClientCapabilities
|
30
28
|
attr_reader :client_capabilities
|
31
29
|
|
32
|
-
|
30
|
+
#: URI::Generic
|
33
31
|
attr_reader :workspace_uri
|
34
32
|
|
35
|
-
|
33
|
+
#: String?
|
36
34
|
attr_reader :telemetry_machine_id
|
37
35
|
|
38
|
-
|
36
|
+
#: -> void
|
39
37
|
def initialize
|
40
|
-
@workspace_uri =
|
41
|
-
@encoding =
|
42
|
-
|
43
|
-
@formatter =
|
44
|
-
@linters =
|
45
|
-
@test_library =
|
46
|
-
@has_type_checker =
|
47
|
-
@index =
|
48
|
-
@supported_formatters =
|
49
|
-
@type_inferrer =
|
50
|
-
@addon_settings =
|
51
|
-
@top_level_bundle =
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
@
|
61
|
-
@enabled_feature_flags = T.let({}, T::Hash[Symbol, T::Boolean])
|
62
|
-
@mutex = T.let(Mutex.new, Mutex)
|
63
|
-
@telemetry_machine_id = T.let(nil, T.nilable(String))
|
38
|
+
@workspace_uri = URI::Generic.from_path(path: Dir.pwd) #: URI::Generic
|
39
|
+
@encoding = Encoding::UTF_8 #: Encoding
|
40
|
+
|
41
|
+
@formatter = "auto" #: String
|
42
|
+
@linters = [] #: Array[String]
|
43
|
+
@test_library = "minitest" #: String
|
44
|
+
@has_type_checker = true #: bool
|
45
|
+
@index = RubyIndexer::Index.new #: RubyIndexer::Index
|
46
|
+
@supported_formatters = {} #: Hash[String, Requests::Support::Formatter]
|
47
|
+
@type_inferrer = TypeInferrer.new(@index) #: TypeInferrer
|
48
|
+
@addon_settings = {} #: Hash[String, untyped]
|
49
|
+
@top_level_bundle = begin
|
50
|
+
Bundler.with_original_env { Bundler.default_gemfile }
|
51
|
+
true
|
52
|
+
rescue Bundler::GemfileNotFound, Bundler::GitError
|
53
|
+
false
|
54
|
+
end #: bool
|
55
|
+
@client_capabilities = ClientCapabilities.new #: ClientCapabilities
|
56
|
+
@enabled_feature_flags = {} #: Hash[Symbol, bool]
|
57
|
+
@mutex = Mutex.new #: Mutex
|
58
|
+
@telemetry_machine_id = nil #: String?
|
64
59
|
end
|
65
60
|
|
66
|
-
|
61
|
+
#: [T] { -> T } -> T
|
67
62
|
def synchronize(&block)
|
68
63
|
@mutex.synchronize(&block)
|
69
64
|
end
|
70
65
|
|
71
|
-
|
66
|
+
#: (String addon_name) -> Hash[Symbol, untyped]?
|
72
67
|
def settings_for_addon(addon_name)
|
73
68
|
@addon_settings[addon_name]
|
74
69
|
end
|
75
70
|
|
76
|
-
|
71
|
+
#: (String identifier, Requests::Support::Formatter instance) -> void
|
77
72
|
def register_formatter(identifier, instance)
|
78
73
|
@supported_formatters[identifier] = instance
|
79
74
|
end
|
80
75
|
|
81
|
-
|
76
|
+
#: -> Requests::Support::Formatter?
|
82
77
|
def active_formatter
|
83
78
|
@supported_formatters[@formatter]
|
84
79
|
end
|
85
80
|
|
86
|
-
|
81
|
+
#: -> Array[Requests::Support::Formatter]
|
87
82
|
def active_linters
|
88
83
|
@linters.filter_map { |name| @supported_formatters[name] }
|
89
84
|
end
|
90
85
|
|
91
86
|
# Applies the options provided by the editor and returns an array of notifications to send back to the client
|
92
|
-
|
87
|
+
#: (Hash[Symbol, untyped] options) -> Array[Notification]
|
93
88
|
def apply_options(options)
|
94
89
|
notifications = []
|
95
90
|
direct_dependencies = gather_direct_dependencies
|
@@ -183,17 +178,17 @@ module RubyLsp
|
|
183
178
|
notifications
|
184
179
|
end
|
185
180
|
|
186
|
-
|
181
|
+
#: (Symbol flag) -> bool?
|
187
182
|
def enabled_feature?(flag)
|
188
183
|
@enabled_feature_flags[:all] || @enabled_feature_flags[flag]
|
189
184
|
end
|
190
185
|
|
191
|
-
|
186
|
+
#: -> String
|
192
187
|
def workspace_path
|
193
|
-
|
188
|
+
@workspace_uri.to_standardized_path #: as !nil
|
194
189
|
end
|
195
190
|
|
196
|
-
|
191
|
+
#: -> String
|
197
192
|
def encoding_name
|
198
193
|
case @encoding
|
199
194
|
when Encoding::UTF_8
|
@@ -205,14 +200,14 @@ module RubyLsp
|
|
205
200
|
end
|
206
201
|
end
|
207
202
|
|
208
|
-
|
203
|
+
#: -> bool
|
209
204
|
def supports_watching_files
|
210
205
|
@client_capabilities.supports_watching_files
|
211
206
|
end
|
212
207
|
|
213
208
|
private
|
214
209
|
|
215
|
-
|
210
|
+
#: (Array[String] direct_dependencies, Array[String] all_dependencies) -> String
|
216
211
|
def detect_formatter(direct_dependencies, all_dependencies)
|
217
212
|
# NOTE: Intentionally no $ at end, since we want to match rubocop-shopify, etc.
|
218
213
|
return "rubocop_internal" if direct_dependencies.any?(/^rubocop/)
|
@@ -228,7 +223,7 @@ module RubyLsp
|
|
228
223
|
|
229
224
|
# Try to detect if there are linters in the project's dependencies. For auto-detection, we always only consider a
|
230
225
|
# single linter. To have multiple linters running, the user must configure them manually
|
231
|
-
|
226
|
+
#: (Array[String] dependencies, Array[String] all_dependencies) -> Array[String]
|
232
227
|
def detect_linters(dependencies, all_dependencies)
|
233
228
|
linters = []
|
234
229
|
|
@@ -239,7 +234,7 @@ module RubyLsp
|
|
239
234
|
linters
|
240
235
|
end
|
241
236
|
|
242
|
-
|
237
|
+
#: (Array[String] dependencies) -> String
|
243
238
|
def detect_test_library(dependencies)
|
244
239
|
if dependencies.any?(/^rspec/)
|
245
240
|
"rspec"
|
@@ -259,7 +254,7 @@ module RubyLsp
|
|
259
254
|
end
|
260
255
|
end
|
261
256
|
|
262
|
-
|
257
|
+
#: (Array[String] dependencies) -> bool
|
263
258
|
def detect_typechecker(dependencies)
|
264
259
|
return false if ENV["RUBY_LSP_BYPASS_TYPECHECKER"]
|
265
260
|
|
@@ -268,17 +263,17 @@ module RubyLsp
|
|
268
263
|
false
|
269
264
|
end
|
270
265
|
|
271
|
-
|
266
|
+
#: -> bool
|
272
267
|
def bin_rails_present
|
273
268
|
File.exist?(File.join(workspace_path, "bin/rails"))
|
274
269
|
end
|
275
270
|
|
276
|
-
|
271
|
+
#: -> bool
|
277
272
|
def dot_rubocop_yml_present
|
278
273
|
File.exist?(File.join(workspace_path, ".rubocop.yml"))
|
279
274
|
end
|
280
275
|
|
281
|
-
|
276
|
+
#: -> Array[String]
|
282
277
|
def gather_direct_dependencies
|
283
278
|
Bundler.with_original_env { Bundler.default_gemfile }
|
284
279
|
|
@@ -288,14 +283,14 @@ module RubyLsp
|
|
288
283
|
[]
|
289
284
|
end
|
290
285
|
|
291
|
-
|
286
|
+
#: -> Array[String]
|
292
287
|
def gemspec_dependencies
|
293
288
|
(Bundler.locked_gems&.sources || [])
|
294
289
|
.grep(Bundler::Source::Gemspec)
|
295
290
|
.flat_map { _1.gemspec&.dependencies&.map(&:name) }
|
296
291
|
end
|
297
292
|
|
298
|
-
|
293
|
+
#: -> Array[String]
|
299
294
|
def gather_direct_and_indirect_dependencies
|
300
295
|
Bundler.with_original_env { Bundler.default_gemfile }
|
301
296
|
Bundler.locked_gems&.specs&.map(&:name) || []
|
data/lib/ruby_lsp/internal.rb
CHANGED
@@ -25,6 +25,7 @@ require "fileutils"
|
|
25
25
|
require "open3"
|
26
26
|
require "securerandom"
|
27
27
|
require "shellwords"
|
28
|
+
require "set"
|
28
29
|
|
29
30
|
require "ruby-lsp"
|
30
31
|
require "ruby_lsp/base_server"
|
@@ -79,6 +80,7 @@ require "ruby_lsp/requests/document_link"
|
|
79
80
|
require "ruby_lsp/requests/document_symbol"
|
80
81
|
require "ruby_lsp/requests/folding_ranges"
|
81
82
|
require "ruby_lsp/requests/formatting"
|
83
|
+
require "ruby_lsp/requests/go_to_relevant_file"
|
82
84
|
require "ruby_lsp/requests/hover"
|
83
85
|
require "ruby_lsp/requests/inlay_hints"
|
84
86
|
require "ruby_lsp/requests/on_type_formatting"
|