ruby-lsp 0.23.10 → 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 +74 -183
- data/lib/ruby_indexer/lib/ruby_indexer/index.rb +55 -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/classes_and_modules_test.rb +75 -0
- data/lib/ruby_indexer/test/configuration_test.rb +32 -2
- data/lib/ruby_indexer/test/index_test.rb +21 -0
- 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 +12 -11
- 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 +6 -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 +270 -0
- 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 +74 -0
- 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 -47
- 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 +60 -0
- 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 +34 -0
- 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 +169 -72
- data/lib/ruby_lsp/setup_bundler.rb +25 -17
- 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 +12 -3
data/lib/ruby_lsp/utils.rb
CHANGED
@@ -44,15 +44,15 @@ module RubyLsp
|
|
44
44
|
extend T::Sig
|
45
45
|
extend T::Helpers
|
46
46
|
|
47
|
-
|
47
|
+
#: String
|
48
48
|
attr_reader :method
|
49
49
|
|
50
|
-
|
50
|
+
#: Object
|
51
51
|
attr_reader :params
|
52
52
|
|
53
53
|
abstract!
|
54
54
|
|
55
|
-
|
55
|
+
#: (method: String, params: Object) -> void
|
56
56
|
def initialize(method:, params:)
|
57
57
|
@method = method
|
58
58
|
@params = params
|
@@ -64,9 +64,7 @@ module RubyLsp
|
|
64
64
|
|
65
65
|
class Notification < Message
|
66
66
|
class << self
|
67
|
-
|
68
|
-
|
69
|
-
sig { params(message: String, type: Integer).returns(Notification) }
|
67
|
+
#: (String message, ?type: Integer) -> Notification
|
70
68
|
def window_show_message(message, type: Constant::MessageType::INFO)
|
71
69
|
new(
|
72
70
|
method: "window/showMessage",
|
@@ -74,7 +72,7 @@ module RubyLsp
|
|
74
72
|
)
|
75
73
|
end
|
76
74
|
|
77
|
-
|
75
|
+
#: (String message, ?type: Integer) -> Notification
|
78
76
|
def window_log_message(message, type: Constant::MessageType::LOG)
|
79
77
|
new(
|
80
78
|
method: "window/logMessage",
|
@@ -82,7 +80,7 @@ module RubyLsp
|
|
82
80
|
)
|
83
81
|
end
|
84
82
|
|
85
|
-
|
83
|
+
#: (Hash[Symbol, untyped] data) -> Notification
|
86
84
|
def telemetry(data)
|
87
85
|
new(
|
88
86
|
method: "telemetry/event",
|
@@ -90,14 +88,7 @@ module RubyLsp
|
|
90
88
|
)
|
91
89
|
end
|
92
90
|
|
93
|
-
|
94
|
-
params(
|
95
|
-
id: String,
|
96
|
-
title: String,
|
97
|
-
percentage: T.nilable(Integer),
|
98
|
-
message: T.nilable(String),
|
99
|
-
).returns(Notification)
|
100
|
-
end
|
91
|
+
#: (String id, String title, ?percentage: Integer?, ?message: String?) -> Notification
|
101
92
|
def progress_begin(id, title, percentage: nil, message: nil)
|
102
93
|
new(
|
103
94
|
method: "$/progress",
|
@@ -113,13 +104,7 @@ module RubyLsp
|
|
113
104
|
)
|
114
105
|
end
|
115
106
|
|
116
|
-
|
117
|
-
params(
|
118
|
-
id: String,
|
119
|
-
percentage: T.nilable(Integer),
|
120
|
-
message: T.nilable(String),
|
121
|
-
).returns(Notification)
|
122
|
-
end
|
107
|
+
#: (String id, ?percentage: Integer?, ?message: String?) -> Notification
|
123
108
|
def progress_report(id, percentage: nil, message: nil)
|
124
109
|
new(
|
125
110
|
method: "$/progress",
|
@@ -134,7 +119,7 @@ module RubyLsp
|
|
134
119
|
)
|
135
120
|
end
|
136
121
|
|
137
|
-
|
122
|
+
#: (String id) -> Notification
|
138
123
|
def progress_end(id)
|
139
124
|
Notification.new(
|
140
125
|
method: "$/progress",
|
@@ -145,13 +130,7 @@ module RubyLsp
|
|
145
130
|
)
|
146
131
|
end
|
147
132
|
|
148
|
-
|
149
|
-
params(
|
150
|
-
uri: String,
|
151
|
-
diagnostics: T::Array[Interface::Diagnostic],
|
152
|
-
version: T.nilable(Integer),
|
153
|
-
).returns(Notification)
|
154
|
-
end
|
133
|
+
#: (String uri, Array[Interface::Diagnostic] diagnostics, ?version: Integer?) -> Notification
|
155
134
|
def publish_diagnostics(uri, diagnostics, version: nil)
|
156
135
|
new(
|
157
136
|
method: "textDocument/publishDiagnostics",
|
@@ -160,9 +139,8 @@ module RubyLsp
|
|
160
139
|
end
|
161
140
|
end
|
162
141
|
|
163
|
-
|
164
|
-
|
165
|
-
sig { override.returns(T::Hash[Symbol, T.untyped]) }
|
142
|
+
# @override
|
143
|
+
#: -> Hash[Symbol, untyped]
|
166
144
|
def to_hash
|
167
145
|
hash = { method: @method }
|
168
146
|
hash[:params] = T.unsafe(@params).to_hash if @params
|
@@ -171,19 +149,8 @@ module RubyLsp
|
|
171
149
|
end
|
172
150
|
|
173
151
|
class Request < Message
|
174
|
-
extend T::Sig
|
175
|
-
|
176
152
|
class << self
|
177
|
-
|
178
|
-
|
179
|
-
sig do
|
180
|
-
params(
|
181
|
-
id: Integer,
|
182
|
-
pattern: T.any(Interface::RelativePattern, String),
|
183
|
-
kind: Integer,
|
184
|
-
registration_id: T.nilable(String),
|
185
|
-
).returns(Request)
|
186
|
-
end
|
153
|
+
#: (Integer id, (Interface::RelativePattern | String) pattern, ?kind: Integer, ?registration_id: String?) -> Request
|
187
154
|
def register_watched_files(
|
188
155
|
id,
|
189
156
|
pattern,
|
@@ -210,13 +177,14 @@ module RubyLsp
|
|
210
177
|
end
|
211
178
|
end
|
212
179
|
|
213
|
-
|
180
|
+
#: (id: (Integer | String), method: String, params: Object) -> void
|
214
181
|
def initialize(id:, method:, params:)
|
215
182
|
@id = id
|
216
183
|
super(method: method, params: params)
|
217
184
|
end
|
218
185
|
|
219
|
-
|
186
|
+
# @override
|
187
|
+
#: -> Hash[Symbol, untyped]
|
220
188
|
def to_hash
|
221
189
|
hash = { id: @id, method: @method }
|
222
190
|
hash[:params] = T.unsafe(@params).to_hash if @params
|
@@ -225,15 +193,13 @@ module RubyLsp
|
|
225
193
|
end
|
226
194
|
|
227
195
|
class Error
|
228
|
-
|
229
|
-
|
230
|
-
sig { returns(String) }
|
196
|
+
#: String
|
231
197
|
attr_reader :message
|
232
198
|
|
233
|
-
|
199
|
+
#: Integer
|
234
200
|
attr_reader :code
|
235
201
|
|
236
|
-
|
202
|
+
#: (id: Integer, code: Integer, message: String, ?data: Hash[Symbol, untyped]?) -> void
|
237
203
|
def initialize(id:, code:, message:, data: nil)
|
238
204
|
@id = id
|
239
205
|
@code = code
|
@@ -241,7 +207,7 @@ module RubyLsp
|
|
241
207
|
@data = data
|
242
208
|
end
|
243
209
|
|
244
|
-
|
210
|
+
#: -> Hash[Symbol, untyped]
|
245
211
|
def to_hash
|
246
212
|
{
|
247
213
|
id: @id,
|
@@ -256,21 +222,19 @@ module RubyLsp
|
|
256
222
|
|
257
223
|
# The final result of running a request before its IO is finalized
|
258
224
|
class Result
|
259
|
-
|
260
|
-
|
261
|
-
sig { returns(T.untyped) }
|
225
|
+
#: untyped
|
262
226
|
attr_reader :response
|
263
227
|
|
264
|
-
|
228
|
+
#: Integer
|
265
229
|
attr_reader :id
|
266
230
|
|
267
|
-
|
231
|
+
#: (id: Integer, response: untyped) -> void
|
268
232
|
def initialize(id:, response:)
|
269
233
|
@id = id
|
270
234
|
@response = response
|
271
235
|
end
|
272
236
|
|
273
|
-
|
237
|
+
#: -> Hash[Symbol, untyped]
|
274
238
|
def to_hash
|
275
239
|
{ id: @id, result: @response }
|
276
240
|
end
|
@@ -278,17 +242,15 @@ module RubyLsp
|
|
278
242
|
|
279
243
|
# A request configuration, to turn on/off features
|
280
244
|
class RequestConfig
|
281
|
-
|
282
|
-
|
283
|
-
sig { returns(T::Hash[Symbol, T::Boolean]) }
|
245
|
+
#: Hash[Symbol, bool]
|
284
246
|
attr_accessor :configuration
|
285
247
|
|
286
|
-
|
248
|
+
#: (Hash[Symbol, bool] configuration) -> void
|
287
249
|
def initialize(configuration)
|
288
250
|
@configuration = configuration
|
289
251
|
end
|
290
252
|
|
291
|
-
|
253
|
+
#: (Symbol feature) -> bool?
|
292
254
|
def enabled?(feature)
|
293
255
|
@configuration[:enableAll] || @configuration[feature]
|
294
256
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lsp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.23.
|
4
|
+
version: 0.23.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-03-18 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: language_server-protocol
|
@@ -140,6 +140,8 @@ files:
|
|
140
140
|
- lib/ruby_lsp/listeners/inlay_hints.rb
|
141
141
|
- lib/ruby_lsp/listeners/semantic_highlighting.rb
|
142
142
|
- lib/ruby_lsp/listeners/signature_help.rb
|
143
|
+
- lib/ruby_lsp/listeners/spec_style.rb
|
144
|
+
- lib/ruby_lsp/listeners/test_style.rb
|
143
145
|
- lib/ruby_lsp/load_sorbet.rb
|
144
146
|
- lib/ruby_lsp/node_context.rb
|
145
147
|
- lib/ruby_lsp/rbs_document.rb
|
@@ -150,11 +152,13 @@ files:
|
|
150
152
|
- lib/ruby_lsp/requests/completion_resolve.rb
|
151
153
|
- lib/ruby_lsp/requests/definition.rb
|
152
154
|
- lib/ruby_lsp/requests/diagnostics.rb
|
155
|
+
- lib/ruby_lsp/requests/discover_tests.rb
|
153
156
|
- lib/ruby_lsp/requests/document_highlight.rb
|
154
157
|
- lib/ruby_lsp/requests/document_link.rb
|
155
158
|
- lib/ruby_lsp/requests/document_symbol.rb
|
156
159
|
- lib/ruby_lsp/requests/folding_ranges.rb
|
157
160
|
- lib/ruby_lsp/requests/formatting.rb
|
161
|
+
- lib/ruby_lsp/requests/go_to_relevant_file.rb
|
158
162
|
- lib/ruby_lsp/requests/hover.rb
|
159
163
|
- lib/ruby_lsp/requests/inlay_hints.rb
|
160
164
|
- lib/ruby_lsp/requests/on_type_formatting.rb
|
@@ -178,6 +182,7 @@ files:
|
|
178
182
|
- lib/ruby_lsp/requests/support/sorbet.rb
|
179
183
|
- lib/ruby_lsp/requests/support/source_uri.rb
|
180
184
|
- lib/ruby_lsp/requests/support/syntax_tree_formatter.rb
|
185
|
+
- lib/ruby_lsp/requests/support/test_item.rb
|
181
186
|
- lib/ruby_lsp/requests/type_hierarchy_supertypes.rb
|
182
187
|
- lib/ruby_lsp/requests/workspace_symbol.rb
|
183
188
|
- lib/ruby_lsp/response_builders/collection_response_builder.rb
|
@@ -186,7 +191,9 @@ files:
|
|
186
191
|
- lib/ruby_lsp/response_builders/response_builder.rb
|
187
192
|
- lib/ruby_lsp/response_builders/semantic_highlighting.rb
|
188
193
|
- lib/ruby_lsp/response_builders/signature_help.rb
|
194
|
+
- lib/ruby_lsp/response_builders/test_collection.rb
|
189
195
|
- lib/ruby_lsp/ruby_document.rb
|
196
|
+
- lib/ruby_lsp/ruby_lsp_reporter_plugin.rb
|
190
197
|
- lib/ruby_lsp/scope.rb
|
191
198
|
- lib/ruby_lsp/scripts/compose_bundle.rb
|
192
199
|
- lib/ruby_lsp/scripts/compose_bundle_windows.rb
|
@@ -195,6 +202,8 @@ files:
|
|
195
202
|
- lib/ruby_lsp/static_docs.rb
|
196
203
|
- lib/ruby_lsp/store.rb
|
197
204
|
- lib/ruby_lsp/test_helper.rb
|
205
|
+
- lib/ruby_lsp/test_reporter.rb
|
206
|
+
- lib/ruby_lsp/test_unit_test_runner.rb
|
198
207
|
- lib/ruby_lsp/type_inferrer.rb
|
199
208
|
- lib/ruby_lsp/utils.rb
|
200
209
|
- static_docs/yield.md
|
@@ -218,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
227
|
- !ruby/object:Gem::Version
|
219
228
|
version: '0'
|
220
229
|
requirements: []
|
221
|
-
rubygems_version: 3.6.
|
230
|
+
rubygems_version: 3.6.6
|
222
231
|
specification_version: 4
|
223
232
|
summary: An opinionated language server for Ruby
|
224
233
|
test_files: []
|