ruby-lsp 0.11.1 → 0.12.0

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/exe/ruby-lsp +2 -1
  4. data/exe/ruby-lsp-doctor +16 -0
  5. data/lib/ruby_indexer/lib/ruby_indexer/configuration.rb +5 -1
  6. data/lib/ruby_indexer/lib/ruby_indexer/entry.rb +205 -0
  7. data/lib/ruby_indexer/lib/ruby_indexer/index.rb +28 -108
  8. data/lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb +6 -6
  9. data/lib/ruby_indexer/lib/ruby_indexer/visitor.rb +160 -64
  10. data/lib/ruby_indexer/ruby_indexer.rb +1 -0
  11. data/lib/ruby_indexer/test/classes_and_modules_test.rb +49 -16
  12. data/lib/ruby_indexer/test/constant_test.rb +111 -30
  13. data/lib/ruby_indexer/test/index_test.rb +15 -0
  14. data/lib/ruby_indexer/test/method_test.rb +73 -0
  15. data/lib/ruby_indexer/test/test_case.rb +5 -1
  16. data/lib/ruby_lsp/addon.rb +8 -8
  17. data/lib/ruby_lsp/document.rb +14 -14
  18. data/lib/ruby_lsp/executor.rb +89 -53
  19. data/lib/ruby_lsp/internal.rb +8 -2
  20. data/lib/ruby_lsp/listener.rb +6 -6
  21. data/lib/ruby_lsp/requests/base_request.rb +1 -9
  22. data/lib/ruby_lsp/requests/code_action_resolve.rb +3 -3
  23. data/lib/ruby_lsp/requests/code_lens.rb +30 -30
  24. data/lib/ruby_lsp/requests/completion.rb +83 -32
  25. data/lib/ruby_lsp/requests/definition.rb +21 -15
  26. data/lib/ruby_lsp/requests/diagnostics.rb +1 -1
  27. data/lib/ruby_lsp/requests/document_highlight.rb +508 -31
  28. data/lib/ruby_lsp/requests/document_link.rb +24 -17
  29. data/lib/ruby_lsp/requests/document_symbol.rb +42 -42
  30. data/lib/ruby_lsp/requests/folding_ranges.rb +84 -82
  31. data/lib/ruby_lsp/requests/hover.rb +22 -17
  32. data/lib/ruby_lsp/requests/inlay_hints.rb +6 -6
  33. data/lib/ruby_lsp/requests/selection_ranges.rb +13 -105
  34. data/lib/ruby_lsp/requests/semantic_highlighting.rb +92 -92
  35. data/lib/ruby_lsp/requests/support/annotation.rb +3 -3
  36. data/lib/ruby_lsp/requests/support/common.rb +5 -5
  37. data/lib/ruby_lsp/requests/support/dependency_detector.rb +12 -4
  38. data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +15 -6
  39. data/lib/ruby_lsp/requests/support/semantic_token_encoder.rb +10 -7
  40. data/lib/ruby_lsp/requests/support/sorbet.rb +28 -28
  41. data/lib/ruby_lsp/requests/workspace_symbol.rb +4 -4
  42. data/lib/ruby_lsp/requests.rb +0 -1
  43. data/lib/ruby_lsp/setup_bundler.rb +8 -5
  44. metadata +19 -17
  45. data/lib/ruby_lsp/event_emitter.rb +0 -351
  46. data/lib/ruby_lsp/requests/support/highlight_target.rb +0 -118
@@ -1,118 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module RubyLsp
5
- module Requests
6
- module Support
7
- class HighlightTarget
8
- extend T::Sig
9
-
10
- READ = Constant::DocumentHighlightKind::READ
11
- WRITE = Constant::DocumentHighlightKind::WRITE
12
-
13
- class HighlightMatch
14
- extend T::Sig
15
-
16
- sig { returns(Integer) }
17
- attr_reader :type
18
-
19
- sig { returns(YARP::Location) }
20
- attr_reader :location
21
-
22
- sig { params(type: Integer, location: YARP::Location).void }
23
- def initialize(type:, location:)
24
- @type = type
25
- @location = location
26
- end
27
- end
28
-
29
- sig { params(node: YARP::Node).void }
30
- def initialize(node)
31
- @node = node
32
- @value = T.let(value(node), T.nilable(String))
33
- end
34
-
35
- sig { params(other: YARP::Node).returns(T.nilable(HighlightMatch)) }
36
- def highlight_type(other)
37
- matched_highlight(other) if @value && @value == value(other)
38
- end
39
-
40
- private
41
-
42
- # Match the target type (where the cursor is positioned) with the `other` type (the node we're currently
43
- # visiting)
44
- sig { params(other: YARP::Node).returns(T.nilable(HighlightMatch)) }
45
- def matched_highlight(other)
46
- case @node
47
- # Method definitions and invocations
48
- when YARP::CallNode, YARP::DefNode
49
- case other
50
- when YARP::CallNode
51
- HighlightMatch.new(type: READ, location: other.location)
52
- when YARP::DefNode
53
- HighlightMatch.new(type: WRITE, location: other.name_loc)
54
- end
55
- # Variables, parameters and constants
56
- else
57
- case other
58
- when YARP::GlobalVariableTargetNode, YARP::InstanceVariableTargetNode, YARP::ConstantPathTargetNode,
59
- YARP::ConstantTargetNode, YARP::ClassVariableTargetNode, YARP::LocalVariableTargetNode,
60
- YARP::BlockParameterNode, YARP::RequiredParameterNode
61
-
62
- HighlightMatch.new(type: WRITE, location: other.location)
63
- when YARP::LocalVariableWriteNode, YARP::KeywordParameterNode, YARP::RestParameterNode,
64
- YARP::OptionalParameterNode, YARP::KeywordRestParameterNode, YARP::LocalVariableAndWriteNode,
65
- YARP::LocalVariableOperatorWriteNode, YARP::LocalVariableOrWriteNode, YARP::ClassVariableWriteNode,
66
- YARP::ClassVariableOrWriteNode, YARP::ClassVariableOperatorWriteNode, YARP::ClassVariableAndWriteNode,
67
- YARP::ConstantWriteNode, YARP::ConstantOrWriteNode, YARP::ConstantOperatorWriteNode,
68
- YARP::InstanceVariableWriteNode, YARP::ConstantAndWriteNode, YARP::InstanceVariableOrWriteNode,
69
- YARP::InstanceVariableAndWriteNode, YARP::InstanceVariableOperatorWriteNode,
70
- YARP::GlobalVariableWriteNode, YARP::GlobalVariableOrWriteNode, YARP::GlobalVariableAndWriteNode,
71
- YARP::GlobalVariableOperatorWriteNode
72
-
73
- HighlightMatch.new(type: WRITE, location: T.must(other.name_loc)) if other.name
74
- when YARP::ConstantPathWriteNode, YARP::ConstantPathOrWriteNode, YARP::ConstantPathAndWriteNode,
75
- YARP::ConstantPathOperatorWriteNode
76
-
77
- HighlightMatch.new(type: WRITE, location: other.target.location)
78
- when YARP::LocalVariableReadNode, YARP::ConstantPathNode, YARP::ConstantReadNode,
79
- YARP::InstanceVariableReadNode, YARP::ClassVariableReadNode, YARP::GlobalVariableReadNode
80
-
81
- HighlightMatch.new(type: READ, location: other.location)
82
- when YARP::ClassNode, YARP::ModuleNode
83
- HighlightMatch.new(type: WRITE, location: other.constant_path.location)
84
- end
85
- end
86
- end
87
-
88
- sig { params(node: YARP::Node).returns(T.nilable(String)) }
89
- def value(node)
90
- case node
91
- when YARP::ConstantReadNode, YARP::ConstantPathNode, YARP::BlockArgumentNode, YARP::ConstantTargetNode,
92
- YARP::ConstantPathWriteNode, YARP::ConstantPathTargetNode, YARP::ConstantPathOrWriteNode,
93
- YARP::ConstantPathOperatorWriteNode, YARP::ConstantPathAndWriteNode
94
- node.slice
95
- when YARP::GlobalVariableReadNode, YARP::GlobalVariableAndWriteNode, YARP::GlobalVariableOperatorWriteNode,
96
- YARP::GlobalVariableOrWriteNode, YARP::GlobalVariableTargetNode, YARP::GlobalVariableWriteNode,
97
- YARP::InstanceVariableAndWriteNode, YARP::InstanceVariableOperatorWriteNode,
98
- YARP::InstanceVariableOrWriteNode, YARP::InstanceVariableReadNode, YARP::InstanceVariableTargetNode,
99
- YARP::InstanceVariableWriteNode, YARP::ConstantAndWriteNode, YARP::ConstantOperatorWriteNode,
100
- YARP::ConstantOrWriteNode, YARP::ConstantWriteNode, YARP::ClassVariableAndWriteNode,
101
- YARP::ClassVariableOperatorWriteNode, YARP::ClassVariableOrWriteNode, YARP::ClassVariableReadNode,
102
- YARP::ClassVariableTargetNode, YARP::ClassVariableWriteNode, YARP::LocalVariableAndWriteNode,
103
- YARP::LocalVariableOperatorWriteNode, YARP::LocalVariableOrWriteNode, YARP::LocalVariableReadNode,
104
- YARP::LocalVariableTargetNode, YARP::LocalVariableWriteNode, YARP::DefNode, YARP::BlockParameterNode,
105
- YARP::KeywordParameterNode, YARP::KeywordRestParameterNode, YARP::OptionalParameterNode,
106
- YARP::RequiredParameterNode, YARP::RestParameterNode
107
-
108
- node.name.to_s
109
- when YARP::CallNode
110
- node.message
111
- when YARP::ClassNode, YARP::ModuleNode
112
- node.constant_path.slice
113
- end
114
- end
115
- end
116
- end
117
- end
118
- end