steep 1.7.0.dev.4 → 1.7.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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +18 -0
  4. data/guides/src/gem-rbs-collection/gem-rbs-collection.md +7 -24
  5. data/lib/steep/rake_task.rb +132 -0
  6. data/lib/steep/type_construction.rb +1 -0
  7. data/lib/steep/version.rb +1 -1
  8. data/steep.gemspec +4 -1
  9. metadata +4 -143
  10. data/.github/dependabot.yml +0 -28
  11. data/.github/workflows/ruby-windows.yml +0 -35
  12. data/.github/workflows/ruby.yml +0 -32
  13. data/.vscode/steep-shared.code-snippets +0 -41
  14. data/Gemfile +0 -14
  15. data/Gemfile.lock +0 -104
  16. data/Gemfile.steep +0 -0
  17. data/gemfile_steep/Gemfile +0 -3
  18. data/gemfile_steep/Gemfile.lock +0 -77
  19. data/rbs_collection.steep.lock.yaml +0 -108
  20. data/rbs_collection.steep.yaml +0 -23
  21. data/sig/shims/bundler.rbs +0 -3
  22. data/sig/shims/concurrent-ruby.rbs +0 -39
  23. data/sig/shims/exception.rbs +0 -4
  24. data/sig/shims/language-server_protocol.rbs +0 -450
  25. data/sig/shims/parser/comment.rbs +0 -33
  26. data/sig/shims/parser/nodes.rbs +0 -252
  27. data/sig/shims/parser/source/map.rbs +0 -146
  28. data/sig/shims/parser/source/range.rbs +0 -237
  29. data/sig/shims/parser.rbs +0 -69
  30. data/sig/shims/string.rbs +0 -4
  31. data/sig/shims/tagged_logging.rbs +0 -6
  32. data/sig/shims/yaml.rbs +0 -4
  33. data/sig/steep/annotation_parser.rbs +0 -60
  34. data/sig/steep/ast/annotation/collection.rbs +0 -78
  35. data/sig/steep/ast/annotation.rbs +0 -121
  36. data/sig/steep/ast/builtin.rbs +0 -69
  37. data/sig/steep/ast/ignore.rbs +0 -66
  38. data/sig/steep/ast/node/type_application.rbs +0 -31
  39. data/sig/steep/ast/node/type_assertion.rbs +0 -32
  40. data/sig/steep/ast/types/any.rbs +0 -29
  41. data/sig/steep/ast/types/boolean.rbs +0 -31
  42. data/sig/steep/ast/types/bot.rbs +0 -29
  43. data/sig/steep/ast/types/class.rbs +0 -33
  44. data/sig/steep/ast/types/factory.rbs +0 -110
  45. data/sig/steep/ast/types/helper.rbs +0 -24
  46. data/sig/steep/ast/types/instance.rbs +0 -33
  47. data/sig/steep/ast/types/intersection.rbs +0 -40
  48. data/sig/steep/ast/types/literal.rbs +0 -35
  49. data/sig/steep/ast/types/logic.rbs +0 -83
  50. data/sig/steep/ast/types/name.rbs +0 -84
  51. data/sig/steep/ast/types/nil.rbs +0 -31
  52. data/sig/steep/ast/types/proc.rbs +0 -53
  53. data/sig/steep/ast/types/record.rbs +0 -39
  54. data/sig/steep/ast/types/self.rbs +0 -33
  55. data/sig/steep/ast/types/top.rbs +0 -29
  56. data/sig/steep/ast/types/tuple.rbs +0 -37
  57. data/sig/steep/ast/types/union.rbs +0 -40
  58. data/sig/steep/ast/types/var.rbs +0 -42
  59. data/sig/steep/ast/types/void.rbs +0 -29
  60. data/sig/steep/ast/types.rbs +0 -16
  61. data/sig/steep/cli.rbs +0 -55
  62. data/sig/steep/diagnostic/deprecated/else_on_exhaustive_case.rbs +0 -13
  63. data/sig/steep/diagnostic/deprecated/unknown_constant_assigned.rbs +0 -15
  64. data/sig/steep/diagnostic/helper.rbs +0 -15
  65. data/sig/steep/diagnostic/lsp_formatter.rbs +0 -36
  66. data/sig/steep/diagnostic/ruby.rbs +0 -703
  67. data/sig/steep/diagnostic/signature.rbs +0 -252
  68. data/sig/steep/drivers/annotations.rbs +0 -17
  69. data/sig/steep/drivers/check.rbs +0 -33
  70. data/sig/steep/drivers/checkfile.rbs +0 -27
  71. data/sig/steep/drivers/diagnostic_printer.rbs +0 -25
  72. data/sig/steep/drivers/init.rbs +0 -19
  73. data/sig/steep/drivers/langserver.rbs +0 -36
  74. data/sig/steep/drivers/print_project.rbs +0 -15
  75. data/sig/steep/drivers/stats.rbs +0 -47
  76. data/sig/steep/drivers/utils/driver_helper.rbs +0 -25
  77. data/sig/steep/drivers/utils/jobs_option.rbs +0 -19
  78. data/sig/steep/drivers/validate.rbs +0 -15
  79. data/sig/steep/drivers/vendor.rbs +0 -19
  80. data/sig/steep/drivers/watch.rbs +0 -27
  81. data/sig/steep/drivers/worker.rbs +0 -29
  82. data/sig/steep/equatable.rbs +0 -11
  83. data/sig/steep/expectations.rbs +0 -72
  84. data/sig/steep/index/rbs_index.rbs +0 -141
  85. data/sig/steep/index/signature_symbol_provider.rbs +0 -41
  86. data/sig/steep/index/source_index.rbs +0 -63
  87. data/sig/steep/interface/block.rbs +0 -41
  88. data/sig/steep/interface/builder.rbs +0 -111
  89. data/sig/steep/interface/function.rbs +0 -271
  90. data/sig/steep/interface/method_type.rbs +0 -105
  91. data/sig/steep/interface/shape.rbs +0 -80
  92. data/sig/steep/interface/substitution.rbs +0 -51
  93. data/sig/steep/interface/type_param.rbs +0 -43
  94. data/sig/steep/method_name.rbs +0 -30
  95. data/sig/steep/module_helper.rbs +0 -16
  96. data/sig/steep/node_helper.rbs +0 -91
  97. data/sig/steep/path_helper.rbs +0 -15
  98. data/sig/steep/project/dsl.rbs +0 -108
  99. data/sig/steep/project/options.rbs +0 -47
  100. data/sig/steep/project/pattern.rbs +0 -47
  101. data/sig/steep/project/target.rbs +0 -25
  102. data/sig/steep/project.rbs +0 -26
  103. data/sig/steep/range_extension.rbs +0 -7
  104. data/sig/steep/server/base_worker.rbs +0 -49
  105. data/sig/steep/server/change_buffer.rbs +0 -38
  106. data/sig/steep/server/delay_queue.rbs +0 -37
  107. data/sig/steep/server/interaction_worker.rbs +0 -90
  108. data/sig/steep/server/lsp_formatter.rbs +0 -63
  109. data/sig/steep/server/master.rbs +0 -299
  110. data/sig/steep/server/type_check_worker.rbs +0 -141
  111. data/sig/steep/server/worker_process.rbs +0 -97
  112. data/sig/steep/services/completion_provider.rbs +0 -264
  113. data/sig/steep/services/content_change.rbs +0 -37
  114. data/sig/steep/services/file_loader.rbs +0 -21
  115. data/sig/steep/services/goto_service.rbs +0 -106
  116. data/sig/steep/services/hover_provider/rbs.rbs +0 -47
  117. data/sig/steep/services/hover_provider/ruby.rbs +0 -127
  118. data/sig/steep/services/hover_provider/singleton_methods.rbs +0 -11
  119. data/sig/steep/services/path_assignment.rbs +0 -21
  120. data/sig/steep/services/signature_help_provider.rbs +0 -51
  121. data/sig/steep/services/signature_service.rbs +0 -156
  122. data/sig/steep/services/stats_calculator.rbs +0 -41
  123. data/sig/steep/services/type_check_service.rbs +0 -112
  124. data/sig/steep/services/type_name_completion.rbs +0 -135
  125. data/sig/steep/signature/validator.rbs +0 -85
  126. data/sig/steep/source/ignore_ranges.rbs +0 -38
  127. data/sig/steep/source.rbs +0 -105
  128. data/sig/steep/subtyping/cache.rbs +0 -17
  129. data/sig/steep/subtyping/check.rbs +0 -131
  130. data/sig/steep/subtyping/constraints.rbs +0 -111
  131. data/sig/steep/subtyping/relation.rbs +0 -63
  132. data/sig/steep/subtyping/result.rbs +0 -179
  133. data/sig/steep/subtyping/variable_variance.rbs +0 -25
  134. data/sig/steep/thread_waiter.rbs +0 -13
  135. data/sig/steep/type_construction.rbs +0 -542
  136. data/sig/steep/type_inference/block_params.rbs +0 -170
  137. data/sig/steep/type_inference/case_when.rbs +0 -130
  138. data/sig/steep/type_inference/constant_env.rbs +0 -29
  139. data/sig/steep/type_inference/context.rbs +0 -216
  140. data/sig/steep/type_inference/context_array.rbs +0 -38
  141. data/sig/steep/type_inference/logic_type_interpreter.rbs +0 -108
  142. data/sig/steep/type_inference/method_call.rbs +0 -124
  143. data/sig/steep/type_inference/method_params.rbs +0 -127
  144. data/sig/steep/type_inference/multiple_assignment.rbs +0 -76
  145. data/sig/steep/type_inference/send_args.rbs +0 -243
  146. data/sig/steep/type_inference/type_env.rbs +0 -160
  147. data/sig/steep/type_inference/type_env_builder.rbs +0 -81
  148. data/sig/steep/typing.rbs +0 -75
  149. data/sig/steep.rbs +0 -45
@@ -1,450 +0,0 @@
1
- module LanguageServer
2
- module Protocol
3
- module Transport
4
- module Io
5
- class Writer
6
- def initialize: (IO) -> void
7
-
8
- def write: (**untyped) -> void
9
- | (Hash[Symbol, untyped]) -> void
10
- end
11
-
12
- class Reader
13
- def initialize: (IO) -> void
14
-
15
- def read: () { (untyped) -> void } -> bot
16
- end
17
- end
18
- end
19
-
20
- module Constant
21
- module CompletionItemKind
22
- type t = Integer
23
-
24
- TEXT: Integer
25
- METHOD: Integer
26
- FUNCTION: Integer
27
- CONSTRUCTOR: Integer
28
- FIELD: Integer
29
- VARIABLE: Integer
30
- CLASS: Integer
31
- INTERFACE: Integer
32
- MODULE: Integer
33
- PROPERTY: Integer
34
- UNIT: Integer
35
- VALUE: Integer
36
- ENUM: Integer
37
- KEYWORD: Integer
38
- SNIPPET: Integer
39
- COLOR: Integer
40
- FILE: Integer
41
- REFERENCE: Integer
42
- FOLDER: Integer
43
- ENUMMEMBER: Integer
44
- CONSTANT: Integer
45
- STRUCT: Integer
46
- EVENT: Integer
47
- OPERATOR: Integer
48
- TYPEPARAMETER: Integer
49
- end
50
-
51
- module CompletionItemTag
52
- type t = Integer
53
-
54
- Deprecated: Integer
55
- end
56
-
57
- module InsertTextFormat
58
- type t = Integer
59
-
60
- PLAIN_TEXT: Integer
61
-
62
- SNIPPET: Integer
63
- end
64
-
65
- module InsertTextMode
66
- type t = Integer
67
-
68
- AS_IS: Integer
69
-
70
- ADJUST_INDENTATION: Integer
71
- end
72
-
73
- module MarkupKind
74
- type t = "plaintext" | "markdown"
75
-
76
- PLAINTEXT: "plaintext"
77
-
78
- MARKDOWN: "markdown"
79
- end
80
-
81
- class MessageType
82
- type t = 1 | 2 | 3 | 4
83
-
84
- ERROR: 1
85
-
86
- WARNING: 2
87
-
88
- INFO: 3
89
-
90
- LOG: 4
91
- end
92
-
93
- module DiagnosticSeverity
94
- type t = 1 | 2 | 3 | 4
95
-
96
- ERROR: 1
97
-
98
- WARNING: 2
99
-
100
- INFORMATION: 3
101
-
102
- HINT: 4
103
- end
104
-
105
- module DiagnosticTag
106
- type t = 1 | 2
107
-
108
- UNNECESSARY: 1
109
-
110
- DEPRECATED: 2
111
- end
112
-
113
- module SymbolKind
114
- FILE: 1
115
- MODULE: 2
116
- NAMESPACE: 3
117
- PACKAGE: 4
118
- CLASS: 5
119
- METHOD: 6
120
- PROPERTY: 7
121
- FIELD: 8
122
- CONSTRUCTOR: 9
123
- ENUM: 10
124
- INTERFACE: 11
125
- FUNCTION: 12
126
- VARIABLE: 13
127
- CONSTANT: 14
128
- STRING: 15
129
- NUMBER: 16
130
- BOOLEAN: 17
131
- ARRAY: 18
132
- OBJECT: 19
133
- KEY: 20
134
- NULL: 21
135
- ENUM_MEMBER: 22
136
- STRUCT: 23
137
- EVENT: 24
138
- OPERATOR: 25
139
- TYPE_PARAMETER: 26
140
-
141
- type t = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26
142
- end
143
- end
144
-
145
- module Interface
146
- interface _Base
147
- def attributes: () -> Hash[Symbol, untyped]
148
-
149
- alias to_hash attributes
150
-
151
- def to_json: () -> String
152
- end
153
-
154
- class Position
155
- type json = { line: Integer, character: Integer }
156
-
157
- include _Base
158
-
159
- # 0-origin line number
160
- attr_reader line: Integer
161
-
162
- # 0-origin character position (== cursor position)
163
- attr_reader character: Integer
164
-
165
- def initialize: (line: Integer, character: Integer) -> void
166
- | (Hash[Symbol, untyped]) -> void
167
- end
168
-
169
- class Range
170
- include _Base
171
-
172
- type json = {
173
- start: Position::json,
174
- end: Position::json
175
- }
176
-
177
- attr_reader start: Position
178
-
179
- attr_reader end: Position
180
-
181
- def initialize: (start: Position, end: Position) -> void
182
- | (Hash[Symbol, untyped]) -> void
183
- end
184
-
185
- class Location
186
- include _Base
187
-
188
- type json = { uri: String, range: Range::json }
189
-
190
- attr_reader uri: String
191
-
192
- attr_reader range: Range
193
-
194
- def initialize: (uri: String, range: Range) -> void
195
- end
196
-
197
- class MarkupContent
198
- include _Base
199
-
200
- attr_reader kind: Constant::MarkupKind::t
201
-
202
- attr_reader value: String
203
-
204
- def initialize: (kind: Constant::MarkupKind::t, value: String) -> void
205
- end
206
-
207
- class TextEdit
208
- include _Base
209
-
210
- attr_reader range: Range
211
-
212
- attr_reader new_text: String
213
-
214
- def initialize: (range: Range, new_text: String) -> void
215
- end
216
-
217
- class InsertReplaceEdit
218
- include _Base
219
-
220
- attr_reader new_text: String
221
-
222
- attr_reader insert: Range
223
-
224
- attr_reader replace: Range
225
-
226
- def initialize: (new_text: String, insert: Range, replace: Range) -> void
227
- end
228
-
229
- class Command
230
- include _Base
231
-
232
- attr_reader title: String
233
-
234
- attr_reader command: String
235
-
236
- attr_reader arguments: Array[untyped]?
237
-
238
- def initialize: (title: String, command: String, ?arguments: Array[untyped]?) -> void
239
- end
240
-
241
- class Hover
242
- include _Base
243
-
244
- attr_reader contents: MarkupContent
245
-
246
- attr_reader range: Range
247
-
248
- def initialize: (contents: MarkupContent, range: Range) -> void
249
- end
250
-
251
- class CompletionList
252
- include _Base
253
-
254
- attr_reader is_incomplete: bool
255
-
256
- attr_reader items: Array[CompletionItem]
257
-
258
- def initialize: (items: Array[CompletionItem], is_incomplete: bool) -> void
259
- end
260
-
261
- class CompletionItem
262
- include _Base
263
-
264
- attr_reader label: String
265
-
266
- attr_reader label_details: CompletionItemLabelDetails?
267
-
268
- attr_reader kind: Constant::CompletionItemKind::t?
269
-
270
- attr_reader tags: Array[Constant::CompletionItemTag::t]?
271
-
272
- attr_reader detail: String?
273
-
274
- attr_reader documentation: MarkupContent?
275
-
276
- attr_reader preselect: bool?
277
-
278
- attr_reader sort_text: String?
279
-
280
- attr_reader filter_text: String?
281
-
282
- attr_reader insert_text: String?
283
-
284
- attr_reader insert_text_format: Constant::InsertTextFormat::t?
285
-
286
- attr_reader insert_text_mode: Constant::InsertTextMode::t?
287
-
288
- attr_reader text_edit: TextEdit | InsertReplaceEdit | nil
289
-
290
- attr_reader text_edit_text: String?
291
-
292
- attr_reader additional_text_edits: Array[TextEdit]?
293
-
294
- attr_reader commit_characters: Array[String]?
295
-
296
- attr_reader command: Command?
297
-
298
- attr_reader data: untyped?
299
-
300
- def initialize:(
301
- label: String,
302
- ?label_details: CompletionItemLabelDetails?,
303
- ?kind: Constant::CompletionItemKind::t?,
304
- ?tags: Array[Constant::CompletionItemTag::t]?,
305
- ?detail: String?,
306
- ?documentation: MarkupContent?,
307
- ?preselect: bool?,
308
- ?sort_text: String?,
309
- ?filter_text: String?,
310
- ?insert_text: String?,
311
- ?insert_text_format: Constant::InsertTextFormat::t?,
312
- ?insert_text_mode: Constant::InsertTextMode::t?,
313
- ?text_edit: TextEdit | InsertReplaceEdit | nil,
314
- ?text_edit_text: String?,
315
- ?additional_text_edits: Array[TextEdit]?,
316
- ?commit_characters: Array[String]?,
317
- ?command: Command?,
318
- ?data: untyped?
319
- ) -> void
320
- end
321
-
322
- class CompletionItemLabelDetails
323
- include _Base
324
-
325
- attr_reader detail: String?
326
-
327
- attr_reader description: String?
328
-
329
- def initialize: (?detail: String?, ?description: String?) -> void
330
- end
331
-
332
- class SignatureInformation
333
- include _Base
334
-
335
- attr_reader label: String
336
-
337
- attr_reader documentation: MarkupContent?
338
-
339
- attr_reader parameters: Array[ParameterInformation]?
340
-
341
- attr_reader active_parameter: Integer?
342
-
343
- def initialize: (label: String, ?documentation: MarkupContent?, ?parameters: Array[ParameterInformation]?, ?active_parameter: Integer?) -> void
344
- end
345
-
346
- class ParameterInformation
347
- include _Base
348
-
349
- attr_reader label: String | [Integer, Integer]
350
-
351
- attr_reader documentation: MarkupContent?
352
-
353
- def initialize: (label: String | [Integer, Integer], ?documentation: MarkupContent) -> void
354
- end
355
-
356
- class SignatureHelp
357
- include _Base
358
-
359
- attr_reader signatures: Array[SignatureInformation]
360
-
361
- attr_reader active_signature: Integer?
362
-
363
- attr_reader active_parameter: Integer?
364
-
365
- def initialize: (signatures: Array[SignatureInformation], ?active_signature: Integer?, ?active_parameter: Integer?) -> void
366
- end
367
-
368
- class PublishDiagnosticsParams
369
- include _Base
370
-
371
- attr_reader uri: String
372
-
373
- attr_reader version: Integer?
374
-
375
- attr_reader diagnostics: Array[Diagnostic]
376
-
377
- def initialize: (uri: String, ?version: Integer?, diagnostics: Array[Diagnostic]) -> void
378
- end
379
-
380
- class Diagnostic
381
- type json = {
382
- range: Range::json,
383
- severity: Constant::DiagnosticSeverity::t?,
384
- code: Integer | String | nil,
385
- codeDescription: CodeDescription::json?,
386
- source: String?,
387
- message: String,
388
- tags: Array[Constant::DiagnosticTag::t]?,
389
- relatedInformation: RelatedInformation::json?,
390
- data: untyped?
391
- }
392
-
393
- attr_reader range: Range
394
-
395
- attr_reader severity: Constant::DiagnosticSeverity::t?
396
-
397
- attr_reader code: Integer | String | nil
398
-
399
- attr_reader code_description: CodeDescription?
400
-
401
- attr_reader source: String?
402
-
403
- attr_reader message: String
404
-
405
- attr_reader tags: Array[Constant::DiagnosticTag::t]?
406
-
407
- attr_reader related_information: RelatedInformation?
408
-
409
- attr_reader data: untyped?
410
-
411
- def initialize: (
412
- range: Range,
413
- ?severity: Constant::DiagnosticSeverity::t?,
414
- ?code: Integer | String | nil,
415
- ?code_description: CodeDescription?,
416
- ?source: String?,
417
- message: String,
418
- ?tags: Array[Constant::DiagnosticTag::t]?,
419
- ?related_information: RelatedInformation?,
420
- ?data: untyped
421
- ) -> void
422
- end
423
-
424
- class RelatedInformation
425
- include _Base
426
-
427
- type json = {
428
- location: Location::json,
429
- message: String
430
- }
431
-
432
- attr_reader location: Location
433
-
434
- attr_reader message: String
435
-
436
- def initialize: (location: Location, message: String) -> void
437
- end
438
-
439
- class CodeDescription
440
- include _Base
441
-
442
- type json = { href: String }
443
-
444
- attr_reader href: String
445
-
446
- def initialize: (href: String) -> void
447
- end
448
- end
449
- end
450
- end
@@ -1,33 +0,0 @@
1
- module Parser
2
- module Source
3
- class Comment
4
- def self.associate: (untyped ast, untyped comments) -> untyped
5
-
6
- def self.associate_by_identity: (untyped ast, untyped comments) -> untyped
7
-
8
- def self.associate_locations: (untyped ast, untyped comments) -> untyped
9
-
10
- public
11
-
12
- def ==: (untyped other) -> bool
13
-
14
- def document?: () -> bool
15
-
16
- def inline?: () -> bool
17
-
18
- def inspect: () -> String
19
-
20
- alias loc location
21
-
22
- def location: () -> Map
23
-
24
- def text: () -> String
25
-
26
- def type: () -> (:inline | :document)
27
-
28
- private
29
-
30
- def initialize: (untyped range) -> void
31
- end
32
- end
33
- end
@@ -1,252 +0,0 @@
1
- module Parser
2
- module AST
3
- interface _BlockNode
4
- def type: () -> :block
5
-
6
- %a{pure} def loc: () -> (Source::Map & _BlockLocation)
7
- end
8
-
9
- interface _BlockLocation
10
- %a{pure} def end: () -> Source::Range
11
- end
12
-
13
- interface _DefNode
14
- def type: () -> :def
15
-
16
- def children: () -> [Symbol, Node, Node?]
17
-
18
- %a{pure} def loc: () -> (Source::Map & _DefLocation)
19
- end
20
-
21
- interface _DefLocation
22
- def name: () -> Source::Range
23
-
24
- %a{pure} def end: () -> Source::Range?
25
- end
26
-
27
- interface _CaseNode
28
- def type: () -> :case
29
-
30
- %a{pure} def loc: () -> (Source::Map & _CaseLocation)
31
- end
32
-
33
- interface _CaseLocation
34
- %a{pure} def else: () -> Source::Range?
35
-
36
- %a{pure} def end: () -> Source::Range
37
- end
38
-
39
- interface _NamedLocation
40
- %a{pure} def name: () -> Source::Range
41
- end
42
-
43
- interface _SelectorLocation
44
- %a{pure} def selector: () -> Source::Range
45
- end
46
-
47
- # ```ruby
48
- # if foo then bar else baz end
49
- # #^ => keyword
50
- # # ^^^^ => begin
51
- # # ^^^^ => else
52
- # # ^^^ => end
53
- # ```
54
- #
55
- interface _Condition
56
- %a{pure} def keyword: () -> Source::Range
57
-
58
- %a{pure} def begin: () -> Source::Range?
59
-
60
- %a{pure} def else: () -> Source::Range?
61
-
62
- %a{pure} def end: () -> Source::Range?
63
- end
64
-
65
- # ```ruby
66
- # foo ? bar : baz
67
- # # ^ question
68
- # # ^ colon
69
- # ```
70
- interface _Ternary
71
- %a{pure} def question: () -> Source::Range
72
-
73
- %a{pure} def colon: () -> Source::Range
74
- end
75
-
76
- interface _Variable
77
- %a{pure} def name: () -> Source::Range
78
-
79
- %a{pure} def operator: () -> Source::Range?
80
- end
81
-
82
- # ```ruby
83
- # foo.bar(baz)
84
- # # ^ => dot
85
- # # ^^^ => selector
86
- # # ^ => begin
87
- # # ^ => end
88
- #
89
- # foo.bar += 1
90
- # # ^ => dot
91
- # # ^^^ => selector
92
- # # ^^ => operator
93
- # ```
94
- #
95
- interface _Send
96
- %a{pure} def dot: () -> Source::Range?
97
-
98
- %a{pure} def selector: () -> Source::Range
99
-
100
- %a{pure} def operator: () -> Source::Range?
101
-
102
- %a{pure} def begin: () -> Source::Range?
103
-
104
- %a{pure} def end: () -> Source::Range?
105
- end
106
-
107
- # ```ruby
108
- # rescue Foo => x then
109
- # #^^^^^ => keyword
110
- # # ^^ => assoc
111
- # # ^^^^ => begin
112
- # ```
113
- interface _RescueBody
114
- %a{pure} def keyword: () -> Source::Range
115
-
116
- %a{pure} def assoc: () -> Source::Range?
117
-
118
- %a{pure} def begin: () -> Source::Range?
119
- end
120
-
121
- # ```ruby
122
- # +1
123
- # ^ => operator
124
- # ```
125
- interface _Operator
126
- %a{pure} def operator: () -> Source::Range?
127
- end
128
-
129
- # ```ruby
130
- # def self.foo(); end
131
- # #^^ => keyword
132
- # # ^ => operator
133
- # # ^^^ => name
134
- # # ^^^ => end
135
- #
136
- # def foo = bar
137
- # #^^ => keyword
138
- # # ^^^ => name
139
- # # ^ => assignment
140
- # ```
141
- interface _MethodDefinition
142
- %a{pure} def keyword: () -> Source::Range
143
-
144
- %a{pure} def operator: () -> Source::Range?
145
-
146
- %a{pure} def name: () -> Source::Range
147
-
148
- %a{pure} def end: () -> Source::Range?
149
-
150
- %a{pure} def assignment: () -> Source::Range?
151
- end
152
-
153
- # ```ruby
154
- # when foo then
155
- # #^^^ => keyword
156
- # # ^^^^ => begin
157
- # ```
158
- interface _Keyword
159
- %a{pure} def keyword: () -> Source::Range
160
-
161
- %a{pure} def begin: () -> Source::Range?
162
-
163
- %a{pure} def end: () -> Source::Range?
164
- end
165
-
166
- # ```ruby
167
- # foo[1] += 1
168
- # # ^ => begin
169
- # # ^ => end
170
- # # ^^ => operator
171
- # ```
172
- interface _Index
173
- %a{pure} def begin: () -> Source::Range
174
-
175
- %a{pure} def end: () -> Source::Range
176
-
177
- %a{pure} def operator: () -> Source::Range?
178
- end
179
-
180
- # ```ruby
181
- # <<FOO <= expression
182
- # foo <= heredoc_body
183
- # FOO <= heredoc_end
184
- # ```
185
- #
186
- interface _Heredoc
187
- %a{pure} def heredoc_body: () -> Source::Range
188
-
189
- %a{pure} def heredoc_end: () -> Source::Range
190
- end
191
-
192
- # ```ruby
193
- # for x in [] then ... end
194
- # #^^ => keyword
195
- # # ^^ => in
196
- # # ^^^^ => begin
197
- # # ^^^ => end
198
- # ```
199
- interface _For
200
- %a{pure} def keyword: () -> Source::Range
201
-
202
- %a{pure} def in: () -> Source::Range
203
-
204
- %a{pure} def begin: () -> Source::Range?
205
-
206
- %a{pure} def end: () -> Source::Range
207
- end
208
-
209
- # ```ruby
210
- # class Foo::Bar < Baz; end
211
- # #^^^^ => keyword
212
- # # ^^^^^^^^ => name
213
- # # ^ => operator
214
- # # ^^^ => end
215
- # ```
216
- interface _Definition
217
- %a{pure} def keyword: () -> Source::Range
218
-
219
- %a{pure} def name: () -> Source::Range
220
-
221
- %a{pure} def operator: () -> Source::Range?
222
-
223
- %a{pure} def end: () -> Source::Range
224
- end
225
-
226
- # ```ruby
227
- # Foo::Bar += 1
228
- # # ^^ => double_colon
229
- # # ^^^ => name
230
- # # ^^ => operator
231
- # ```
232
- #
233
- interface _Constant
234
- %a{pure} def double_colon: () -> Source::Range?
235
-
236
- %a{pure} def name: () -> Source::Range
237
-
238
- %a{pure} def operator: () -> Source::Range?
239
- end
240
-
241
- # ```ruby
242
- # (1)
243
- # # ^ => begin
244
- # # ^ => end
245
- # ```
246
- interface _Collection
247
- %a{pure} def begin: () -> Source::Range?
248
-
249
- %a{pure} def end: () -> Source::Range?
250
- end
251
- end
252
- end