rubydex 0.1.0.beta11 → 0.1.0.beta13

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 (108) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +23 -23
  3. data/README.md +125 -125
  4. data/THIRD_PARTY_LICENSES.html +2018 -945
  5. data/exe/rdx +47 -47
  6. data/ext/rubydex/declaration.c +453 -388
  7. data/ext/rubydex/declaration.h +23 -23
  8. data/ext/rubydex/definition.c +284 -197
  9. data/ext/rubydex/definition.h +28 -28
  10. data/ext/rubydex/diagnostic.c +6 -6
  11. data/ext/rubydex/diagnostic.h +11 -11
  12. data/ext/rubydex/document.c +97 -98
  13. data/ext/rubydex/document.h +10 -10
  14. data/ext/rubydex/extconf.rb +146 -127
  15. data/ext/rubydex/graph.c +701 -512
  16. data/ext/rubydex/graph.h +10 -10
  17. data/ext/rubydex/handle.h +44 -44
  18. data/ext/rubydex/location.c +22 -22
  19. data/ext/rubydex/location.h +15 -15
  20. data/ext/rubydex/reference.c +123 -104
  21. data/ext/rubydex/reference.h +15 -16
  22. data/ext/rubydex/rubydex.c +22 -22
  23. data/ext/rubydex/utils.c +108 -86
  24. data/ext/rubydex/utils.h +34 -28
  25. data/lib/rubydex/comment.rb +17 -17
  26. data/lib/rubydex/declaration.rb +11 -0
  27. data/lib/rubydex/diagnostic.rb +21 -21
  28. data/lib/rubydex/failures.rb +15 -15
  29. data/lib/rubydex/graph.rb +98 -92
  30. data/lib/rubydex/keyword.rb +17 -0
  31. data/lib/rubydex/keyword_parameter.rb +13 -0
  32. data/lib/rubydex/location.rb +90 -90
  33. data/lib/rubydex/mixin.rb +22 -0
  34. data/lib/rubydex/version.rb +5 -5
  35. data/lib/rubydex.rb +24 -20
  36. data/rbi/rubydex.rbi +425 -310
  37. data/rust/Cargo.lock +1851 -1851
  38. data/rust/Cargo.toml +29 -29
  39. data/rust/about.toml +10 -10
  40. data/rust/{about.hbs → about_templates/about.hbs} +81 -78
  41. data/rust/about_templates/mingw_licenses.hbs +1071 -0
  42. data/rust/rubydex/Cargo.toml +42 -42
  43. data/rust/rubydex/src/compile_assertions.rs +13 -13
  44. data/rust/rubydex/src/diagnostic.rs +110 -109
  45. data/rust/rubydex/src/errors.rs +28 -28
  46. data/rust/rubydex/src/indexing/local_graph.rs +224 -224
  47. data/rust/rubydex/src/indexing/rbs_indexer.rs +1551 -1554
  48. data/rust/rubydex/src/indexing/ruby_indexer.rs +2329 -6753
  49. data/rust/rubydex/src/indexing/ruby_indexer_tests.rs +4962 -0
  50. data/rust/rubydex/src/indexing.rs +210 -210
  51. data/rust/rubydex/src/integrity.rs +279 -278
  52. data/rust/rubydex/src/job_queue.rs +199 -205
  53. data/rust/rubydex/src/lib.rs +17 -17
  54. data/rust/rubydex/src/listing.rs +371 -272
  55. data/rust/rubydex/src/main.rs +160 -160
  56. data/rust/rubydex/src/model/built_in.rs +83 -0
  57. data/rust/rubydex/src/model/comment.rs +24 -24
  58. data/rust/rubydex/src/model/declaration.rs +679 -588
  59. data/rust/rubydex/src/model/definitions.rs +1682 -1602
  60. data/rust/rubydex/src/model/document.rs +222 -252
  61. data/rust/rubydex/src/model/encoding.rs +22 -22
  62. data/rust/rubydex/src/model/graph.rs +3782 -3556
  63. data/rust/rubydex/src/model/id.rs +110 -110
  64. data/rust/rubydex/src/model/identity_maps.rs +58 -58
  65. data/rust/rubydex/src/model/ids.rs +60 -38
  66. data/rust/rubydex/src/model/keywords.rs +256 -256
  67. data/rust/rubydex/src/model/name.rs +298 -298
  68. data/rust/rubydex/src/model/references.rs +111 -111
  69. data/rust/rubydex/src/model/string_ref.rs +50 -50
  70. data/rust/rubydex/src/model/visibility.rs +41 -41
  71. data/rust/rubydex/src/model.rs +15 -14
  72. data/rust/rubydex/src/offset.rs +147 -147
  73. data/rust/rubydex/src/position.rs +6 -6
  74. data/rust/rubydex/src/query.rs +1841 -1700
  75. data/rust/rubydex/src/resolution.rs +1852 -5895
  76. data/rust/rubydex/src/resolution_tests.rs +4701 -0
  77. data/rust/rubydex/src/stats/memory.rs +71 -71
  78. data/rust/rubydex/src/stats/orphan_report.rs +264 -263
  79. data/rust/rubydex/src/stats/timer.rs +127 -127
  80. data/rust/rubydex/src/stats.rs +11 -11
  81. data/rust/rubydex/src/test_utils/context.rs +226 -226
  82. data/rust/rubydex/src/test_utils/graph_test.rs +730 -679
  83. data/rust/rubydex/src/test_utils/local_graph_test.rs +602 -602
  84. data/rust/rubydex/src/test_utils.rs +52 -52
  85. data/rust/rubydex/src/visualization/dot.rs +192 -176
  86. data/rust/rubydex/src/visualization.rs +6 -6
  87. data/rust/rubydex/tests/cli.rs +185 -167
  88. data/rust/rubydex-mcp/Cargo.toml +28 -28
  89. data/rust/rubydex-mcp/src/main.rs +48 -48
  90. data/rust/rubydex-mcp/src/server.rs +1145 -1145
  91. data/rust/rubydex-mcp/src/tools.rs +49 -49
  92. data/rust/rubydex-mcp/tests/mcp.rs +302 -302
  93. data/rust/rubydex-sys/Cargo.toml +20 -20
  94. data/rust/rubydex-sys/build.rs +14 -14
  95. data/rust/rubydex-sys/cbindgen.toml +12 -12
  96. data/rust/rubydex-sys/src/declaration_api.rs +485 -469
  97. data/rust/rubydex-sys/src/definition_api.rs +443 -352
  98. data/rust/rubydex-sys/src/diagnostic_api.rs +99 -99
  99. data/rust/rubydex-sys/src/document_api.rs +85 -54
  100. data/rust/rubydex-sys/src/graph_api.rs +1017 -700
  101. data/rust/rubydex-sys/src/lib.rs +79 -9
  102. data/rust/rubydex-sys/src/location_api.rs +79 -79
  103. data/rust/rubydex-sys/src/name_api.rs +187 -135
  104. data/rust/rubydex-sys/src/reference_api.rs +267 -195
  105. data/rust/rubydex-sys/src/utils.rs +70 -70
  106. data/rust/rustfmt.toml +2 -2
  107. metadata +16 -9
  108. data/lib/rubydex/librubydex_sys.so +0 -0
data/rbi/rubydex.rbi CHANGED
@@ -1,310 +1,425 @@
1
- # frozen_string_literal: true
2
- # typed: strict
3
-
4
- module Rubydex; end
5
-
6
- class Rubydex::Comment
7
- sig { params(string: String, location: Rubydex::Location).void }
8
- def initialize(string:, location:); end
9
-
10
- sig { returns(Rubydex::Location) }
11
- def location; end
12
-
13
- sig { returns(String) }
14
- def string; end
15
- end
16
-
17
- class Rubydex::ConstantReference < Rubydex::Reference
18
- sig { returns(Rubydex::Location) }
19
- def location; end
20
-
21
- sig { returns(String) }
22
- def name; end
23
- end
24
-
25
- class Rubydex::Declaration
26
- sig { returns(T::Enumerable[Rubydex::Definition]) }
27
- def definitions; end
28
-
29
- sig { returns(String) }
30
- def name; end
31
-
32
- sig { returns(Rubydex::Declaration) }
33
- def owner; end
34
-
35
- sig { returns(T::Enumerable[Rubydex::Reference]) }
36
- def references; end
37
-
38
- sig { returns(String) }
39
- def unqualified_name; end
40
-
41
- class << self
42
- private
43
-
44
- def new(*args); end
45
- end
46
- end
47
-
48
- class Rubydex::GlobalVariable < Rubydex::Declaration; end
49
- class Rubydex::InstanceVariable < Rubydex::Declaration; end
50
- class Rubydex::Constant < Rubydex::Declaration; end
51
- class Rubydex::ConstantAlias < Rubydex::Declaration; end
52
- class Rubydex::ClassVariable < Rubydex::Declaration; end
53
- class Rubydex::Method < Rubydex::Declaration; end
54
-
55
- class Rubydex::Namespace < Rubydex::Declaration
56
- sig { returns(T::Enumerable[Rubydex::Namespace]) }
57
- def ancestors; end
58
-
59
- sig { returns(T::Enumerable[Rubydex::Namespace]) }
60
- def descendants; end
61
-
62
- sig { returns(T::Enumerable[Rubydex::Declaration]) }
63
- def members; end
64
-
65
- sig { params(name: String).returns(T.nilable(Rubydex::Declaration)) }
66
- def member(name); end
67
-
68
- sig { params(name: String, only_inherited: T::Boolean).returns(T.nilable(Rubydex::Declaration)) }
69
- def find_member(name, only_inherited: false); end
70
-
71
- sig { returns(T.nilable(Rubydex::SingletonClass)) }
72
- def singleton_class; end
73
- end
74
-
75
- class Rubydex::Class < Rubydex::Namespace; end
76
- class Rubydex::Module < Rubydex::Namespace; end
77
- class Rubydex::SingletonClass < Rubydex::Namespace; end
78
-
79
- class Rubydex::Definition
80
- sig { returns(T::Array[Rubydex::Comment]) }
81
- def comments; end
82
-
83
- sig { returns(T::Boolean) }
84
- def deprecated?; end
85
-
86
- sig { returns(Rubydex::Location) }
87
- def location; end
88
-
89
- sig { returns(String) }
90
- def name; end
91
-
92
- sig { returns(T.nilable(Rubydex::Location)) }
93
- def name_location; end
94
-
95
- class << self
96
- private
97
-
98
- def new(*args); end
99
- end
100
- end
101
-
102
- class Rubydex::AttrAccessorDefinition < Rubydex::Definition; end
103
- class Rubydex::AttrReaderDefinition < Rubydex::Definition; end
104
- class Rubydex::AttrWriterDefinition < Rubydex::Definition; end
105
- class Rubydex::ClassDefinition < Rubydex::Definition; end
106
- class Rubydex::ClassVariableDefinition < Rubydex::Definition; end
107
- class Rubydex::ConstantAliasDefinition < Rubydex::Definition; end
108
- class Rubydex::ConstantDefinition < Rubydex::Definition; end
109
- class Rubydex::GlobalVariableAliasDefinition < Rubydex::Definition; end
110
- class Rubydex::GlobalVariableDefinition < Rubydex::Definition; end
111
- class Rubydex::InstanceVariableDefinition < Rubydex::Definition; end
112
- class Rubydex::MethodAliasDefinition < Rubydex::Definition; end
113
- class Rubydex::MethodDefinition < Rubydex::Definition; end
114
- class Rubydex::ModuleDefinition < Rubydex::Definition; end
115
- class Rubydex::SingletonClassDefinition < Rubydex::Definition; end
116
-
117
- class Rubydex::Diagnostic
118
- sig { params(rule: Symbol, message: String, location: Rubydex::Location).void }
119
- def initialize(rule:, message:, location:); end
120
-
121
- sig { returns(Rubydex::Location) }
122
- def location; end
123
-
124
- sig { returns(String) }
125
- def message; end
126
-
127
- sig { returns(Symbol) }
128
- def rule; end
129
- end
130
-
131
- class Rubydex::Document
132
- sig { returns(T::Enumerable[Rubydex::Definition]) }
133
- def definitions; end
134
-
135
- sig { returns(String) }
136
- def uri; end
137
-
138
- class << self
139
- private
140
-
141
- def new(*args); end
142
- end
143
- end
144
-
145
- class Rubydex::Error < StandardError; end
146
-
147
- class Rubydex::Failure
148
- sig { params(message: String).void }
149
- def initialize(message); end
150
-
151
- sig { returns(String) }
152
- def message; end
153
- end
154
-
155
- class Rubydex::IntegrityFailure < Rubydex::Failure; end
156
-
157
- class Rubydex::Graph
158
- IGNORED_DIRECTORIES = T.let(T.unsafe(nil), T::Array[String])
159
-
160
- sig { params(workspace_path: T.nilable(String)).void }
161
- def initialize(workspace_path: nil); end
162
-
163
- sig { params(fully_qualified_name: String).returns(T.nilable(Rubydex::Declaration)) }
164
- def [](fully_qualified_name); end
165
-
166
- sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
167
- def constant_references; end
168
-
169
- sig { returns(T::Enumerable[Rubydex::Declaration]) }
170
- def declarations; end
171
-
172
- sig { params(uri: String).returns(T.nilable(Rubydex::Document)) }
173
- def delete_document(uri); end
174
-
175
- sig { returns(T::Array[Rubydex::Diagnostic]) }
176
- def diagnostics; end
177
-
178
- sig { returns(T::Enumerable[Rubydex::Document]) }
179
- def documents; end
180
-
181
- sig { params(file_paths: T::Array[String]).returns(T::Array[String]) }
182
- def index_all(file_paths); end
183
-
184
- sig { params(uri: String, source: String, language_id: String).void }
185
- def index_source(uri, source, language_id); end
186
-
187
- # Index all files and dependencies of the workspace that exists in `@workspace_path`
188
- sig { returns(T::Array[String]) }
189
- def index_workspace; end
190
-
191
- sig { returns(T::Enumerable[Rubydex::MethodReference]) }
192
- def method_references; end
193
-
194
- sig { params(load_paths: T::Array[String]).returns(T::Array[String]) }
195
- def require_paths(load_paths); end
196
-
197
- sig { returns(T.self_type) }
198
- def resolve; end
199
-
200
- sig { params(name: String, nesting: T::Array[String]).returns(T.nilable(Rubydex::Declaration)) }
201
- def resolve_constant(name, nesting); end
202
-
203
- sig { params(require_path: String, load_paths: T::Array[String]).returns(T.nilable(Rubydex::Document)) }
204
- def resolve_require_path(require_path, load_paths); end
205
-
206
- sig { params(query: String).returns(T::Enumerable[Rubydex::Declaration]) }
207
- def search(query); end
208
-
209
- sig { params(query: String).returns(T::Enumerable[Rubydex::Declaration]) }
210
- def fuzzy_search(query); end
211
-
212
- sig { params(encoding: String).void }
213
- def encoding=(encoding); end
214
-
215
- sig { returns(String) }
216
- def workspace_path; end
217
-
218
- sig { params(workspace_path: String).returns(String) }
219
- def workspace_path=(workspace_path); end
220
-
221
- sig { returns(T::Array[String]) }
222
- def workspace_paths; end
223
-
224
- sig { returns(T::Array[Rubydex::Failure]) }
225
- def check_integrity; end
226
-
227
- private
228
-
229
- sig { params(paths: T::Array[String]).void }
230
- def add_core_rbs_definition_paths(paths); end
231
-
232
- sig { params(paths: T::Array[String]).void }
233
- def add_workspace_dependency_paths(paths); end
234
- end
235
-
236
- class Rubydex::DisplayLocation < Rubydex::Location
237
- sig { returns([String, Integer, Integer, Integer, Integer]) }
238
- def comparable_values; end
239
-
240
- sig { returns(Rubydex::DisplayLocation) }
241
- def to_display; end
242
-
243
- sig { returns(String) }
244
- def to_s; end
245
- end
246
-
247
- class Rubydex::Location
248
- include ::Comparable
249
-
250
- sig do
251
- params(
252
- uri: String,
253
- start_line: Integer,
254
- end_line: Integer,
255
- start_column: Integer,
256
- end_column: Integer,
257
- ).void
258
- end
259
- def initialize(uri:, start_line:, end_line:, start_column:, end_column:); end
260
-
261
- sig { params(other: T.untyped).returns(T.nilable(Integer)) }
262
- def <=>(other); end
263
-
264
- sig { returns([String, Integer, Integer, Integer, Integer]) }
265
- def comparable_values; end
266
-
267
- sig { returns(Integer) }
268
- def end_column; end
269
-
270
- sig { returns(Integer) }
271
- def end_line; end
272
-
273
- sig { returns(String) }
274
- def to_file_path; end
275
-
276
- sig { returns(Integer) }
277
- def start_column; end
278
-
279
- sig { returns(Integer) }
280
- def start_line; end
281
-
282
- sig { returns(Rubydex::DisplayLocation) }
283
- def to_display; end
284
-
285
- sig { returns(String) }
286
- def to_s; end
287
-
288
- sig { returns(String) }
289
- def uri; end
290
-
291
- class NotFileUriError < StandardError; end
292
- end
293
-
294
- class Rubydex::MethodReference < Rubydex::Reference
295
- sig { returns(Rubydex::Location) }
296
- def location; end
297
-
298
- sig { returns(String) }
299
- def name; end
300
- end
301
-
302
- class Rubydex::Reference
303
- class << self
304
- private
305
-
306
- def new(*args); end
307
- end
308
- end
309
-
310
- Rubydex::VERSION = T.let(T.unsafe(nil), String)
1
+ # frozen_string_literal: true
2
+ # typed: strict
3
+
4
+ module Rubydex; end
5
+
6
+ class Rubydex::Comment
7
+ sig { params(string: String, location: Rubydex::Location).void }
8
+ def initialize(string:, location:); end
9
+
10
+ sig { returns(Rubydex::Location) }
11
+ def location; end
12
+
13
+ sig { returns(String) }
14
+ def string; end
15
+ end
16
+
17
+ class Rubydex::ConstantReference < Rubydex::Reference
18
+ sig { returns(Rubydex::Location) }
19
+ def location; end
20
+
21
+ class << self
22
+ private
23
+
24
+ def new(*args); end
25
+ end
26
+ end
27
+
28
+ class Rubydex::UnresolvedConstantReference < Rubydex::ConstantReference
29
+ sig { returns(String) }
30
+ def name; end
31
+ end
32
+
33
+ class Rubydex::ResolvedConstantReference < Rubydex::ConstantReference
34
+ sig { returns(Rubydex::Declaration) }
35
+ def declaration; end
36
+ end
37
+
38
+ class Rubydex::Declaration
39
+ sig { returns(T::Enumerable[Rubydex::Definition]) }
40
+ def definitions; end
41
+
42
+ sig { returns(String) }
43
+ def name; end
44
+
45
+ sig { returns(Rubydex::Declaration) }
46
+ def owner; end
47
+
48
+ sig { returns(T::Enumerable[Rubydex::Reference]) }
49
+ def references; end
50
+
51
+ sig { returns(String) }
52
+ def unqualified_name; end
53
+
54
+ class << self
55
+ private
56
+
57
+ def new(*args); end
58
+ end
59
+ end
60
+
61
+ class Rubydex::GlobalVariable < Rubydex::Declaration
62
+ sig { returns(T::Array[T.untyped]) }
63
+ def references; end
64
+ end
65
+
66
+ class Rubydex::InstanceVariable < Rubydex::Declaration
67
+ sig { returns(T::Array[T.untyped]) }
68
+ def references; end
69
+ end
70
+
71
+ class Rubydex::Constant < Rubydex::Declaration
72
+ sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
73
+ def references; end
74
+ end
75
+
76
+ class Rubydex::ConstantAlias < Rubydex::Declaration
77
+ sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
78
+ def references; end
79
+ end
80
+
81
+ class Rubydex::ClassVariable < Rubydex::Declaration
82
+ sig { returns(T::Array[T.untyped]) }
83
+ def references; end
84
+ end
85
+
86
+ class Rubydex::Method < Rubydex::Declaration
87
+ sig { returns(T::Enumerable[Rubydex::MethodReference]) }
88
+ def references; end
89
+ end
90
+
91
+ class Rubydex::Namespace < Rubydex::Declaration
92
+ sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
93
+ def references; end
94
+
95
+ sig { returns(T::Enumerable[Rubydex::Namespace]) }
96
+ def ancestors; end
97
+
98
+ sig { returns(T::Enumerable[Rubydex::Namespace]) }
99
+ def descendants; end
100
+
101
+ sig { returns(T::Enumerable[Rubydex::Declaration]) }
102
+ def members; end
103
+
104
+ sig { params(name: String).returns(T.nilable(Rubydex::Declaration)) }
105
+ def member(name); end
106
+
107
+ sig { params(name: String, only_inherited: T::Boolean).returns(T.nilable(Rubydex::Declaration)) }
108
+ def find_member(name, only_inherited: false); end
109
+
110
+ sig { returns(T.nilable(Rubydex::SingletonClass)) }
111
+ def singleton_class; end
112
+ end
113
+
114
+ class Rubydex::Class < Rubydex::Namespace; end
115
+ class Rubydex::Module < Rubydex::Namespace; end
116
+ class Rubydex::SingletonClass < Rubydex::Namespace; end
117
+
118
+ class Rubydex::Definition
119
+ sig { returns(T::Array[Rubydex::Comment]) }
120
+ def comments; end
121
+
122
+ sig { returns(T::Boolean) }
123
+ def deprecated?; end
124
+
125
+ sig { returns(Rubydex::Location) }
126
+ def location; end
127
+
128
+ sig { returns(String) }
129
+ def name; end
130
+
131
+ sig { returns(T.nilable(Rubydex::Location)) }
132
+ def name_location; end
133
+
134
+ class << self
135
+ private
136
+
137
+ def new(*args); end
138
+ end
139
+ end
140
+
141
+ class Rubydex::AttrAccessorDefinition < Rubydex::Definition; end
142
+ class Rubydex::AttrReaderDefinition < Rubydex::Definition; end
143
+ class Rubydex::AttrWriterDefinition < Rubydex::Definition; end
144
+ class Rubydex::ClassVariableDefinition < Rubydex::Definition; end
145
+ class Rubydex::ConstantAliasDefinition < Rubydex::Definition; end
146
+ class Rubydex::ConstantDefinition < Rubydex::Definition; end
147
+ class Rubydex::GlobalVariableAliasDefinition < Rubydex::Definition; end
148
+ class Rubydex::GlobalVariableDefinition < Rubydex::Definition; end
149
+ class Rubydex::InstanceVariableDefinition < Rubydex::Definition; end
150
+ class Rubydex::MethodAliasDefinition < Rubydex::Definition; end
151
+ class Rubydex::MethodDefinition < Rubydex::Definition; end
152
+ class Rubydex::ModuleDefinition < Rubydex::Definition
153
+ sig { returns(T::Array[Rubydex::Mixin]) }
154
+ def mixins; end
155
+ end
156
+
157
+ class Rubydex::SingletonClassDefinition < Rubydex::Definition
158
+ sig { returns(T::Array[Rubydex::Mixin]) }
159
+ def mixins; end
160
+ end
161
+
162
+ class Rubydex::ClassDefinition < Rubydex::Definition
163
+ sig { returns(T.nilable(Rubydex::ConstantReference)) }
164
+ def superclass; end
165
+
166
+ sig { returns(T::Array[Rubydex::Mixin]) }
167
+ def mixins; end
168
+ end
169
+
170
+ class Rubydex::Mixin
171
+ sig { returns(Rubydex::ConstantReference) }
172
+ attr_reader :constant_reference
173
+
174
+ sig { params(constant_reference: Rubydex::ConstantReference).void }
175
+ def initialize(constant_reference); end
176
+ end
177
+
178
+ class Rubydex::Include < Rubydex::Mixin; end
179
+ class Rubydex::Prepend < Rubydex::Mixin; end
180
+ class Rubydex::Extend < Rubydex::Mixin; end
181
+
182
+ class Rubydex::Diagnostic
183
+ sig { params(rule: Symbol, message: String, location: Rubydex::Location).void }
184
+ def initialize(rule:, message:, location:); end
185
+
186
+ sig { returns(Rubydex::Location) }
187
+ def location; end
188
+
189
+ sig { returns(String) }
190
+ def message; end
191
+
192
+ sig { returns(Symbol) }
193
+ def rule; end
194
+ end
195
+
196
+ class Rubydex::Keyword
197
+ sig { params(name: String, documentation: String).void }
198
+ def initialize(name, documentation); end
199
+
200
+ sig { returns(String) }
201
+ def name; end
202
+
203
+ sig { returns(String) }
204
+ def documentation; end
205
+ end
206
+
207
+ class Rubydex::KeywordParameter
208
+ sig { params(name: String).void }
209
+ def initialize(name); end
210
+
211
+ sig { returns(String) }
212
+ def name; end
213
+ end
214
+
215
+ class Rubydex::Document
216
+ sig { returns(T::Enumerable[Rubydex::Definition]) }
217
+ def definitions; end
218
+
219
+ sig { returns(String) }
220
+ def uri; end
221
+
222
+ class << self
223
+ private
224
+
225
+ def new(*args); end
226
+ end
227
+ end
228
+
229
+ class Rubydex::Error < StandardError; end
230
+
231
+ class Rubydex::Failure
232
+ sig { params(message: String).void }
233
+ def initialize(message); end
234
+
235
+ sig { returns(String) }
236
+ def message; end
237
+ end
238
+
239
+ class Rubydex::IntegrityFailure < Rubydex::Failure; end
240
+
241
+ class Rubydex::Graph
242
+ IGNORED_DIRECTORIES = T.let(T.unsafe(nil), T::Array[String])
243
+
244
+ sig { params(workspace_path: T.nilable(String)).void }
245
+ def initialize(workspace_path: nil); end
246
+
247
+ sig { params(fully_qualified_name: String).returns(T.nilable(Rubydex::Declaration)) }
248
+ def [](fully_qualified_name); end
249
+
250
+ sig { returns(T::Enumerable[Rubydex::ConstantReference]) }
251
+ def constant_references; end
252
+
253
+ sig { returns(T::Enumerable[Rubydex::Declaration]) }
254
+ def declarations; end
255
+
256
+ sig { params(uri: String).returns(T.nilable(Rubydex::Document)) }
257
+ def delete_document(uri); end
258
+
259
+ sig { returns(T::Array[Rubydex::Diagnostic]) }
260
+ def diagnostics; end
261
+
262
+ sig { returns(T::Enumerable[Rubydex::Document]) }
263
+ def documents; end
264
+
265
+ sig { params(file_paths: T::Array[String]).returns(T::Array[String]) }
266
+ def index_all(file_paths); end
267
+
268
+ sig { params(uri: String, source: String, language_id: String).void }
269
+ def index_source(uri, source, language_id); end
270
+
271
+ # Index all files and dependencies of the workspace that exists in `@workspace_path`
272
+ sig { returns(T::Array[String]) }
273
+ def index_workspace; end
274
+
275
+ sig { returns(T::Enumerable[Rubydex::MethodReference]) }
276
+ def method_references; end
277
+
278
+ sig { params(load_paths: T::Array[String]).returns(T::Array[String]) }
279
+ def require_paths(load_paths); end
280
+
281
+ sig { returns(T.self_type) }
282
+ def resolve; end
283
+
284
+ sig { params(name: String, nesting: T::Array[String]).returns(T.nilable(Rubydex::Declaration)) }
285
+ def resolve_constant(name, nesting); end
286
+
287
+ sig { params(require_path: String, load_paths: T::Array[String]).returns(T.nilable(Rubydex::Document)) }
288
+ def resolve_require_path(require_path, load_paths); end
289
+
290
+ sig { params(query: String).returns(T::Enumerable[Rubydex::Declaration]) }
291
+ def search(query); end
292
+
293
+ sig { params(query: String).returns(T::Enumerable[Rubydex::Declaration]) }
294
+ def fuzzy_search(query); end
295
+
296
+ sig { params(encoding: String).void }
297
+ def encoding=(encoding); end
298
+
299
+ sig { returns(String) }
300
+ def workspace_path; end
301
+
302
+ sig { params(workspace_path: String).returns(String) }
303
+ def workspace_path=(workspace_path); end
304
+
305
+ sig { returns(T::Array[String]) }
306
+ def workspace_paths; end
307
+
308
+ sig { returns(T::Array[Rubydex::Failure]) }
309
+ def check_integrity; end
310
+
311
+ # Returns completion candidates for an expression context. This includes all keywords, constants, methods, instance
312
+ # variables, class variables and global variables reachable from the current lexical scope and self type.
313
+ #
314
+ # The nesting array represents the lexical scope stack, where the last element is the self type. An empty array
315
+ # defaults to `Object` as the self type (top-level context).
316
+ sig { params(nesting: T::Array[String]).returns(T::Array[T.any(Rubydex::Declaration, Rubydex::Keyword)]) }
317
+ def complete_expression(nesting); end
318
+
319
+ # Returns completion candidates after a namespace access operator (e.g., `Foo::`). This includes all constants and
320
+ # singleton methods for the namespace and its ancestors.
321
+ sig { params(name: String).returns(T::Array[Rubydex::Declaration]) }
322
+ def complete_namespace_access(name); end
323
+
324
+ # Returns completion candidates after a method call operator (e.g., `foo.`). This includes all methods that exist on
325
+ # the type of the receiver and its ancestors.
326
+ sig { params(name: String).returns(T::Array[Rubydex::Method]) }
327
+ def complete_method_call(name); end
328
+
329
+ # Returns completion candidates inside a method call's argument list (e.g., `foo.bar(|)`). This includes everything
330
+ # that expression completion provides plus keyword argument names of the method being called.
331
+ #
332
+ # The nesting array represents the lexical scope stack, where the last element is the self type.
333
+ sig { params(name: String, nesting: T::Array[String]).returns(T::Array[T.any(Rubydex::Declaration, Rubydex::Keyword, Rubydex::KeywordParameter)]) }
334
+ def complete_method_argument(name, nesting); end
335
+
336
+ private
337
+
338
+ sig { params(paths: T::Array[String]).void }
339
+ def add_core_rbs_definition_paths(paths); end
340
+
341
+ sig { params(paths: T::Array[String]).void }
342
+ def add_workspace_dependency_paths(paths); end
343
+
344
+ sig { params(paths: T::Array[String]).void }
345
+ def exclude_paths(paths); end
346
+
347
+ sig { returns(T::Array[String]) }
348
+ def excluded_paths; end
349
+ end
350
+
351
+ class Rubydex::DisplayLocation < Rubydex::Location
352
+ sig { returns([String, Integer, Integer, Integer, Integer]) }
353
+ def comparable_values; end
354
+
355
+ sig { returns(Rubydex::DisplayLocation) }
356
+ def to_display; end
357
+
358
+ sig { returns(String) }
359
+ def to_s; end
360
+ end
361
+
362
+ class Rubydex::Location
363
+ include ::Comparable
364
+
365
+ sig do
366
+ params(
367
+ uri: String,
368
+ start_line: Integer,
369
+ end_line: Integer,
370
+ start_column: Integer,
371
+ end_column: Integer,
372
+ ).void
373
+ end
374
+ def initialize(uri:, start_line:, end_line:, start_column:, end_column:); end
375
+
376
+ sig { params(other: T.untyped).returns(T.nilable(Integer)) }
377
+ def <=>(other); end
378
+
379
+ sig { returns([String, Integer, Integer, Integer, Integer]) }
380
+ def comparable_values; end
381
+
382
+ sig { returns(Integer) }
383
+ def end_column; end
384
+
385
+ sig { returns(Integer) }
386
+ def end_line; end
387
+
388
+ sig { returns(String) }
389
+ def to_file_path; end
390
+
391
+ sig { returns(Integer) }
392
+ def start_column; end
393
+
394
+ sig { returns(Integer) }
395
+ def start_line; end
396
+
397
+ sig { returns(Rubydex::DisplayLocation) }
398
+ def to_display; end
399
+
400
+ sig { returns(String) }
401
+ def to_s; end
402
+
403
+ sig { returns(String) }
404
+ def uri; end
405
+
406
+ class NotFileUriError < StandardError; end
407
+ end
408
+
409
+ class Rubydex::MethodReference < Rubydex::Reference
410
+ sig { returns(Rubydex::Location) }
411
+ def location; end
412
+
413
+ sig { returns(String) }
414
+ def name; end
415
+ end
416
+
417
+ class Rubydex::Reference
418
+ class << self
419
+ private
420
+
421
+ def new(*args); end
422
+ end
423
+ end
424
+
425
+ Rubydex::VERSION = T.let(T.unsafe(nil), String)