ruby-lsp 0.18.1 → 0.18.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42aef038c33d8c03d661dc1c39c745df320399ab86e6c558504c79c93bac4952
4
- data.tar.gz: ff4ce59697e498c965a0db7b8df44de12e4c81cebb6ef84d50cc54664647f913
3
+ metadata.gz: d78954c10106529d35716e266769c1ddf6bf8235d7441c881aaa2f06cb757956
4
+ data.tar.gz: 14a40cc3212ce2c90ad23f099b44b0a8aa75a0cf40445b6b2a9b74048cb18794
5
5
  SHA512:
6
- metadata.gz: 1a88854595b50bab0ede9aaaa40fe8d765afb6f8744246c8d3407769ad981d00579b20a52f61c4f2c929d8ecdd3578625093b41cf30f6c7224ac64117a201b39
7
- data.tar.gz: 9093a75fbecd3349e0b6bd80bc899928ea40a4afb2c2a1ae64a5be1bde84bf800280a24910a35ff7eac3b7e470785a649a370214f9f51b8bbd898ede81e09903
6
+ metadata.gz: 2320f897c2895afa3cd710c10f5bc5bf238c9a53eb39a38071887cd475198fd4c6f60020d71d62405579ff3ebe5ea0bd9b1d8e02599d5107b35ca6fe17789397
7
+ data.tar.gz: 8e31ed714b473b46791dda5c3e83e68d4e0756dc2980f0e6c34b8652337278a928e104566be12a933ffae1525533b8935651c45580b07f95cab4ac732965a348
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.18.1
1
+ 0.18.2
data/exe/ruby-lsp CHANGED
@@ -29,13 +29,6 @@ parser = OptionParser.new do |opts|
29
29
  options[:branch] = branch
30
30
  end
31
31
 
32
- opts.on(
33
- "--experimental",
34
- "Run pre-release versions of the Ruby LSP",
35
- ) do
36
- options[:experimental] = true
37
- end
38
-
39
32
  opts.on("--doctor", "Run troubleshooting steps") do
40
33
  options[:doctor] = true
41
34
  end
@@ -242,6 +242,64 @@ module RubyIndexer
242
242
  completion_items.values.map!(&:first)
243
243
  end
244
244
 
245
+ sig do
246
+ params(
247
+ name: String,
248
+ nesting: T::Array[String],
249
+ ).returns(T::Array[T::Array[T.any(
250
+ Entry::Constant,
251
+ Entry::ConstantAlias,
252
+ Entry::Namespace,
253
+ Entry::UnresolvedConstantAlias,
254
+ )]])
255
+ end
256
+ def constant_completion_candidates(name, nesting)
257
+ # If we have a top level reference, then we don't need to include completions inside the current nesting
258
+ if name.start_with?("::")
259
+ return T.cast(
260
+ @entries_tree.search(name.delete_prefix("::")),
261
+ T::Array[T::Array[T.any(
262
+ Entry::Constant,
263
+ Entry::ConstantAlias,
264
+ Entry::Namespace,
265
+ Entry::UnresolvedConstantAlias,
266
+ )]],
267
+ )
268
+ end
269
+
270
+ # Otherwise, we have to include every possible constant the user might be referring to. This is essentially the
271
+ # same algorithm as resolve, but instead of returning early we concatenate all unique results
272
+
273
+ # Direct constants inside this namespace
274
+ entries = @entries_tree.search(nesting.any? ? "#{nesting.join("::")}::#{name}" : name)
275
+
276
+ # Constants defined in enclosing scopes
277
+ nesting.length.downto(1) do |i|
278
+ namespace = T.must(nesting[0...i]).join("::")
279
+ entries.concat(@entries_tree.search("#{namespace}::#{name}"))
280
+ end
281
+
282
+ # Inherited constants
283
+ if name.end_with?("::")
284
+ entries.concat(inherited_constant_completion_candidates(nil, nesting + [name]))
285
+ else
286
+ entries.concat(inherited_constant_completion_candidates(name, nesting))
287
+ end
288
+
289
+ # Top level constants
290
+ entries.concat(@entries_tree.search(name))
291
+ entries.uniq!
292
+ T.cast(
293
+ entries,
294
+ T::Array[T::Array[T.any(
295
+ Entry::Constant,
296
+ Entry::ConstantAlias,
297
+ Entry::Namespace,
298
+ Entry::UnresolvedConstantAlias,
299
+ )]],
300
+ )
301
+ end
302
+
245
303
  # Resolve a constant to its declaration based on its name and the nesting where the reference was found. Parameter
246
304
  # documentation:
247
305
  #
@@ -365,12 +423,10 @@ module RubyIndexer
365
423
  # aliases, so we have to invoke `follow_aliased_namespace` again to check until we only return a real name
366
424
  sig { params(name: String, seen_names: T::Array[String]).returns(String) }
367
425
  def follow_aliased_namespace(name, seen_names = [])
368
- return name if @entries[name]
369
-
370
426
  parts = name.split("::")
371
427
  real_parts = []
372
428
 
373
- (parts.length - 1).downto(0).each do |i|
429
+ (parts.length - 1).downto(0) do |i|
374
430
  current_name = T.must(parts[0..i]).join("::")
375
431
  entry = @entries[current_name]&.first
376
432
 
@@ -824,7 +880,7 @@ module RubyIndexer
824
880
  )]))
825
881
  end
826
882
  def lookup_enclosing_scopes(name, nesting, seen_names)
827
- nesting.length.downto(1).each do |i|
883
+ nesting.length.downto(1) do |i|
828
884
  namespace = T.must(nesting[0...i]).join("::")
829
885
 
830
886
  # If we find an entry with `full_name` directly, then we can already return it, even if it contains aliases -
@@ -871,6 +927,51 @@ module RubyIndexer
871
927
  nil
872
928
  end
873
929
 
930
+ sig do
931
+ params(
932
+ name: T.nilable(String),
933
+ nesting: T::Array[String],
934
+ ).returns(T::Array[T::Array[T.any(
935
+ Entry::Namespace,
936
+ Entry::ConstantAlias,
937
+ Entry::UnresolvedConstantAlias,
938
+ Entry::Constant,
939
+ )]])
940
+ end
941
+ def inherited_constant_completion_candidates(name, nesting)
942
+ namespace_entries = if name
943
+ *nesting_parts, constant_name = build_non_redundant_full_name(name, nesting).split("::")
944
+ return [] if nesting_parts.empty?
945
+
946
+ resolve(nesting_parts.join("::"), [])
947
+ else
948
+ resolve(nesting.join("::"), [])
949
+ end
950
+ return [] unless namespace_entries
951
+
952
+ ancestors = linearized_ancestors_of(T.must(namespace_entries.first).name)
953
+ candidates = ancestors.flat_map do |ancestor_name|
954
+ @entries_tree.search("#{ancestor_name}::#{constant_name}")
955
+ end
956
+
957
+ # For candidates with the same name, we must only show the first entry in the inheritance chain, since that's the
958
+ # one the user will be referring to in completion
959
+ completion_items = candidates.each_with_object({}) do |entries, hash|
960
+ *parts, short_name = T.must(entries.first).name.split("::")
961
+ namespace_name = parts.join("::")
962
+ ancestor_index = ancestors.index(namespace_name)
963
+ existing_entry, existing_entry_index = hash[short_name]
964
+
965
+ next unless ancestor_index && (!existing_entry || ancestor_index < existing_entry_index)
966
+
967
+ hash[short_name] = [entries, ancestor_index]
968
+ end
969
+
970
+ completion_items.values.map!(&:first)
971
+ rescue NonExistingNamespaceError
972
+ []
973
+ end
974
+
874
975
  # Removes redudancy from a constant reference's full name. For example, if we find a reference to `A::B::Foo` inside
875
976
  # of the ["A", "B"] nesting, then we should not concatenate the nesting with the name or else we'll end up with
876
977
  # `A::B::A::B::Foo`. This method will remove any redundant parts from the final name based on the reference and the
@@ -1863,5 +1863,73 @@ module RubyIndexer
1863
1863
  def test_entries_for_returns_nil_if_no_matches
1864
1864
  assert_nil(@index.entries_for("non_existing_file.rb", Entry::Namespace))
1865
1865
  end
1866
+
1867
+ def test_constant_completion_candidates_all_possible_constants
1868
+ index(<<~RUBY)
1869
+ XQRK = 3
1870
+
1871
+ module Bar
1872
+ XQRK = 2
1873
+ end
1874
+
1875
+ module Foo
1876
+ XQRK = 1
1877
+ end
1878
+
1879
+ module Namespace
1880
+ XQRK = 0
1881
+
1882
+ class Baz
1883
+ include Foo
1884
+ include Bar
1885
+ end
1886
+ end
1887
+ RUBY
1888
+
1889
+ result = @index.constant_completion_candidates("X", ["Namespace", "Baz"])
1890
+
1891
+ result.each do |entries|
1892
+ name = entries.first.name
1893
+ assert(entries.all? { |e| e.name == name })
1894
+ end
1895
+
1896
+ assert_equal(["Namespace::XQRK", "Bar::XQRK", "XQRK"], result.map { |entries| entries.first.name })
1897
+
1898
+ result = @index.constant_completion_candidates("::X", ["Namespace", "Baz"])
1899
+ assert_equal(["XQRK"], result.map { |entries| entries.first.name })
1900
+ end
1901
+
1902
+ def test_constant_completion_candidates_for_empty_name
1903
+ index(<<~RUBY)
1904
+ module Foo
1905
+ Bar = 1
1906
+ end
1907
+
1908
+ class Baz
1909
+ include Foo
1910
+ end
1911
+ RUBY
1912
+
1913
+ result = @index.constant_completion_candidates("Baz::", [])
1914
+ assert_includes(result.map { |entries| entries.first.name }, "Foo::Bar")
1915
+ end
1916
+
1917
+ def test_follow_alias_namespace
1918
+ index(<<~RUBY)
1919
+ module First
1920
+ module Second
1921
+ class Foo
1922
+ end
1923
+ end
1924
+ end
1925
+
1926
+ module Namespace
1927
+ Second = First::Second
1928
+ end
1929
+ RUBY
1930
+
1931
+ real_namespace = @index.follow_aliased_namespace("Namespace::Second")
1932
+ assert_equal("First::Second", real_namespace)
1933
+ end
1866
1934
  end
1867
1935
  end
@@ -30,8 +30,6 @@ require "ruby_lsp/parameter_scope"
30
30
  require "ruby_lsp/global_state"
31
31
  require "ruby_lsp/server"
32
32
  require "ruby_lsp/type_inferrer"
33
- require "ruby_lsp/requests"
34
- require "ruby_lsp/response_builders"
35
33
  require "ruby_lsp/node_context"
36
34
  require "ruby_lsp/document"
37
35
  require "ruby_lsp/ruby_document"
@@ -39,6 +37,47 @@ require "ruby_lsp/erb_document"
39
37
  require "ruby_lsp/rbs_document"
40
38
  require "ruby_lsp/store"
41
39
  require "ruby_lsp/addon"
40
+
41
+ # Response builders
42
+ require "ruby_lsp/response_builders/response_builder"
43
+ require "ruby_lsp/response_builders/collection_response_builder"
44
+ require "ruby_lsp/response_builders/document_symbol"
45
+ require "ruby_lsp/response_builders/hover"
46
+ require "ruby_lsp/response_builders/semantic_highlighting"
47
+ require "ruby_lsp/response_builders/signature_help"
48
+
49
+ # Request support
50
+ require "ruby_lsp/requests/support/rubocop_diagnostic"
51
+ require "ruby_lsp/requests/support/selection_range"
52
+ require "ruby_lsp/requests/support/annotation"
53
+ require "ruby_lsp/requests/support/sorbet"
54
+ require "ruby_lsp/requests/support/common"
55
+ require "ruby_lsp/requests/support/formatter"
42
56
  require "ruby_lsp/requests/support/rubocop_runner"
43
57
  require "ruby_lsp/requests/support/rubocop_formatter"
44
58
  require "ruby_lsp/requests/support/syntax_tree_formatter"
59
+
60
+ # Requests
61
+ require "ruby_lsp/requests/request"
62
+ require "ruby_lsp/requests/code_action_resolve"
63
+ require "ruby_lsp/requests/code_actions"
64
+ require "ruby_lsp/requests/code_lens"
65
+ require "ruby_lsp/requests/completion_resolve"
66
+ require "ruby_lsp/requests/completion"
67
+ require "ruby_lsp/requests/definition"
68
+ require "ruby_lsp/requests/diagnostics"
69
+ require "ruby_lsp/requests/document_highlight"
70
+ require "ruby_lsp/requests/document_link"
71
+ require "ruby_lsp/requests/document_symbol"
72
+ require "ruby_lsp/requests/folding_ranges"
73
+ require "ruby_lsp/requests/formatting"
74
+ require "ruby_lsp/requests/hover"
75
+ require "ruby_lsp/requests/inlay_hints"
76
+ require "ruby_lsp/requests/on_type_formatting"
77
+ require "ruby_lsp/requests/prepare_type_hierarchy"
78
+ require "ruby_lsp/requests/selection_ranges"
79
+ require "ruby_lsp/requests/semantic_highlighting"
80
+ require "ruby_lsp/requests/show_syntax_tree"
81
+ require "ruby_lsp/requests/signature_help"
82
+ require "ruby_lsp/requests/type_hierarchy_supertypes"
83
+ require "ruby_lsp/requests/workspace_symbol"
@@ -104,7 +104,7 @@ module RubyLsp
104
104
  name = constant_name(node)
105
105
  return if name.nil?
106
106
 
107
- candidates = @index.prefix_search(name, @node_context.nesting)
107
+ candidates = @index.constant_completion_candidates(name, @node_context.nesting)
108
108
  candidates.each do |entries|
109
109
  complete_name = T.must(entries.first).name
110
110
  @response_builder << build_entry_completion(
@@ -124,7 +124,13 @@ module RubyLsp
124
124
  # no sigil, Sorbet will still provide completion for constants
125
125
  return if @sorbet_level != RubyDocument::SorbetLevel::Ignore
126
126
 
127
- name = constant_name(node)
127
+ name = begin
128
+ node.full_name
129
+ rescue Prism::ConstantPathNode::MissingNodesInConstantPathError
130
+ node.slice
131
+ rescue Prism::ConstantPathNode::DynamicPartsInConstantPathError
132
+ nil
133
+ end
128
134
  return if name.nil?
129
135
 
130
136
  constant_path_completion(name, range_from_location(node.location))
@@ -230,7 +236,7 @@ module RubyLsp
230
236
 
231
237
  real_namespace = @index.follow_aliased_namespace(T.must(namespace_entries.first).name)
232
238
 
233
- candidates = @index.prefix_search(
239
+ candidates = @index.constant_completion_candidates(
234
240
  "#{real_namespace}::#{incomplete_name}",
235
241
  top_level_reference ? [] : nesting,
236
242
  )
@@ -240,8 +246,16 @@ module RubyLsp
240
246
  first_entry = T.must(entries.first)
241
247
  next if first_entry.private? && !first_entry.name.start_with?("#{nesting}::")
242
248
 
243
- constant_name = first_entry.name.delete_prefix("#{real_namespace}::")
244
- full_name = aliased_namespace.empty? ? constant_name : "#{aliased_namespace}::#{constant_name}"
249
+ entry_name = first_entry.name
250
+ full_name = if aliased_namespace != real_namespace
251
+ constant_name = entry_name.delete_prefix("#{real_namespace}::")
252
+ aliased_namespace.empty? ? constant_name : "#{aliased_namespace}::#{constant_name}"
253
+ elsif !entry_name.start_with?(aliased_namespace)
254
+ *_, short_name = entry_name.split("::")
255
+ "#{aliased_namespace}::#{short_name}"
256
+ else
257
+ entry_name
258
+ end
245
259
 
246
260
  @response_builder << build_entry_completion(
247
261
  full_name,
@@ -545,7 +559,7 @@ module RubyLsp
545
559
  sig { params(entry_name: String).returns(T::Boolean) }
546
560
  def top_level?(entry_name)
547
561
  nesting = @node_context.nesting
548
- nesting.length.downto(0).each do |i|
562
+ nesting.length.downto(0) do |i|
549
563
  prefix = T.must(nesting[0...i]).join("::")
550
564
  full_name = prefix.empty? ? entry_name : "#{prefix}::#{entry_name}"
551
565
  next if full_name == entry_name
@@ -12,14 +12,12 @@ module RubyLsp
12
12
  sig do
13
13
  params(
14
14
  response_builder: ResponseBuilders::CollectionResponseBuilder[Interface::InlayHint],
15
- range: T::Range[Integer],
16
15
  hints_configuration: RequestConfig,
17
16
  dispatcher: Prism::Dispatcher,
18
17
  ).void
19
18
  end
20
- def initialize(response_builder, range, hints_configuration, dispatcher)
19
+ def initialize(response_builder, hints_configuration, dispatcher)
21
20
  @response_builder = response_builder
22
- @range = range
23
21
  @hints_configuration = hints_configuration
24
22
 
25
23
  dispatcher.register(self, :on_rescue_node_enter, :on_implicit_node_enter)
@@ -31,7 +29,6 @@ module RubyLsp
31
29
  return unless node.exceptions.empty?
32
30
 
33
31
  loc = node.location
34
- return unless visible?(node, @range)
35
32
 
36
33
  @response_builder << Interface::InlayHint.new(
37
34
  position: { line: loc.start_line - 1, character: loc.start_column + RESCUE_STRING_LENGTH },
@@ -44,7 +41,6 @@ module RubyLsp
44
41
  sig { params(node: Prism::ImplicitNode).void }
45
42
  def on_implicit_node_enter(node)
46
43
  return unless @hints_configuration.enabled?(:implicitHashValue)
47
- return unless visible?(node, @range)
48
44
 
49
45
  node_value = node.value
50
46
  loc = node.location
@@ -69,17 +65,6 @@ module RubyLsp
69
65
  tooltip: tooltip,
70
66
  )
71
67
  end
72
-
73
- private
74
-
75
- sig { params(node: T.nilable(Prism::Node), range: T.nilable(T::Range[Integer])).returns(T::Boolean) }
76
- def visible?(node, range)
77
- return true if range.nil?
78
- return false if node.nil?
79
-
80
- loc = node.location
81
- range.cover?(loc.start_line - 1) && range.cover?(loc.end_line - 1)
82
- end
83
68
  end
84
69
  end
85
70
  end
@@ -46,8 +46,8 @@ module RubyLsp
46
46
 
47
47
  if owner_name
48
48
  entries = entries.select do |entry|
49
- (entry.is_a?(RubyIndexer::Entry::Member) || entry.is_a?(RubyIndexer::Entry::InstanceVariable)) &&
50
- entry.owner&.name == owner_name
49
+ (entry.is_a?(RubyIndexer::Entry::Member) || entry.is_a?(RubyIndexer::Entry::InstanceVariable) ||
50
+ entry.is_a?(RubyIndexer::Entry::MethodAlias)) && entry.owner&.name == owner_name
51
51
  end
52
52
  end
53
53
 
@@ -23,21 +23,18 @@ module RubyLsp
23
23
  sig do
24
24
  params(
25
25
  document: T.any(RubyDocument, ERBDocument),
26
- range: T::Hash[Symbol, T.untyped],
27
26
  hints_configuration: RequestConfig,
28
27
  dispatcher: Prism::Dispatcher,
29
28
  ).void
30
29
  end
31
- def initialize(document, range, hints_configuration, dispatcher)
30
+ def initialize(document, hints_configuration, dispatcher)
32
31
  super()
33
- start_line = range.dig(:start, :line)
34
- end_line = range.dig(:end, :line)
35
32
 
36
33
  @response_builder = T.let(
37
34
  ResponseBuilders::CollectionResponseBuilder[Interface::InlayHint].new,
38
35
  ResponseBuilders::CollectionResponseBuilder[Interface::InlayHint],
39
36
  )
40
- Listeners::InlayHints.new(@response_builder, start_line..end_line, hints_configuration, dispatcher)
37
+ Listeners::InlayHints.new(@response_builder, hints_configuration, dispatcher)
41
38
  end
42
39
 
43
40
  sig { override.returns(T::Array[Interface::InlayHint]) }
@@ -411,6 +411,7 @@ module RubyLsp
411
411
  document_symbol = Requests::DocumentSymbol.new(uri, dispatcher)
412
412
  document_link = Requests::DocumentLink.new(uri, parse_result.comments, dispatcher)
413
413
  code_lens = Requests::CodeLens.new(@global_state, uri, dispatcher)
414
+ inlay_hint = Requests::InlayHints.new(document, T.must(@store.features_configuration.dig(:inlayHint)), dispatcher)
414
415
  dispatcher.dispatch(parse_result.value)
415
416
 
416
417
  # Store all responses retrieve in this round of visits in the cache and then return the response for the request
@@ -419,6 +420,7 @@ module RubyLsp
419
420
  document.cache_set("textDocument/documentSymbol", document_symbol.perform)
420
421
  document.cache_set("textDocument/documentLink", document_link.perform)
421
422
  document.cache_set("textDocument/codeLens", code_lens.perform)
423
+ document.cache_set("textDocument/inlayHint", inlay_hint.perform)
422
424
 
423
425
  send_message(Result.new(id: message[:id], response: document.cache_get(message[:method])))
424
426
  end
@@ -611,18 +613,35 @@ module RubyLsp
611
613
  sig { params(message: T::Hash[Symbol, T.untyped]).void }
612
614
  def text_document_inlay_hint(message)
613
615
  params = message[:params]
616
+ document = @store.get(params.dig(:textDocument, :uri))
617
+ range = params.dig(:range, :start, :line)..params.dig(:range, :end, :line)
618
+
619
+ cached_response = document.cache_get("textDocument/inlayHint")
620
+ if cached_response != Document::EMPTY_CACHE
621
+
622
+ send_message(
623
+ Result.new(
624
+ id: message[:id],
625
+ response: cached_response.select { |hint| range.cover?(hint.position[:line]) },
626
+ ),
627
+ )
628
+ return
629
+ end
630
+
614
631
  hints_configurations = T.must(@store.features_configuration.dig(:inlayHint))
615
632
  dispatcher = Prism::Dispatcher.new
616
- document = @store.get(params.dig(:textDocument, :uri))
617
633
 
618
634
  unless document.is_a?(RubyDocument) || document.is_a?(ERBDocument)
619
635
  send_empty_response(message[:id])
620
636
  return
621
637
  end
622
638
 
623
- request = Requests::InlayHints.new(document, params[:range], hints_configurations, dispatcher)
639
+ request = Requests::InlayHints.new(document, hints_configurations, dispatcher)
624
640
  dispatcher.visit(document.parse_result.value)
625
- send_message(Result.new(id: message[:id], response: request.perform))
641
+ result = request.perform
642
+ document.cache_set("textDocument/inlayHint", result)
643
+
644
+ send_message(Result.new(id: message[:id], response: result.select { |hint| range.cover?(hint.position[:line]) }))
626
645
  end
627
646
 
628
647
  sig { params(message: T::Hash[Symbol, T.untyped]).void }
@@ -27,7 +27,6 @@ module RubyLsp
27
27
  def initialize(project_path, **options)
28
28
  @project_path = project_path
29
29
  @branch = T.let(options[:branch], T.nilable(String))
30
- @experimental = T.let(options[:experimental], T.nilable(T::Boolean))
31
30
 
32
31
  # Regular bundle paths
33
32
  @gemfile = T.let(
@@ -207,7 +206,6 @@ module RubyLsp
207
206
  command << "ruby-lsp " unless @dependencies["ruby-lsp"]
208
207
  command << "debug " unless @dependencies["debug"]
209
208
  command << "ruby-lsp-rails " if @rails_app && !@dependencies["ruby-lsp-rails"]
210
- command << "--pre" if @experimental
211
209
  command.delete_suffix!(" ")
212
210
  command << ")"
213
211
 
@@ -255,7 +253,9 @@ module RubyLsp
255
253
  # "vendor/bundle"`
256
254
  settings.all.to_h do |e|
257
255
  key = Bundler::Settings.key_for(e)
258
- [key, settings[e].to_s]
256
+ value = Array(settings[e]).join(":").tr(" ", ":")
257
+
258
+ [key, value]
259
259
  end
260
260
  end
261
261
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 0.18.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-20 00:00:00.000000000 Z
11
+ date: 2024-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: language_server-protocol
@@ -131,7 +131,6 @@ files:
131
131
  - lib/ruby_lsp/node_context.rb
132
132
  - lib/ruby_lsp/parameter_scope.rb
133
133
  - lib/ruby_lsp/rbs_document.rb
134
- - lib/ruby_lsp/requests.rb
135
134
  - lib/ruby_lsp/requests/code_action_resolve.rb
136
135
  - lib/ruby_lsp/requests/code_actions.rb
137
136
  - lib/ruby_lsp/requests/code_lens.rb
@@ -165,7 +164,6 @@ files:
165
164
  - lib/ruby_lsp/requests/support/syntax_tree_formatter.rb
166
165
  - lib/ruby_lsp/requests/type_hierarchy_supertypes.rb
167
166
  - lib/ruby_lsp/requests/workspace_symbol.rb
168
- - lib/ruby_lsp/response_builders.rb
169
167
  - lib/ruby_lsp/response_builders/collection_response_builder.rb
170
168
  - lib/ruby_lsp/response_builders/document_symbol.rb
171
169
  - lib/ruby_lsp/response_builders/hover.rb
@@ -1,64 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module RubyLsp
5
- # Supported features
6
- #
7
- # - [DocumentSymbol](rdoc-ref:RubyLsp::Requests::DocumentSymbol)
8
- # - [DocumentLink](rdoc-ref:RubyLsp::Requests::DocumentLink)
9
- # - [Hover](rdoc-ref:RubyLsp::Requests::Hover)
10
- # - [FoldingRange](rdoc-ref:RubyLsp::Requests::FoldingRanges)
11
- # - [SelectionRange](rdoc-ref:RubyLsp::Requests::SelectionRanges)
12
- # - [SemanticHighlighting](rdoc-ref:RubyLsp::Requests::SemanticHighlighting)
13
- # - [Formatting](rdoc-ref:RubyLsp::Requests::Formatting)
14
- # - [OnTypeFormatting](rdoc-ref:RubyLsp::Requests::OnTypeFormatting)
15
- # - [Diagnostic](rdoc-ref:RubyLsp::Requests::Diagnostics)
16
- # - [CodeAction](rdoc-ref:RubyLsp::Requests::CodeActions)
17
- # - [CodeActionResolve](rdoc-ref:RubyLsp::Requests::CodeActionResolve)
18
- # - [DocumentHighlight](rdoc-ref:RubyLsp::Requests::DocumentHighlight)
19
- # - [InlayHint](rdoc-ref:RubyLsp::Requests::InlayHints)
20
- # - [Completion](rdoc-ref:RubyLsp::Requests::Completion)
21
- # - [CompletionResolve](rdoc-ref:RubyLsp::Requests::CompletionResolve)
22
- # - [CodeLens](rdoc-ref:RubyLsp::Requests::CodeLens)
23
- # - [Definition](rdoc-ref:RubyLsp::Requests::Definition)
24
- # - [ShowSyntaxTree](rdoc-ref:RubyLsp::Requests::ShowSyntaxTree)
25
- # - [WorkspaceSymbol](rdoc-ref:RubyLsp::Requests::WorkspaceSymbol)
26
- # - [SignatureHelp](rdoc-ref:RubyLsp::Requests::SignatureHelp)
27
-
28
- module Requests
29
- autoload :Request, "ruby_lsp/requests/request"
30
- autoload :DocumentSymbol, "ruby_lsp/requests/document_symbol"
31
- autoload :DocumentLink, "ruby_lsp/requests/document_link"
32
- autoload :Hover, "ruby_lsp/requests/hover"
33
- autoload :FoldingRanges, "ruby_lsp/requests/folding_ranges"
34
- autoload :SelectionRanges, "ruby_lsp/requests/selection_ranges"
35
- autoload :SemanticHighlighting, "ruby_lsp/requests/semantic_highlighting"
36
- autoload :Formatting, "ruby_lsp/requests/formatting"
37
- autoload :OnTypeFormatting, "ruby_lsp/requests/on_type_formatting"
38
- autoload :Diagnostics, "ruby_lsp/requests/diagnostics"
39
- autoload :CodeActions, "ruby_lsp/requests/code_actions"
40
- autoload :CodeActionResolve, "ruby_lsp/requests/code_action_resolve"
41
- autoload :DocumentHighlight, "ruby_lsp/requests/document_highlight"
42
- autoload :InlayHints, "ruby_lsp/requests/inlay_hints"
43
- autoload :Completion, "ruby_lsp/requests/completion"
44
- autoload :CompletionResolve, "ruby_lsp/requests/completion_resolve"
45
- autoload :CodeLens, "ruby_lsp/requests/code_lens"
46
- autoload :Definition, "ruby_lsp/requests/definition"
47
- autoload :ShowSyntaxTree, "ruby_lsp/requests/show_syntax_tree"
48
- autoload :WorkspaceSymbol, "ruby_lsp/requests/workspace_symbol"
49
- autoload :SignatureHelp, "ruby_lsp/requests/signature_help"
50
- autoload :PrepareTypeHierarchy, "ruby_lsp/requests/prepare_type_hierarchy"
51
- autoload :TypeHierarchySupertypes, "ruby_lsp/requests/type_hierarchy_supertypes"
52
-
53
- # :nodoc:
54
- module Support
55
- autoload :RuboCopDiagnostic, "ruby_lsp/requests/support/rubocop_diagnostic"
56
- autoload :SelectionRange, "ruby_lsp/requests/support/selection_range"
57
- autoload :Annotation, "ruby_lsp/requests/support/annotation"
58
- autoload :Sorbet, "ruby_lsp/requests/support/sorbet"
59
- autoload :RailsDocumentClient, "ruby_lsp/requests/support/rails_document_client"
60
- autoload :Common, "ruby_lsp/requests/support/common"
61
- autoload :Formatter, "ruby_lsp/requests/support/formatter"
62
- end
63
- end
64
- end
@@ -1,13 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module RubyLsp
5
- module ResponseBuilders
6
- autoload :CollectionResponseBuilder, "ruby_lsp/response_builders/collection_response_builder"
7
- autoload :DocumentSymbol, "ruby_lsp/response_builders/document_symbol"
8
- autoload :Hover, "ruby_lsp/response_builders/hover"
9
- autoload :ResponseBuilder, "ruby_lsp/response_builders/response_builder"
10
- autoload :SemanticHighlighting, "ruby_lsp/response_builders/semantic_highlighting"
11
- autoload :SignatureHelp, "ruby_lsp/response_builders/signature_help"
12
- end
13
- end