ruby-lsp 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/VERSION +1 -1
  4. data/lib/ruby_lsp/handler.rb +0 -19
  5. data/lib/ruby_lsp/requests/document_link.rb +59 -0
  6. data/lib/ruby_lsp/requests/semantic_highlighting.rb +11 -5
  7. data/lib/ruby_lsp/requests/support/highlight_target.rb +2 -1
  8. data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +9 -2
  9. data/lib/ruby_lsp/requests.rb +2 -0
  10. data/lib/ruby_lsp/server.rb +51 -19
  11. metadata +3 -69
  12. data/.github/dependabot.yml +0 -11
  13. data/.github/probots.yml +0 -2
  14. data/.github/pull_request_template.md +0 -15
  15. data/.github/workflows/ci.yml +0 -31
  16. data/.github/workflows/publish_docs.yml +0 -32
  17. data/.gitignore +0 -9
  18. data/.rubocop.yml +0 -40
  19. data/.vscode/extensions.json +0 -5
  20. data/.vscode/settings.json +0 -5
  21. data/.vscode/tasks.json +0 -25
  22. data/CODE_OF_CONDUCT.md +0 -78
  23. data/Gemfile +0 -18
  24. data/Gemfile.lock +0 -126
  25. data/Rakefile +0 -28
  26. data/bin/console +0 -19
  27. data/bin/rubocop +0 -29
  28. data/bin/tapioca +0 -29
  29. data/bin/test +0 -9
  30. data/dev.yml +0 -20
  31. data/rakelib/check_docs.rake +0 -81
  32. data/ruby-lsp.gemspec +0 -27
  33. data/service.yml +0 -2
  34. data/sorbet/config +0 -4
  35. data/sorbet/rbi/.rubocop.yml +0 -8
  36. data/sorbet/rbi/gems/ansi@1.5.0.rbi +0 -338
  37. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -522
  38. data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -418
  39. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -8
  40. data/sorbet/rbi/gems/debug@1.5.0.rbi +0 -1273
  41. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -867
  42. data/sorbet/rbi/gems/io-console@0.5.11.rbi +0 -8
  43. data/sorbet/rbi/gems/irb@1.4.1.rbi +0 -376
  44. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +0 -7325
  45. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -8
  46. data/sorbet/rbi/gems/minitest-reporters@1.5.0.rbi +0 -612
  47. data/sorbet/rbi/gems/minitest@5.15.0.rbi +0 -994
  48. data/sorbet/rbi/gems/parallel@1.22.1.rbi +0 -163
  49. data/sorbet/rbi/gems/parser@3.1.2.0.rbi +0 -3968
  50. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +0 -734
  51. data/sorbet/rbi/gems/pry@0.14.1.rbi +0 -8
  52. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -227
  53. data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -1853
  54. data/sorbet/rbi/gems/rbi@0.0.14.rbi +0 -2337
  55. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +0 -1854
  56. data/sorbet/rbi/gems/reline@0.3.1.rbi +0 -1274
  57. data/sorbet/rbi/gems/rexml@3.2.5.rbi +0 -3852
  58. data/sorbet/rbi/gems/rubocop-ast@1.18.0.rbi +0 -4180
  59. data/sorbet/rbi/gems/rubocop-minitest@0.20.0.rbi +0 -1369
  60. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -246
  61. data/sorbet/rbi/gems/rubocop-shopify@2.6.0.rbi +0 -8
  62. data/sorbet/rbi/gems/rubocop-sorbet@0.6.8.rbi +0 -652
  63. data/sorbet/rbi/gems/rubocop@1.30.0.rbi +0 -36729
  64. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +0 -732
  65. data/sorbet/rbi/gems/spoom@1.1.11.rbi +0 -1600
  66. data/sorbet/rbi/gems/syntax_tree@2.7.1.rbi +0 -6777
  67. data/sorbet/rbi/gems/tapioca@0.8.1.rbi +0 -1972
  68. data/sorbet/rbi/gems/thor@1.2.1.rbi +0 -2921
  69. data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +0 -27
  70. data/sorbet/rbi/gems/unparser@0.6.5.rbi +0 -2789
  71. data/sorbet/rbi/gems/webrick@1.7.0.rbi +0 -1779
  72. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +0 -289
  73. data/sorbet/rbi/gems/yard@0.9.27.rbi +0 -13048
  74. data/sorbet/rbi/shims/fiddle.rbi +0 -4
  75. data/sorbet/rbi/shims/hash.rbi +0 -6
  76. data/sorbet/rbi/shims/rdoc.rbi +0 -4
  77. data/sorbet/tapioca/config.yml +0 -13
  78. data/sorbet/tapioca/require.rb +0 -7
@@ -1,1600 +0,0 @@
1
- # typed: true
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This is an autogenerated file for types exported from the `spoom` gem.
5
- # Please instead update this file by running `bin/tapioca gem spoom`.
6
-
7
- module Spoom
8
- class << self
9
- sig { params(cmd: ::String, arg: ::String, path: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
10
- def exec(cmd, *arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
11
- end
12
- end
13
-
14
- module Spoom::Cli; end
15
-
16
- class Spoom::Cli::Bump < ::Thor
17
- include ::Spoom::Colorize
18
- include ::Spoom::Cli::Helper
19
-
20
- sig { params(directory: ::String).void }
21
- def bump(directory = T.unsafe(nil)); end
22
-
23
- def config_files(path: T.unsafe(nil)); end
24
- def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
25
- def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
26
- def undo_changes(files, from_strictness); end
27
- end
28
-
29
- class Spoom::Cli::Config < ::Thor
30
- include ::Spoom::Colorize
31
- include ::Spoom::Cli::Helper
32
-
33
- def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
34
- def show; end
35
- end
36
-
37
- class Spoom::Cli::Coverage < ::Thor
38
- include ::Spoom::Colorize
39
- include ::Spoom::Cli::Helper
40
-
41
- def bundle_install(path, sha); end
42
- def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
43
- def message_no_data(file); end
44
- def open(file = T.unsafe(nil)); end
45
- def parse_time(string, option); end
46
- def report; end
47
- def snapshot; end
48
- def timeline; end
49
- end
50
-
51
- Spoom::Cli::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
52
-
53
- module Spoom::Cli::Helper
54
- include ::Spoom::Colorize
55
-
56
- requires_ancestor { Thor }
57
-
58
- sig { params(string: ::String).returns(::String) }
59
- def blue(string); end
60
-
61
- sig { params(exit_code: ::Integer, block: T.nilable(T.proc.void)).void }
62
- def check_sorbet_segfault(exit_code, &block); end
63
-
64
- # Is the `--color` option true?
65
- sig { returns(T::Boolean) }
66
- def color?; end
67
-
68
- # Colorize a string if `color?`
69
- sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
70
- def colorize(string, *color); end
71
-
72
- sig { params(string: ::String).returns(::String) }
73
- def cyan(string); end
74
-
75
- # Return the path specified through `--path`
76
- sig { returns(::String) }
77
- def exec_path; end
78
-
79
- sig { params(string: ::String).returns(::String) }
80
- def gray(string); end
81
-
82
- sig { params(string: ::String).returns(::String) }
83
- def green(string); end
84
-
85
- sig { params(string: ::String).returns(::String) }
86
- def highlight(string); end
87
-
88
- # Enforce that `spoom` is ran inside a project with a `sorbet/config` file
89
- #
90
- # Display an error message and exit otherwise.
91
- sig { void }
92
- def in_sorbet_project!; end
93
-
94
- # Is `spoom` ran inside a project with a `sorbet/config` file?
95
- sig { returns(T::Boolean) }
96
- def in_sorbet_project?; end
97
-
98
- sig { params(string: ::String).returns(::String) }
99
- def red(string); end
100
-
101
- # Print `message` on `$stdout`
102
- sig { params(message: ::String).void }
103
- def say(message); end
104
-
105
- # Print `message` on `$stderr`
106
- #
107
- # The message is prefixed by a status (default: `Error`).
108
- sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
109
- def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
110
-
111
- sig { returns(::Spoom::Sorbet::Config) }
112
- def sorbet_config; end
113
-
114
- sig { returns(::String) }
115
- def sorbet_config_file; end
116
-
117
- sig { params(string: ::String).returns(::String) }
118
- def yellow(string); end
119
- end
120
-
121
- class Spoom::Cli::LSP < ::Thor
122
- include ::Spoom::Colorize
123
- include ::Spoom::Cli::Helper
124
-
125
- # TODO: options, filter, limit, kind etc.. filter rbi
126
- def defs(file, line, col); end
127
-
128
- # TODO: options, filter, limit, kind etc.. filter rbi
129
- def find(query); end
130
-
131
- def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
132
-
133
- # TODO: options, filter, limit, kind etc.. filter rbi
134
- def hover(file, line, col); end
135
-
136
- # TODO: options, filter, limit, kind etc.. filter rbi
137
- def list; end
138
-
139
- def lsp_client; end
140
-
141
- # TODO: options, filter, limit, kind etc.. filter rbi
142
- def refs(file, line, col); end
143
-
144
- def run(&block); end
145
- def show; end
146
-
147
- # TODO: options, filter, limit, kind etc.. filter rbi
148
- def sigs(file, line, col); end
149
-
150
- def symbol_printer; end
151
-
152
- # TODO: options, filter, limit, kind etc.. filter rbi
153
- def symbols(file); end
154
-
155
- def to_uri(path); end
156
-
157
- # TODO: options, filter, limit, kind etc.. filter rbi
158
- def types(file, line, col); end
159
- end
160
-
161
- class Spoom::Cli::Main < ::Thor
162
- include ::Spoom::Colorize
163
- include ::Spoom::Cli::Helper
164
-
165
- def __print_version; end
166
- def bump(*args); end
167
- def config(*args); end
168
- def coverage(*args); end
169
- def files; end
170
- def lsp(*args); end
171
- def tc(*args); end
172
-
173
- class << self
174
- # Utils
175
- #
176
- # @return [Boolean]
177
- def exit_on_failure?; end
178
- end
179
- end
180
-
181
- class Spoom::Cli::Run < ::Thor
182
- include ::Spoom::Colorize
183
- include ::Spoom::Cli::Helper
184
-
185
- def colorize_message(message); end
186
- def format_error(error, format); end
187
- def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
188
- def tc(*arg); end
189
- end
190
-
191
- Spoom::Cli::Run::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
192
- Spoom::Cli::Run::SORT_CODE = T.let(T.unsafe(nil), String)
193
- Spoom::Cli::Run::SORT_ENUM = T.let(T.unsafe(nil), Array)
194
- Spoom::Cli::Run::SORT_LOC = T.let(T.unsafe(nil), String)
195
-
196
- class Spoom::Color < ::T::Enum
197
- enums do
198
- CLEAR = new
199
- BOLD = new
200
- BLACK = new
201
- RED = new
202
- GREEN = new
203
- YELLOW = new
204
- BLUE = new
205
- MAGENTA = new
206
- CYAN = new
207
- WHITE = new
208
- LIGHT_BLACK = new
209
- LIGHT_RED = new
210
- LIGHT_GREEN = new
211
- LIGHT_YELLOW = new
212
- LIGHT_BLUE = new
213
- LIGHT_MAGENTA = new
214
- LIGHT_CYAN = new
215
- LIGHT_WHITE = new
216
- end
217
-
218
- sig { returns(::String) }
219
- def ansi_code; end
220
- end
221
-
222
- module Spoom::Colorize
223
- sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
224
- def set_color(string, *color); end
225
- end
226
-
227
- module Spoom::Coverage
228
- class << self
229
- sig do
230
- params(
231
- snapshots: T::Array[::Spoom::Coverage::Snapshot],
232
- palette: ::Spoom::Coverage::D3::ColorPalette,
233
- path: ::String
234
- ).returns(::Spoom::Coverage::Report)
235
- end
236
- def report(snapshots, palette:, path: T.unsafe(nil)); end
237
-
238
- sig { params(path: ::String).returns(::Spoom::FileTree) }
239
- def sigils_tree(path: T.unsafe(nil)); end
240
-
241
- sig do
242
- params(
243
- path: ::String,
244
- rbi: T::Boolean,
245
- sorbet_bin: T.nilable(::String)
246
- ).returns(::Spoom::Coverage::Snapshot)
247
- end
248
- def snapshot(path: T.unsafe(nil), rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
249
-
250
- sig { params(path: ::String).returns(::Spoom::Sorbet::Config) }
251
- def sorbet_config(path: T.unsafe(nil)); end
252
- end
253
- end
254
-
255
- module Spoom::Coverage::Cards; end
256
-
257
- class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
258
- sig { params(template: ::String, title: T.nilable(::String), body: T.nilable(::String)).void }
259
- def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
260
-
261
- # @return [String, nil]
262
- def body; end
263
-
264
- sig { returns(T.nilable(::String)) }
265
- def title; end
266
- end
267
-
268
- Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
269
-
270
- # @abstract It cannont be directly instantiated. Subclasses must implement the `abstract` methods below.
271
- class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
272
- abstract!
273
-
274
- sig { void }
275
- def initialize; end
276
-
277
- # @abstract
278
- sig { abstract.returns(::String) }
279
- def erb; end
280
-
281
- sig { override.returns(::String) }
282
- def html; end
283
- end
284
-
285
- class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
286
- sig { params(sigils_tree: ::Spoom::FileTree, title: ::String).void }
287
- def initialize(sigils_tree:, title: T.unsafe(nil)); end
288
- end
289
-
290
- class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
291
- sig { params(snapshot: ::Spoom::Coverage::Snapshot, title: ::String).void }
292
- def initialize(snapshot:, title: T.unsafe(nil)); end
293
-
294
- sig { returns(::Spoom::Coverage::D3::Pie::Calls) }
295
- def pie_calls; end
296
-
297
- sig { returns(::Spoom::Coverage::D3::Pie::Sigils) }
298
- def pie_sigils; end
299
-
300
- sig { returns(::Spoom::Coverage::D3::Pie::Sigs) }
301
- def pie_sigs; end
302
-
303
- sig { returns(::Spoom::Coverage::Snapshot) }
304
- def snapshot; end
305
- end
306
-
307
- Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
308
-
309
- class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
310
- sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
311
- def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
312
-
313
- sig { override.returns(::String) }
314
- def erb; end
315
- end
316
-
317
- class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
318
- sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
319
- def initialize(title:, timeline:); end
320
- end
321
-
322
- class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
323
- sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
324
- def initialize(snapshots:, title: T.unsafe(nil)); end
325
- end
326
-
327
- class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
328
- sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
329
- def initialize(snapshots:, title: T.unsafe(nil)); end
330
- end
331
-
332
- class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
333
- sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
334
- def initialize(snapshots:, title: T.unsafe(nil)); end
335
- end
336
-
337
- class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
338
- sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
339
- def initialize(snapshots:, title: T.unsafe(nil)); end
340
- end
341
-
342
- class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
343
- sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
344
- def initialize(snapshots:, title: T.unsafe(nil)); end
345
- end
346
-
347
- class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
348
- sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
349
- def initialize(snapshots:, title: T.unsafe(nil)); end
350
- end
351
-
352
- module Spoom::Coverage::D3
353
- class << self
354
- sig { params(palette: ::Spoom::Coverage::D3::ColorPalette).returns(::String) }
355
- def header_script(palette); end
356
-
357
- sig { returns(::String) }
358
- def header_style; end
359
- end
360
- end
361
-
362
- # @abstract It cannont be directly instantiated. Subclasses must implement the `abstract` methods below.
363
- class Spoom::Coverage::D3::Base
364
- abstract!
365
-
366
- sig { params(id: ::String, data: T.untyped).void }
367
- def initialize(id, data); end
368
-
369
- sig { returns(::String) }
370
- def html; end
371
-
372
- sig { returns(::String) }
373
- def id; end
374
-
375
- # @abstract
376
- sig { abstract.returns(::String) }
377
- def script; end
378
-
379
- sig { returns(::String) }
380
- def tooltip; end
381
-
382
- class << self
383
- sig { returns(::String) }
384
- def header_script; end
385
-
386
- sig { returns(::String) }
387
- def header_style; end
388
- end
389
- end
390
-
391
- Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
392
- Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
393
- Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
394
- Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
395
- Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
396
-
397
- class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
398
- sig { override.returns(::String) }
399
- def script; end
400
-
401
- class << self
402
- sig { returns(::String) }
403
- def header_script; end
404
-
405
- sig { returns(::String) }
406
- def header_style; end
407
- end
408
- end
409
-
410
- class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
411
- sig { params(id: ::String, sigils_tree: ::Spoom::FileTree).void }
412
- def initialize(id, sigils_tree); end
413
-
414
- sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
415
- def tree_node_score(node); end
416
-
417
- sig { params(node: ::Spoom::FileTree::Node).returns(T.nilable(::String)) }
418
- def tree_node_strictness(node); end
419
-
420
- sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
421
- def tree_node_to_json(node); end
422
- end
423
-
424
- class Spoom::Coverage::D3::ColorPalette < ::T::Struct
425
- prop :false, ::String
426
- prop :ignore, ::String
427
- prop :strict, ::String
428
- prop :strong, ::String
429
- prop :true, ::String
430
-
431
- class << self
432
- def inherited(s); end
433
- end
434
- end
435
-
436
- # @abstract It cannont be directly instantiated. Subclasses must implement the `abstract` methods below.
437
- class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
438
- abstract!
439
-
440
- sig { params(id: ::String, title: ::String, data: T.untyped).void }
441
- def initialize(id, title, data); end
442
-
443
- sig { override.returns(::String) }
444
- def script; end
445
-
446
- class << self
447
- sig { returns(::String) }
448
- def header_script; end
449
-
450
- sig { returns(::String) }
451
- def header_style; end
452
- end
453
- end
454
-
455
- class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
456
- sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
457
- def initialize(id, title, snapshot); end
458
-
459
- sig { override.returns(::String) }
460
- def tooltip; end
461
- end
462
-
463
- class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
464
- sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
465
- def initialize(id, title, snapshot); end
466
-
467
- sig { override.returns(::String) }
468
- def tooltip; end
469
- end
470
-
471
- class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
472
- sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
473
- def initialize(id, title, snapshot); end
474
-
475
- sig { override.returns(::String) }
476
- def tooltip; end
477
- end
478
-
479
- # @abstract It cannont be directly instantiated. Subclasses must implement the `abstract` methods below.
480
- class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
481
- abstract!
482
-
483
- sig { params(id: ::String, data: T.untyped, keys: T::Array[::String]).void }
484
- def initialize(id, data, keys); end
485
-
486
- sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
487
- def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
488
-
489
- sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
490
- def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
491
-
492
- # @abstract
493
- sig { abstract.returns(::String) }
494
- def plot; end
495
-
496
- sig { params(y: ::String).returns(::String) }
497
- def points(y:); end
498
-
499
- sig { override.returns(::String) }
500
- def script; end
501
-
502
- sig { returns(::String) }
503
- def x_scale; end
504
-
505
- sig { returns(::String) }
506
- def x_ticks; end
507
-
508
- sig { params(min: ::String, max: ::String, ticks: ::String).returns(::String) }
509
- def y_scale(min:, max:, ticks:); end
510
-
511
- sig { params(ticks: ::String, format: ::String, padding: ::Integer).returns(::String) }
512
- def y_ticks(ticks:, format:, padding:); end
513
-
514
- class << self
515
- sig { returns(::String) }
516
- def header_script; end
517
-
518
- sig { returns(::String) }
519
- def header_style; end
520
- end
521
- end
522
-
523
- class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
524
- sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
525
- def initialize(id, snapshots); end
526
-
527
- sig { override.returns(::String) }
528
- def tooltip; end
529
- end
530
-
531
- class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
532
- sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
533
- def initialize(id, snapshots); end
534
-
535
- sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
536
- def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
537
-
538
- sig { override.returns(::String) }
539
- def plot; end
540
-
541
- sig { override.returns(::String) }
542
- def script; end
543
-
544
- sig { override.returns(::String) }
545
- def tooltip; end
546
- end
547
-
548
- class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
549
- sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
550
- def initialize(id, snapshots); end
551
-
552
- sig { override.returns(::String) }
553
- def plot; end
554
-
555
- sig { override.returns(::String) }
556
- def tooltip; end
557
- end
558
-
559
- class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
560
- sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
561
- def initialize(id, snapshots); end
562
-
563
- sig { override.returns(::String) }
564
- def tooltip; end
565
- end
566
-
567
- class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
568
- sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
569
- def initialize(id, snapshots); end
570
-
571
- sig { override.returns(::String) }
572
- def tooltip; end
573
- end
574
-
575
- # @abstract It cannont be directly instantiated. Subclasses must implement the `abstract` methods below.
576
- class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
577
- abstract!
578
-
579
- def initialize(*args, **_arg1, &blk); end
580
-
581
- sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
582
- def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
583
-
584
- sig { override.returns(::String) }
585
- def plot; end
586
-
587
- sig { override.returns(::String) }
588
- def script; end
589
- end
590
-
591
- class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
592
- sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
593
- def initialize(id, snapshots); end
594
-
595
- sig { override.returns(::String) }
596
- def plot; end
597
-
598
- sig { override.returns(::String) }
599
- def tooltip; end
600
- end
601
-
602
- # @abstract It cannont be directly instantiated. Subclasses must implement the `abstract` methods below.
603
- class Spoom::Coverage::Page < ::Spoom::Coverage::Template
604
- abstract!
605
-
606
- sig { params(title: ::String, palette: ::Spoom::Coverage::D3::ColorPalette, template: ::String).void }
607
- def initialize(title:, palette:, template: T.unsafe(nil)); end
608
-
609
- sig { returns(::String) }
610
- def body_html; end
611
-
612
- # @abstract
613
- sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
614
- def cards; end
615
-
616
- sig { returns(::String) }
617
- def footer_html; end
618
-
619
- sig { returns(::String) }
620
- def header_html; end
621
-
622
- sig { returns(::String) }
623
- def header_script; end
624
-
625
- sig { returns(::String) }
626
- def header_style; end
627
-
628
- sig { returns(::Spoom::Coverage::D3::ColorPalette) }
629
- def palette; end
630
-
631
- sig { returns(::String) }
632
- def title; end
633
- end
634
-
635
- Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
636
-
637
- class Spoom::Coverage::Report < ::Spoom::Coverage::Page
638
- sig do
639
- params(
640
- project_name: ::String,
641
- palette: ::Spoom::Coverage::D3::ColorPalette,
642
- snapshots: T::Array[::Spoom::Coverage::Snapshot],
643
- sigils_tree: ::Spoom::FileTree,
644
- sorbet_intro_commit: T.nilable(::String),
645
- sorbet_intro_date: T.nilable(::Time)
646
- ).void
647
- end
648
- def initialize(project_name:, palette:, snapshots:, sigils_tree:, sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
649
-
650
- sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
651
- def cards; end
652
-
653
- sig { override.returns(::String) }
654
- def header_html; end
655
-
656
- sig { returns(::String) }
657
- def project_name; end
658
-
659
- sig { returns(::Spoom::FileTree) }
660
- def sigils_tree; end
661
-
662
- sig { returns(T::Array[::Spoom::Coverage::Snapshot]) }
663
- def snapshots; end
664
-
665
- sig { returns(T.nilable(::String)) }
666
- def sorbet_intro_commit; end
667
-
668
- sig { returns(T.nilable(::Time)) }
669
- def sorbet_intro_date; end
670
- end
671
-
672
- class Spoom::Coverage::Snapshot < ::T::Struct
673
- prop :calls_typed, ::Integer, default: T.unsafe(nil)
674
- prop :calls_untyped, ::Integer, default: T.unsafe(nil)
675
- prop :classes, ::Integer, default: T.unsafe(nil)
676
- prop :commit_sha, T.nilable(::String), default: T.unsafe(nil)
677
- prop :commit_timestamp, T.nilable(::Integer), default: T.unsafe(nil)
678
- prop :duration, ::Integer, default: T.unsafe(nil)
679
- prop :files, ::Integer, default: T.unsafe(nil)
680
- prop :methods_with_sig, ::Integer, default: T.unsafe(nil)
681
- prop :methods_without_sig, ::Integer, default: T.unsafe(nil)
682
- prop :modules, ::Integer, default: T.unsafe(nil)
683
- prop :rbi_files, ::Integer, default: T.unsafe(nil)
684
- prop :sigils, T::Hash[::String, ::Integer], default: T.unsafe(nil)
685
- prop :singleton_classes, ::Integer, default: T.unsafe(nil)
686
- prop :timestamp, ::Integer, default: T.unsafe(nil)
687
- prop :version_runtime, T.nilable(::String), default: T.unsafe(nil)
688
- prop :version_static, T.nilable(::String), default: T.unsafe(nil)
689
-
690
- sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
691
- def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
692
-
693
- sig { params(arg: T.untyped).returns(::String) }
694
- def to_json(*arg); end
695
-
696
- class << self
697
- sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
698
- def from_json(json); end
699
-
700
- sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
701
- def from_obj(obj); end
702
-
703
- def inherited(s); end
704
- end
705
- end
706
-
707
- # The strictness name as found in the Sorbet metrics file
708
- Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
709
-
710
- class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
711
- sig { params(snapshot: ::Spoom::Coverage::Snapshot).void }
712
- def print_snapshot(snapshot); end
713
-
714
- private
715
-
716
- sig { params(value: T.nilable(::Integer), total: T.nilable(::Integer)).returns(::String) }
717
- def percent(value, total); end
718
-
719
- sig { params(hash: T::Hash[::String, ::Integer], total: ::Integer).void }
720
- def print_map(hash, total); end
721
- end
722
-
723
- # @abstract It cannont be directly instantiated. Subclasses must implement the `abstract` methods below.
724
- class Spoom::Coverage::Template
725
- abstract!
726
-
727
- # Create a new template from an Erb file path
728
- sig { params(template: ::String).void }
729
- def initialize(template:); end
730
-
731
- sig { returns(::String) }
732
- def erb; end
733
-
734
- sig { returns(::Binding) }
735
- def get_binding; end
736
-
737
- sig { returns(::String) }
738
- def html; end
739
- end
740
-
741
- class Spoom::Error < ::StandardError; end
742
-
743
- class Spoom::ExecResult < ::T::Struct
744
- const :err, ::String
745
- const :exit_code, ::Integer
746
- const :out, ::String
747
- const :status, T::Boolean
748
-
749
- class << self
750
- def inherited(s); end
751
- end
752
- end
753
-
754
- # Build a file hierarchy from a set of file paths.
755
- class Spoom::FileTree
756
- sig { params(paths: T::Enumerable[::String], strip_prefix: T.nilable(::String)).void }
757
- def initialize(paths = T.unsafe(nil), strip_prefix: T.unsafe(nil)); end
758
-
759
- # Add a `path` to the tree
760
- #
761
- # This will create all nodes until the root of `path`.
762
- sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
763
- def add_path(path); end
764
-
765
- # Add all `paths` to the tree
766
- sig { params(paths: T::Enumerable[::String]).void }
767
- def add_paths(paths); end
768
-
769
- # All the nodes in this tree
770
- sig { returns(T::Array[::Spoom::FileTree::Node]) }
771
- def nodes; end
772
-
773
- # All the paths in this tree
774
- sig { returns(T::Array[::String]) }
775
- def paths; end
776
-
777
- sig do
778
- params(
779
- out: T.any(::IO, ::StringIO),
780
- show_strictness: T::Boolean,
781
- colors: T::Boolean,
782
- indent_level: ::Integer
783
- ).void
784
- end
785
- def print(out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
786
-
787
- # All root nodes
788
- sig { returns(T::Array[::Spoom::FileTree::Node]) }
789
- def roots; end
790
-
791
- sig { returns(T.nilable(::String)) }
792
- def strip_prefix; end
793
-
794
- private
795
-
796
- sig do
797
- params(
798
- node: ::Spoom::FileTree::Node,
799
- collected_nodes: T::Array[::Spoom::FileTree::Node]
800
- ).returns(T::Array[::Spoom::FileTree::Node])
801
- end
802
- def collect_nodes(node, collected_nodes = T.unsafe(nil)); end
803
- end
804
-
805
- # A node representing either a file or a directory inside a FileTree
806
- class Spoom::FileTree::Node < ::T::Struct
807
- const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
808
- const :name, ::String
809
- const :parent, T.nilable(::Spoom::FileTree::Node)
810
-
811
- # Full path to this node from root
812
- sig { returns(::String) }
813
- def path; end
814
-
815
- class << self
816
- def inherited(s); end
817
- end
818
- end
819
-
820
- # An internal class used to print a FileTree
821
- #
822
- # See `FileTree#print`
823
- class Spoom::FileTree::TreePrinter < ::Spoom::Printer
824
- sig do
825
- params(
826
- tree: ::Spoom::FileTree,
827
- out: T.any(::IO, ::StringIO),
828
- show_strictness: T::Boolean,
829
- colors: T::Boolean,
830
- indent_level: ::Integer
831
- ).void
832
- end
833
- def initialize(tree:, out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
834
-
835
- sig { params(node: ::Spoom::FileTree::Node).void }
836
- def print_node(node); end
837
-
838
- sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
839
- def print_nodes(nodes); end
840
-
841
- sig { void }
842
- def print_tree; end
843
-
844
- sig { returns(::Spoom::FileTree) }
845
- def tree; end
846
-
847
- private
848
-
849
- sig { params(node: ::Spoom::FileTree::Node).returns(T.nilable(::String)) }
850
- def node_strictness(node); end
851
-
852
- sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
853
- def strictness_color(strictness); end
854
- end
855
-
856
- # Execute git commands
857
- module Spoom::Git
858
- class << self
859
- # Git commands
860
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
861
- def checkout(*arg, path: T.unsafe(nil)); end
862
-
863
- # Get the commit Time for a `sha`
864
- sig { params(sha: ::String, path: ::String).returns(T.nilable(::Time)) }
865
- def commit_time(sha, path: T.unsafe(nil)); end
866
-
867
- # Get the commit epoch timestamp for a `sha`
868
- sig { params(sha: ::String, path: ::String).returns(T.nilable(::Integer)) }
869
- def commit_timestamp(sha, path: T.unsafe(nil)); end
870
-
871
- sig { params(path: ::String).returns(T.nilable(::String)) }
872
- def current_branch(path: T.unsafe(nil)); end
873
-
874
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
875
- def diff(*arg, path: T.unsafe(nil)); end
876
-
877
- # Translate a git epoch timestamp into a Time
878
- sig { params(timestamp: ::String).returns(::Time) }
879
- def epoch_to_time(timestamp); end
880
-
881
- # Execute a `command`
882
- sig { params(command: ::String, arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
883
- def exec(command, *arg, path: T.unsafe(nil)); end
884
-
885
- # Get the last commit sha
886
- sig { params(path: ::String).returns(T.nilable(::String)) }
887
- def last_commit(path: T.unsafe(nil)); end
888
-
889
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
890
- def log(*arg, path: T.unsafe(nil)); end
891
-
892
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
893
- def rev_parse(*arg, path: T.unsafe(nil)); end
894
-
895
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
896
- def show(*arg, path: T.unsafe(nil)); end
897
-
898
- # Get the hash of the commit introducing the `sorbet/config` file
899
- sig { params(path: ::String).returns(T.nilable(::String)) }
900
- def sorbet_intro_commit(path: T.unsafe(nil)); end
901
-
902
- # Get the hash of the commit removing the `sorbet/config` file
903
- sig { params(path: ::String).returns(T.nilable(::String)) }
904
- def sorbet_removal_commit(path: T.unsafe(nil)); end
905
-
906
- # Is there uncommited changes in `path`?
907
- sig { params(path: ::String).returns(T::Boolean) }
908
- def workdir_clean?(path: T.unsafe(nil)); end
909
- end
910
- end
911
-
912
- module Spoom::LSP; end
913
-
914
- class Spoom::LSP::Client
915
- sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
916
- def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
917
-
918
- sig { void }
919
- def close; end
920
-
921
- sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
922
- def definitions(uri, line, column); end
923
-
924
- sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
925
- def document_symbols(uri); end
926
-
927
- sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
928
- def hover(uri, line, column); end
929
-
930
- sig { returns(::Integer) }
931
- def next_id; end
932
-
933
- # LSP requests
934
- #
935
- # @raise [Error::AlreadyOpen]
936
- sig { params(workspace_path: ::String).void }
937
- def open(workspace_path); end
938
-
939
- sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
940
- def read; end
941
-
942
- # @raise [Error::BadHeaders]
943
- sig { returns(T.nilable(::String)) }
944
- def read_raw; end
945
-
946
- sig do
947
- params(
948
- uri: ::String,
949
- line: ::Integer,
950
- column: ::Integer,
951
- include_decl: T::Boolean
952
- ).returns(T::Array[::Spoom::LSP::Location])
953
- end
954
- def references(uri, line, column, include_decl = T.unsafe(nil)); end
955
-
956
- sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
957
- def send(message); end
958
-
959
- sig { params(json_string: ::String).void }
960
- def send_raw(json_string); end
961
-
962
- sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
963
- def signatures(uri, line, column); end
964
-
965
- sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
966
- def symbols(query); end
967
-
968
- sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
969
- def type_definitions(uri, line, column); end
970
- end
971
-
972
- class Spoom::LSP::Diagnostic < ::T::Struct
973
- include ::Spoom::LSP::PrintableSymbol
974
-
975
- const :code, ::Integer
976
- const :informations, ::Object
977
- const :message, ::String
978
- const :range, ::Spoom::LSP::Range
979
-
980
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
981
- def accept_printer(printer); end
982
-
983
- sig { returns(::String) }
984
- def to_s; end
985
-
986
- class << self
987
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
988
- def from_json(json); end
989
-
990
- def inherited(s); end
991
- end
992
- end
993
-
994
- class Spoom::LSP::DocumentSymbol < ::T::Struct
995
- include ::Spoom::LSP::PrintableSymbol
996
-
997
- const :children, T::Array[::Spoom::LSP::DocumentSymbol]
998
- const :detail, T.nilable(::String)
999
- const :kind, ::Integer
1000
- const :location, T.nilable(::Spoom::LSP::Location)
1001
- const :name, ::String
1002
- const :range, T.nilable(::Spoom::LSP::Range)
1003
-
1004
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1005
- def accept_printer(printer); end
1006
-
1007
- sig { returns(::String) }
1008
- def kind_string; end
1009
-
1010
- sig { returns(::String) }
1011
- def to_s; end
1012
-
1013
- class << self
1014
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
1015
- def from_json(json); end
1016
-
1017
- def inherited(s); end
1018
- end
1019
- end
1020
-
1021
- Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
1022
- class Spoom::LSP::Error < ::StandardError; end
1023
- class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
1024
- class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
1025
-
1026
- class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
1027
- sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
1028
- def initialize(uri, diagnostics); end
1029
-
1030
- sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
1031
- def diagnostics; end
1032
-
1033
- sig { returns(::String) }
1034
- def uri; end
1035
-
1036
- class << self
1037
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
1038
- def from_json(json); end
1039
- end
1040
- end
1041
-
1042
- class Spoom::LSP::Hover < ::T::Struct
1043
- include ::Spoom::LSP::PrintableSymbol
1044
-
1045
- const :contents, ::String
1046
- const :range, T.nilable(T::Range[T.untyped])
1047
-
1048
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1049
- def accept_printer(printer); end
1050
-
1051
- sig { returns(::String) }
1052
- def to_s; end
1053
-
1054
- class << self
1055
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
1056
- def from_json(json); end
1057
-
1058
- def inherited(s); end
1059
- end
1060
- end
1061
-
1062
- class Spoom::LSP::Location < ::T::Struct
1063
- include ::Spoom::LSP::PrintableSymbol
1064
-
1065
- const :range, ::Spoom::LSP::Range
1066
- const :uri, ::String
1067
-
1068
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1069
- def accept_printer(printer); end
1070
-
1071
- sig { returns(::String) }
1072
- def to_s; end
1073
-
1074
- class << self
1075
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
1076
- def from_json(json); end
1077
-
1078
- def inherited(s); end
1079
- end
1080
- end
1081
-
1082
- # A general message as defined by JSON-RPC.
1083
- #
1084
- # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
1085
- class Spoom::LSP::Message
1086
- sig { void }
1087
- def initialize; end
1088
-
1089
- sig { returns(T::Hash[T.untyped, T.untyped]) }
1090
- def as_json; end
1091
-
1092
- sig { returns(::String) }
1093
- def jsonrpc; end
1094
-
1095
- sig { params(args: T.untyped).returns(::String) }
1096
- def to_json(*args); end
1097
- end
1098
-
1099
- # A notification message.
1100
- #
1101
- # A processed notification message must not send a response back. They work like events.
1102
- class Spoom::LSP::Notification < ::Spoom::LSP::Message
1103
- sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1104
- def initialize(method, params); end
1105
-
1106
- sig { returns(::String) }
1107
- def method; end
1108
-
1109
- sig { returns(T::Hash[T.untyped, T.untyped]) }
1110
- def params; end
1111
- end
1112
-
1113
- class Spoom::LSP::Position < ::T::Struct
1114
- include ::Spoom::LSP::PrintableSymbol
1115
-
1116
- const :char, ::Integer
1117
- const :line, ::Integer
1118
-
1119
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1120
- def accept_printer(printer); end
1121
-
1122
- sig { returns(::String) }
1123
- def to_s; end
1124
-
1125
- class << self
1126
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
1127
- def from_json(json); end
1128
-
1129
- def inherited(s); end
1130
- end
1131
- end
1132
-
1133
- # @abstract Subclasses must implement the `abstract` methods below.
1134
- module Spoom::LSP::PrintableSymbol
1135
- interface!
1136
-
1137
- # @abstract
1138
- sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1139
- def accept_printer(printer); end
1140
- end
1141
-
1142
- class Spoom::LSP::Range < ::T::Struct
1143
- include ::Spoom::LSP::PrintableSymbol
1144
-
1145
- const :end, ::Spoom::LSP::Position
1146
- const :start, ::Spoom::LSP::Position
1147
-
1148
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1149
- def accept_printer(printer); end
1150
-
1151
- sig { returns(::String) }
1152
- def to_s; end
1153
-
1154
- class << self
1155
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
1156
- def from_json(json); end
1157
-
1158
- def inherited(s); end
1159
- end
1160
- end
1161
-
1162
- # A request message to describe a request between the client and the server.
1163
- #
1164
- # Every processed request must send a response back to the sender of the request.
1165
- class Spoom::LSP::Request < ::Spoom::LSP::Message
1166
- sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1167
- def initialize(id, method, params); end
1168
-
1169
- sig { returns(::Integer) }
1170
- def id; end
1171
-
1172
- sig { returns(::String) }
1173
- def method; end
1174
-
1175
- sig { returns(T::Hash[T.untyped, T.untyped]) }
1176
- def params; end
1177
- end
1178
-
1179
- class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
1180
- sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
1181
- def initialize(code, message, data); end
1182
-
1183
- sig { returns(::Integer) }
1184
- def code; end
1185
-
1186
- sig { returns(T::Hash[T.untyped, T.untyped]) }
1187
- def data; end
1188
-
1189
- sig { returns(::String) }
1190
- def message; end
1191
-
1192
- class << self
1193
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
1194
- def from_json(json); end
1195
- end
1196
- end
1197
-
1198
- class Spoom::LSP::SignatureHelp < ::T::Struct
1199
- include ::Spoom::LSP::PrintableSymbol
1200
-
1201
- const :doc, ::Object
1202
- const :label, T.nilable(::String)
1203
- const :params, T::Array[T.untyped]
1204
-
1205
- sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1206
- def accept_printer(printer); end
1207
-
1208
- sig { returns(::String) }
1209
- def to_s; end
1210
-
1211
- class << self
1212
- sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
1213
- def from_json(json); end
1214
-
1215
- def inherited(s); end
1216
- end
1217
- end
1218
-
1219
- class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
1220
- sig do
1221
- params(
1222
- out: T.any(::IO, ::StringIO),
1223
- colors: T::Boolean,
1224
- indent_level: ::Integer,
1225
- prefix: T.nilable(::String)
1226
- ).void
1227
- end
1228
- def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
1229
-
1230
- sig { params(uri: ::String).returns(::String) }
1231
- def clean_uri(uri); end
1232
-
1233
- sig { returns(T.nilable(::String)) }
1234
- def prefix; end
1235
-
1236
- # @return [String, nil]
1237
- def prefix=(_arg0); end
1238
-
1239
- sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
1240
- def print_list(objects); end
1241
-
1242
- sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
1243
- def print_object(object); end
1244
-
1245
- sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
1246
- def print_objects(objects); end
1247
-
1248
- sig { returns(T::Set[::Integer]) }
1249
- def seen; end
1250
-
1251
- # @return [Set<Integer>]
1252
- def seen=(_arg0); end
1253
- end
1254
-
1255
- # @abstract It cannont be directly instantiated. Subclasses must implement the `abstract` methods below.
1256
- class Spoom::Printer
1257
- include ::Spoom::Colorize
1258
-
1259
- abstract!
1260
-
1261
- sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
1262
- def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1263
-
1264
- # Colorize `string` with color if `@colors`
1265
- sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
1266
- def colorize(string, *color); end
1267
-
1268
- # Decrease indent level
1269
- sig { void }
1270
- def dedent; end
1271
-
1272
- # Increase indent level
1273
- sig { void }
1274
- def indent; end
1275
-
1276
- sig { returns(T.any(::IO, ::StringIO)) }
1277
- def out; end
1278
-
1279
- # @return [IO, StringIO]
1280
- def out=(_arg0); end
1281
-
1282
- # Print `string` into `out`
1283
- sig { params(string: T.nilable(::String)).void }
1284
- def print(string); end
1285
-
1286
- # Print `string` colored with `color` into `out`
1287
- #
1288
- # Does not use colors unless `@colors`.
1289
- sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
1290
- def print_colored(string, *color); end
1291
-
1292
- # Print `string` with indent and newline
1293
- sig { params(string: T.nilable(::String)).void }
1294
- def printl(string); end
1295
-
1296
- # Print a new line into `out`
1297
- sig { void }
1298
- def printn; end
1299
-
1300
- # Print an indent space into `out`
1301
- sig { void }
1302
- def printt; end
1303
- end
1304
-
1305
- Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
1306
-
1307
- module Spoom::Sorbet
1308
- class << self
1309
- sig do
1310
- params(
1311
- arg: ::String,
1312
- path: ::String,
1313
- capture_err: T::Boolean,
1314
- sorbet_bin: T.nilable(::String)
1315
- ).returns(::Spoom::ExecResult)
1316
- end
1317
- def srb(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1318
-
1319
- # List all files typechecked by Sorbet from its `config`
1320
- sig { params(config: ::Spoom::Sorbet::Config, path: ::String).returns(T::Array[::String]) }
1321
- def srb_files(config, path: T.unsafe(nil)); end
1322
-
1323
- sig do
1324
- params(
1325
- arg: ::String,
1326
- path: ::String,
1327
- capture_err: T::Boolean,
1328
- sorbet_bin: T.nilable(::String)
1329
- ).returns(T.nilable(T::Hash[::String, ::Integer]))
1330
- end
1331
- def srb_metrics(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1332
-
1333
- sig do
1334
- params(
1335
- arg: ::String,
1336
- path: ::String,
1337
- capture_err: T::Boolean,
1338
- sorbet_bin: T.nilable(::String)
1339
- ).returns(::Spoom::ExecResult)
1340
- end
1341
- def srb_tc(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1342
-
1343
- sig do
1344
- params(
1345
- arg: ::String,
1346
- path: ::String,
1347
- capture_err: T::Boolean,
1348
- sorbet_bin: T.nilable(::String)
1349
- ).returns(T.nilable(::String))
1350
- end
1351
- def srb_version(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1352
-
1353
- # Get `gem` version from the `Gemfile.lock` content
1354
- #
1355
- # Returns `nil` if `gem` cannot be found in the Gemfile.
1356
- sig { params(gem: ::String, path: ::String).returns(T.nilable(::String)) }
1357
- def version_from_gemfile_lock(gem: T.unsafe(nil), path: T.unsafe(nil)); end
1358
- end
1359
- end
1360
-
1361
- Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
1362
- Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
1363
-
1364
- # Parse Sorbet config files
1365
- #
1366
- # Parses a Sorbet config file:
1367
- #
1368
- # ```ruby
1369
- # config = Spoom::Sorbet::Config.parse_file("sorbet/config")
1370
- # puts config.paths # "."
1371
- # ```
1372
- #
1373
- # Parses a Sorbet config string:
1374
- #
1375
- # ```ruby
1376
- # config = Spoom::Sorbet::Config.parse_string(<<~CONFIG)
1377
- # a
1378
- # --file=b
1379
- # --ignore=c
1380
- # CONFIG
1381
- # puts config.paths # "a", "b"
1382
- # puts config.ignore # "c"
1383
- # ```
1384
- class Spoom::Sorbet::Config
1385
- sig { void }
1386
- def initialize; end
1387
-
1388
- # @return [Array<String>]
1389
- def allowed_extensions; end
1390
-
1391
- sig { returns(::Spoom::Sorbet::Config) }
1392
- def copy; end
1393
-
1394
- # @return [Array<String>]
1395
- def ignore; end
1396
-
1397
- sig { returns(T::Boolean) }
1398
- def no_stdlib; end
1399
-
1400
- # @return [Boolean]
1401
- def no_stdlib=(_arg0); end
1402
-
1403
- # Returns self as a string of options that can be passed to Sorbet
1404
- #
1405
- # Example:
1406
- # ~~~rb
1407
- # config = Sorbet::Config.new
1408
- # config.paths << "/foo"
1409
- # config.paths << "/bar"
1410
- # config.ignore << "/baz"
1411
- # config.allowed_extensions << ".rb"
1412
- #
1413
- # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
1414
- # ~~~
1415
- sig { returns(::String) }
1416
- def options_string; end
1417
-
1418
- sig { returns(T::Array[::String]) }
1419
- def paths; end
1420
-
1421
- class << self
1422
- sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
1423
- def parse_file(sorbet_config_path); end
1424
-
1425
- sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
1426
- def parse_string(sorbet_config); end
1427
-
1428
- private
1429
-
1430
- sig { params(line: ::String).returns(::String) }
1431
- def parse_option(line); end
1432
- end
1433
- end
1434
-
1435
- module Spoom::Sorbet::Errors
1436
- class << self
1437
- sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
1438
- def sort_errors_by_code(errors); end
1439
- end
1440
- end
1441
-
1442
- Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
1443
-
1444
- class Spoom::Sorbet::Errors::Error
1445
- include ::Comparable
1446
-
1447
- sig do
1448
- params(
1449
- file: T.nilable(::String),
1450
- line: T.nilable(::Integer),
1451
- message: T.nilable(::String),
1452
- code: T.nilable(::Integer),
1453
- more: T::Array[::String]
1454
- ).void
1455
- end
1456
- def initialize(file, line, message, code, more = T.unsafe(nil)); end
1457
-
1458
- # By default errors are sorted by location
1459
- sig { params(other: T.untyped).returns(::Integer) }
1460
- def <=>(other); end
1461
-
1462
- # @return [Integer, nil]
1463
- def code; end
1464
-
1465
- sig { returns(T.nilable(::String)) }
1466
- def file; end
1467
-
1468
- sig { returns(T.nilable(::Integer)) }
1469
- def line; end
1470
-
1471
- # @return [String, nil]
1472
- def message; end
1473
-
1474
- sig { returns(T::Array[::String]) }
1475
- def more; end
1476
-
1477
- sig { returns(::String) }
1478
- def to_s; end
1479
- end
1480
-
1481
- # Parse errors from Sorbet output
1482
- class Spoom::Sorbet::Errors::Parser
1483
- sig { params(error_url_base: ::String).void }
1484
- def initialize(error_url_base: T.unsafe(nil)); end
1485
-
1486
- sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
1487
- def parse(output); end
1488
-
1489
- private
1490
-
1491
- sig { params(line: ::String).void }
1492
- def append_error(line); end
1493
-
1494
- sig { void }
1495
- def close_error; end
1496
-
1497
- sig { params(error_url_base: ::String).returns(::Regexp) }
1498
- def error_line_match_regexp(error_url_base); end
1499
-
1500
- sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
1501
- def match_error_line(line); end
1502
-
1503
- sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
1504
- def open_error(error); end
1505
-
1506
- class << self
1507
- sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
1508
- def parse_string(output, error_url_base: T.unsafe(nil)); end
1509
- end
1510
- end
1511
-
1512
- Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
1513
- Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
1514
-
1515
- module Spoom::Sorbet::MetricsParser
1516
- class << self
1517
- sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
1518
- def parse_file(path, prefix = T.unsafe(nil)); end
1519
-
1520
- sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
1521
- def parse_hash(obj, prefix = T.unsafe(nil)); end
1522
-
1523
- sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
1524
- def parse_string(string, prefix = T.unsafe(nil)); end
1525
- end
1526
- end
1527
-
1528
- Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
1529
- Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
1530
-
1531
- module Spoom::Sorbet::Sigils
1532
- class << self
1533
- # changes the sigil in the file at the passed path to the specified new strictness
1534
- sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
1535
- def change_sigil_in_file(path, new_strictness); end
1536
-
1537
- # changes the sigil to have a new strictness in a list of files
1538
- sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
1539
- def change_sigil_in_files(path_list, new_strictness); end
1540
-
1541
- # returns a string containing the strictness of a sigil in a file at the passed path
1542
- # * returns nil if no sigil
1543
- sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
1544
- def file_strictness(path); end
1545
-
1546
- # finds all files in the specified directory with the passed strictness
1547
- sig do
1548
- params(
1549
- directory: T.any(::Pathname, ::String),
1550
- strictness: ::String,
1551
- extension: ::String
1552
- ).returns(T::Array[::String])
1553
- end
1554
- def files_with_sigil_strictness(directory, strictness, extension: T.unsafe(nil)); end
1555
-
1556
- # returns the full sigil comment string for the passed strictness
1557
- sig { params(strictness: ::String).returns(::String) }
1558
- def sigil_string(strictness); end
1559
-
1560
- # returns the strictness of a sigil in the passed file content string (nil if no sigil)
1561
- sig { params(content: ::String).returns(T.nilable(::String)) }
1562
- def strictness_in_content(content); end
1563
-
1564
- # returns a string which is the passed content but with the sigil updated to a new strictness
1565
- sig { params(content: ::String, new_strictness: ::String).returns(::String) }
1566
- def update_sigil(content, new_strictness); end
1567
-
1568
- # returns true if the passed string is a valid strictness (else false)
1569
- sig { params(strictness: ::String).returns(T::Boolean) }
1570
- def valid_strictness?(strictness); end
1571
- end
1572
- end
1573
-
1574
- Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
1575
- Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
1576
- Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
1577
- Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
1578
- Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
1579
- Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
1580
- Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
1581
- Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
1582
-
1583
- class Spoom::Timeline
1584
- sig { params(from: ::Time, to: ::Time, path: ::String).void }
1585
- def initialize(from, to, path: T.unsafe(nil)); end
1586
-
1587
- # Return one commit for each date in `dates`
1588
- sig { params(dates: T::Array[::Time]).returns(T::Array[::String]) }
1589
- def commits_for_dates(dates); end
1590
-
1591
- # Return all months between `from` and `to`
1592
- sig { returns(T::Array[::Time]) }
1593
- def months; end
1594
-
1595
- # Return one commit for each month between `from` and `to`
1596
- sig { returns(T::Array[::String]) }
1597
- def ticks; end
1598
- end
1599
-
1600
- Spoom::VERSION = T.let(T.unsafe(nil), String)