solargraph 0.45.0 → 0.49.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.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.github/workflows/rspec.yml +1 -1
- data/CHANGELOG.md +41 -0
- data/LICENSE +1 -1
- data/README.md +8 -0
- data/SPONSORS.md +2 -4
- data/lib/solargraph/api_map/store.rb +13 -1
- data/lib/solargraph/api_map.rb +55 -32
- data/lib/solargraph/cache.rb +51 -0
- data/lib/solargraph/complex_type/type_methods.rb +10 -6
- data/lib/solargraph/complex_type/unique_type.rb +57 -0
- data/lib/solargraph/complex_type.rb +35 -2
- data/lib/solargraph/convention/rakefile.rb +17 -0
- data/lib/solargraph/convention.rb +2 -0
- data/lib/solargraph/diagnostics/require_not_found.rb +16 -0
- data/lib/solargraph/diagnostics/rubocop.rb +17 -3
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +3 -1
- data/lib/solargraph/language_server/host.rb +22 -18
- data/lib/solargraph/language_server/message/extended/download_core.rb +1 -5
- data/lib/solargraph/language_server/message/initialize.rb +2 -0
- data/lib/solargraph/language_server/message/text_document/formatting.rb +1 -1
- data/lib/solargraph/language_server/message/text_document/hover.rb +16 -4
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +1 -6
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +10 -3
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +1 -1
- data/lib/solargraph/library.rb +21 -20
- data/lib/solargraph/parser/legacy/node_processors/casgn_node.rb +12 -2
- data/lib/solargraph/parser/legacy/node_processors/sclass_node.rb +24 -3
- data/lib/solargraph/parser/rubyvm/class_methods.rb +7 -2
- data/lib/solargraph/parser/rubyvm/node_processors/casgn_node.rb +13 -2
- data/lib/solargraph/parser/rubyvm/node_processors/def_node.rb +20 -9
- data/lib/solargraph/parser/rubyvm/node_processors/defs_node.rb +14 -3
- data/lib/solargraph/parser/rubyvm/node_processors/kw_arg_node.rb +2 -2
- data/lib/solargraph/parser/rubyvm/node_processors/sclass_node.rb +14 -3
- data/lib/solargraph/parser/rubyvm/node_processors/send_node.rb +4 -2
- data/lib/solargraph/parser/rubyvm/node_wrapper.rb +47 -0
- data/lib/solargraph/pin/base.rb +5 -2
- data/lib/solargraph/pin/block.rb +2 -1
- data/lib/solargraph/pin/conversions.rb +2 -6
- data/lib/solargraph/pin/method.rb +100 -10
- data/lib/solargraph/pin/namespace.rb +4 -1
- data/lib/solargraph/pin/parameter.rb +10 -7
- data/lib/solargraph/pin/search.rb +56 -0
- data/lib/solargraph/pin/signature.rb +23 -0
- data/lib/solargraph/pin.rb +2 -0
- data/lib/solargraph/rbs_map/conversions.rb +394 -0
- data/lib/solargraph/rbs_map/core_fills.rb +61 -0
- data/lib/solargraph/rbs_map/core_map.rb +38 -0
- data/lib/solargraph/rbs_map/core_signs.rb +33 -0
- data/lib/solargraph/rbs_map/stdlib_map.rb +36 -0
- data/lib/solargraph/rbs_map.rb +73 -0
- data/lib/solargraph/shell.rb +38 -30
- data/lib/solargraph/source/chain/call.rb +34 -23
- data/lib/solargraph/source/chain.rb +21 -6
- data/lib/solargraph/source.rb +1 -1
- data/lib/solargraph/source_map/clip.rb +5 -0
- data/lib/solargraph/source_map/mapper.rb +31 -2
- data/lib/solargraph/source_map.rb +1 -10
- data/lib/solargraph/type_checker/checks.rb +13 -0
- data/lib/solargraph/type_checker.rb +88 -68
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/views/environment.erb +2 -2
- data/lib/solargraph/workspace.rb +12 -14
- data/lib/solargraph/yard_map/mapper/to_method.rb +7 -4
- data/lib/solargraph/yard_map.rb +51 -195
- data/lib/solargraph.rb +2 -2
- data/solargraph.gemspec +8 -6
- metadata +44 -36
- data/lib/solargraph/compat.rb +0 -37
- data/lib/solargraph/yard_map/core_docs.rb +0 -170
- data/lib/solargraph/yard_map/core_fills.rb +0 -208
- data/lib/solargraph/yard_map/core_gen.rb +0 -76
- data/lib/solargraph/yard_map/rdoc_to_yard.rb +0 -140
- data/lib/solargraph/yard_map/stdlib_fills.rb +0 -43
- data/yardoc/2.2.2.tar.gz +0 -0
data/lib/solargraph/yard_map.rb
CHANGED
@@ -13,34 +13,13 @@ module Solargraph
|
|
13
13
|
class NoYardocError < StandardError; end
|
14
14
|
|
15
15
|
autoload :Cache, 'solargraph/yard_map/cache'
|
16
|
-
autoload :CoreDocs, 'solargraph/yard_map/core_docs'
|
17
|
-
autoload :CoreGen, 'solargraph/yard_map/core_gen'
|
18
16
|
autoload :Mapper, 'solargraph/yard_map/mapper'
|
19
17
|
autoload :RdocToYard, 'solargraph/yard_map/rdoc_to_yard'
|
20
|
-
autoload :CoreFills, 'solargraph/yard_map/core_fills'
|
21
|
-
autoload :StdlibFills, 'solargraph/yard_map/stdlib_fills'
|
22
18
|
autoload :Helpers, 'solargraph/yard_map/helpers'
|
23
19
|
autoload :ToMethod, 'solargraph/yard_map/to_method'
|
24
20
|
|
25
21
|
include ApiMap::BundlerMethods
|
26
22
|
|
27
|
-
CoreDocs.require_minimum
|
28
|
-
|
29
|
-
def stdlib_paths
|
30
|
-
@@stdlib_paths ||= begin
|
31
|
-
result = {}
|
32
|
-
YARD::Registry.load! CoreDocs.yardoc_stdlib_file
|
33
|
-
YARD::Registry.all.each do |co|
|
34
|
-
next if co.file.nil?
|
35
|
-
path = co.file.sub(/^(ext|lib)\//, '').sub(/\.(rb|c)$/, '')
|
36
|
-
base = path.split('/').first
|
37
|
-
result[base] ||= []
|
38
|
-
result[base].push co
|
39
|
-
end
|
40
|
-
result
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
23
|
# @return [Boolean]
|
45
24
|
attr_writer :with_dependencies
|
46
25
|
|
@@ -80,6 +59,7 @@ module Solargraph
|
|
80
59
|
@rebindable_method_names = nil
|
81
60
|
@pin_class_hash = nil
|
82
61
|
@pin_select_cache = {}
|
62
|
+
pins.each { |p| p.source = :yard }
|
83
63
|
true
|
84
64
|
end
|
85
65
|
|
@@ -107,6 +87,11 @@ module Solargraph
|
|
107
87
|
@unresolved_requires ||= []
|
108
88
|
end
|
109
89
|
|
90
|
+
# @return [Array<String>]
|
91
|
+
def missing_docs
|
92
|
+
@missing_docs ||= []
|
93
|
+
end
|
94
|
+
|
110
95
|
# @param y [String]
|
111
96
|
# @return [YARD::Registry]
|
112
97
|
def load_yardoc y
|
@@ -121,12 +106,6 @@ module Solargraph
|
|
121
106
|
nil
|
122
107
|
end
|
123
108
|
|
124
|
-
# @return [Array<Solargraph::Pin::Base>]
|
125
|
-
def core_pins
|
126
|
-
# Using a class variable to reduce loads
|
127
|
-
@@core_pins ||= load_core_pins
|
128
|
-
end
|
129
|
-
|
130
109
|
# @param path [String]
|
131
110
|
# @return [Pin::Base]
|
132
111
|
def path_pin path
|
@@ -150,10 +129,6 @@ module Solargraph
|
|
150
129
|
nil
|
151
130
|
end
|
152
131
|
|
153
|
-
def stdlib_pins
|
154
|
-
@stdlib_pins ||= []
|
155
|
-
end
|
156
|
-
|
157
132
|
def base_required
|
158
133
|
@base_required ||= Set.new
|
159
134
|
end
|
@@ -194,12 +169,12 @@ module Solargraph
|
|
194
169
|
def process_requires
|
195
170
|
@gemset = process_gemsets
|
196
171
|
required.merge @gemset.keys if required.include?('bundler/require')
|
197
|
-
pins.
|
172
|
+
pins.clear
|
198
173
|
unresolved_requires.clear
|
199
|
-
|
174
|
+
missing_docs.clear
|
200
175
|
environ = Convention.for_global(self)
|
201
176
|
done = []
|
202
|
-
|
177
|
+
already_errored = []
|
203
178
|
(required + environ.requires).each do |r|
|
204
179
|
next if r.nil? || r.empty? || done.include?(r)
|
205
180
|
done.push r
|
@@ -208,36 +183,7 @@ module Solargraph
|
|
208
183
|
pins.concat cached
|
209
184
|
next
|
210
185
|
end
|
211
|
-
result =
|
212
|
-
begin
|
213
|
-
spec = spec_for_require(r)
|
214
|
-
if @source_gems.include?(spec.name)
|
215
|
-
next
|
216
|
-
end
|
217
|
-
next if @gem_paths.key?(spec.name)
|
218
|
-
yd = yardoc_file_for_spec(spec)
|
219
|
-
# YARD detects gems for certain libraries that do not have a yardoc
|
220
|
-
# but exist in the stdlib. `fileutils` is an example. Treat those
|
221
|
-
# cases as errors and check the stdlib yardoc.
|
222
|
-
raise Gem::LoadError if yd.nil?
|
223
|
-
@gem_paths[spec.name] = spec.full_gem_path
|
224
|
-
unless yardocs.include?(yd)
|
225
|
-
yardocs.unshift yd
|
226
|
-
result.concat process_yardoc yd, spec
|
227
|
-
result.concat add_gem_dependencies(spec) if with_dependencies?
|
228
|
-
end
|
229
|
-
rescue Gem::LoadError, NoYardocError => e
|
230
|
-
base = r.split('/').first
|
231
|
-
next if from_std.include?(base)
|
232
|
-
from_std.push base
|
233
|
-
stdtmp = load_stdlib_pins(base)
|
234
|
-
if stdtmp.empty?
|
235
|
-
unresolved_requires.push r
|
236
|
-
else
|
237
|
-
stdlib_pins.concat stdtmp
|
238
|
-
result.concat stdtmp
|
239
|
-
end
|
240
|
-
end
|
186
|
+
result = pins_for_require r, already_errored
|
241
187
|
result.delete_if(&:nil?)
|
242
188
|
unless result.empty?
|
243
189
|
cache.set_path_pins r, result
|
@@ -253,36 +199,52 @@ module Solargraph
|
|
253
199
|
pins.concat environ.pins
|
254
200
|
end
|
255
201
|
|
202
|
+
def process_error(req, result, already_errored, yd = 1)
|
203
|
+
base = req.split('/').first
|
204
|
+
return if already_errored.include?(base)
|
205
|
+
already_errored.push base
|
206
|
+
if yd.nil?
|
207
|
+
missing_docs.push req
|
208
|
+
else
|
209
|
+
unresolved_requires.push req
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
256
213
|
def process_gemsets
|
257
214
|
return {} if directory.empty? || !File.file?(File.join(directory, 'Gemfile'))
|
258
215
|
require_from_bundle(directory)
|
259
216
|
end
|
260
217
|
|
261
|
-
# @param
|
262
|
-
|
263
|
-
def add_gem_dependencies spec
|
218
|
+
# @param r [String]
|
219
|
+
def pins_for_require r, already_errored
|
264
220
|
result = []
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
221
|
+
begin
|
222
|
+
name = r.split('/').first
|
223
|
+
return [] if @source_gems.include?(name) || @gem_paths.key?(name)
|
224
|
+
spec = spec_for_require(name)
|
225
|
+
@gem_paths[name] = spec.full_gem_path
|
226
|
+
|
227
|
+
yd = yardoc_file_for_spec(spec)
|
228
|
+
# YARD detects gems for certain libraries that do not have a yardoc
|
229
|
+
# but exist in the stdlib. `fileutils` is an example. Treat those
|
230
|
+
# cases as errors and check the stdlib yardoc.
|
231
|
+
if yd.nil?
|
232
|
+
process_error(r, result, already_errored, nil)
|
233
|
+
return []
|
234
|
+
end
|
235
|
+
unless yardocs.include?(yd)
|
236
|
+
yardocs.unshift yd
|
237
|
+
result.concat process_yardoc yd, spec
|
238
|
+
if with_dependencies?
|
239
|
+
(spec.dependencies - spec.development_dependencies).each do |dep|
|
240
|
+
result.concat pins_for_require dep.name, already_errored
|
241
|
+
end
|
279
242
|
end
|
280
|
-
rescue Gem::LoadError
|
281
|
-
# This error probably indicates a bug in an installed gem
|
282
|
-
Solargraph::Logging.logger.warn "Failed to resolve #{dep.name} gem dependency for #{spec.name}"
|
283
243
|
end
|
244
|
+
rescue Gem::LoadError, NoYardocError
|
245
|
+
process_error(r, result, already_errored)
|
284
246
|
end
|
285
|
-
result
|
247
|
+
return result
|
286
248
|
end
|
287
249
|
|
288
250
|
# @param y [String, nil]
|
@@ -291,22 +253,8 @@ module Solargraph
|
|
291
253
|
def process_yardoc y, spec = nil
|
292
254
|
return [] if y.nil?
|
293
255
|
if spec
|
294
|
-
|
295
|
-
if
|
296
|
-
Solargraph.logger.info "Loading #{spec.name} #{spec.version} from cache"
|
297
|
-
file = File.open(ser, 'rb')
|
298
|
-
dump = file.read
|
299
|
-
file.close
|
300
|
-
begin
|
301
|
-
result = Marshal.load(dump)
|
302
|
-
return result unless result.nil? || result.empty?
|
303
|
-
Solargraph.logger.warn "Empty cache for #{spec.name} #{spec.version}. Reloading"
|
304
|
-
File.unlink ser
|
305
|
-
rescue StandardError => e
|
306
|
-
Solargraph.logger.warn "Error loading pin cache: [#{e.class}] #{e.message}"
|
307
|
-
File.unlink ser
|
308
|
-
end
|
309
|
-
end
|
256
|
+
cache = Solargraph::Cache.load('gems', "#{spec.name}-#{spec.version}.ser")
|
257
|
+
return cache if cache
|
310
258
|
end
|
311
259
|
size = Dir.glob(File.join(y, '**', '*'))
|
312
260
|
.map{ |f| File.size(f) }
|
@@ -320,10 +268,7 @@ module Solargraph
|
|
320
268
|
result = Mapper.new(YARD::Registry.all, spec).map
|
321
269
|
raise NoYardocError, "Yardoc at #{y} is empty" if result.empty?
|
322
270
|
if spec
|
323
|
-
|
324
|
-
file = File.open(ser, 'wb')
|
325
|
-
file.write Marshal.dump(result)
|
326
|
-
file.close
|
271
|
+
Solargraph::Cache.save 'gems', "#{spec.name}-#{spec.version}.ser", result
|
327
272
|
end
|
328
273
|
result
|
329
274
|
end
|
@@ -331,13 +276,7 @@ module Solargraph
|
|
331
276
|
# @param spec [Gem::Specification]
|
332
277
|
# @return [String]
|
333
278
|
def yardoc_file_for_spec spec
|
334
|
-
|
335
|
-
if File.exist?(cache_dir)
|
336
|
-
Solargraph.logger.info "Using cached documentation for #{spec.name} at #{cache_dir}"
|
337
|
-
cache_dir
|
338
|
-
else
|
339
|
-
YARD::Registry.yardoc_file_for_gem(spec.name, "= #{spec.version}")
|
340
|
-
end
|
279
|
+
YARD::Registry.yardoc_file_for_gem(spec.name, "= #{spec.version}")
|
341
280
|
end
|
342
281
|
|
343
282
|
# @param path [String]
|
@@ -358,88 +297,5 @@ module Solargraph
|
|
358
297
|
end
|
359
298
|
spec
|
360
299
|
end
|
361
|
-
|
362
|
-
def load_core_pins
|
363
|
-
yd = CoreDocs.yardoc_file
|
364
|
-
ser = File.join(File.dirname(yd), 'core.ser')
|
365
|
-
result = if File.file?(ser)
|
366
|
-
file = File.open(ser, 'rb')
|
367
|
-
dump = file.read
|
368
|
-
file.close
|
369
|
-
begin
|
370
|
-
Marshal.load(dump)
|
371
|
-
rescue StandardError => e
|
372
|
-
Solargraph.logger.warn "Error loading core pin cache: [#{e.class}] #{e.message}"
|
373
|
-
File.unlink ser
|
374
|
-
read_core_and_save_cache(yd, ser)
|
375
|
-
end
|
376
|
-
else
|
377
|
-
read_core_and_save_cache(yd, ser)
|
378
|
-
end
|
379
|
-
ApiMap::Store.new(result + CoreFills::ALL).pins.reject { |pin| pin.is_a?(Pin::Reference::Override) }
|
380
|
-
end
|
381
|
-
|
382
|
-
def read_core_and_save_cache yd, ser
|
383
|
-
result = []
|
384
|
-
load_yardoc yd
|
385
|
-
result.concat Mapper.new(YARD::Registry.all).map
|
386
|
-
# HACK: Assume core methods with a single `args` parameter accept restarg
|
387
|
-
result.select { |pin| pin.is_a?(Solargraph::Pin::Method )}.each do |pin|
|
388
|
-
if pin.parameters.length == 1 && pin.parameters.first.name == 'args' && pin.parameters.first.decl == :arg
|
389
|
-
# @todo Smelly instance variable access
|
390
|
-
pin.parameters.first.instance_variable_set(:@decl, :restarg)
|
391
|
-
end
|
392
|
-
end
|
393
|
-
# HACK: Set missing parameters on `==` methods, e.g., `Symbol#==`
|
394
|
-
result.select { |pin| pin.name == '==' && pin.parameters.empty? }.each do |pin|
|
395
|
-
pin.parameters.push Pin::Parameter.new(decl: :arg, name: 'obj2')
|
396
|
-
end
|
397
|
-
dump = Marshal.dump(result)
|
398
|
-
file = File.open(ser, 'wb')
|
399
|
-
file.write dump
|
400
|
-
file.close
|
401
|
-
result
|
402
|
-
end
|
403
|
-
|
404
|
-
def load_stdlib_pins base
|
405
|
-
ser = File.join(File.dirname(CoreDocs.yardoc_stdlib_file), "#{base}.ser")
|
406
|
-
result = if File.file?(ser)
|
407
|
-
Solargraph.logger.info "Loading #{base} stdlib from cache"
|
408
|
-
file = File.open(ser, 'rb')
|
409
|
-
dump = file.read
|
410
|
-
file.close
|
411
|
-
begin
|
412
|
-
Marshal.load(dump)
|
413
|
-
rescue StandardError => e
|
414
|
-
Solargraph.logger.warn "Error loading #{base} stdlib pin cache: [#{e.class}] #{e.message}"
|
415
|
-
File.unlink ser
|
416
|
-
read_stdlib_and_save_cache(base, ser)
|
417
|
-
end
|
418
|
-
else
|
419
|
-
read_stdlib_and_save_cache(base, ser)
|
420
|
-
end
|
421
|
-
fills = StdlibFills.get(base)
|
422
|
-
unless fills.empty?
|
423
|
-
result = ApiMap::Store.new(result + fills).pins.reject { |pin| pin.is_a?(Pin::Reference::Override) }
|
424
|
-
end
|
425
|
-
result
|
426
|
-
end
|
427
|
-
|
428
|
-
def read_stdlib_and_save_cache base, ser
|
429
|
-
result = []
|
430
|
-
if stdlib_paths[base]
|
431
|
-
Solargraph.logger.info "Loading #{base} stdlib from yardoc"
|
432
|
-
result.concat Mapper.new(stdlib_paths[base]).map
|
433
|
-
unless result.empty?
|
434
|
-
dump = Marshal.dump(result)
|
435
|
-
file = File.open(ser, 'wb')
|
436
|
-
file.write dump
|
437
|
-
file.close
|
438
|
-
end
|
439
|
-
end
|
440
|
-
result
|
441
|
-
end
|
442
300
|
end
|
443
301
|
end
|
444
|
-
|
445
|
-
Solargraph::YardMap::CoreDocs.require_minimum
|
data/lib/solargraph.rb
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
Encoding.default_external = 'UTF-8'
|
4
4
|
|
5
|
-
require 'solargraph/compat'
|
6
5
|
require 'solargraph/version'
|
7
6
|
|
8
7
|
# The top-level namespace for the Solargraph code mapping, documentation,
|
@@ -41,9 +40,10 @@ module Solargraph
|
|
41
40
|
autoload :Convention, 'solargraph/convention'
|
42
41
|
autoload :Documentor, 'solargraph/documentor'
|
43
42
|
autoload :Parser, 'solargraph/parser'
|
43
|
+
autoload :RbsMap, 'solargraph/rbs_map'
|
44
|
+
autoload :Cache, 'solargraph/cache'
|
44
45
|
|
45
46
|
dir = File.dirname(__FILE__)
|
46
|
-
YARDOC_PATH = File.realpath(File.join(dir, '..', 'yardoc'))
|
47
47
|
YARD_EXTENSION_FILE = File.join(dir, 'yard-solargraph.rb')
|
48
48
|
VIEWS_PATH = File.join(dir, 'solargraph', 'views')
|
49
49
|
|
data/solargraph.gemspec
CHANGED
@@ -13,30 +13,32 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
14
14
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
15
15
|
end
|
16
|
-
s.homepage = '
|
16
|
+
s.homepage = 'https://solargraph.org'
|
17
17
|
s.license = 'MIT'
|
18
18
|
s.executables = ['solargraph']
|
19
|
+
s.metadata["funding_uri"] = "https://www.patreon.com/castwide"
|
19
20
|
|
20
|
-
s.required_ruby_version = '>= 2.
|
21
|
+
s.required_ruby_version = '>= 2.6'
|
21
22
|
|
22
23
|
s.add_runtime_dependency 'backport', '~> 1.2'
|
23
24
|
s.add_runtime_dependency 'benchmark'
|
24
|
-
s.add_runtime_dependency 'bundler', '
|
25
|
+
s.add_runtime_dependency 'bundler', '~> 2.0'
|
25
26
|
s.add_runtime_dependency 'diff-lcs', '~> 1.4'
|
26
27
|
s.add_runtime_dependency 'e2mmap'
|
27
28
|
s.add_runtime_dependency 'jaro_winkler', '~> 1.5'
|
28
29
|
s.add_runtime_dependency 'kramdown', '~> 2.3'
|
29
30
|
s.add_runtime_dependency 'kramdown-parser-gfm', '~> 1.1'
|
30
31
|
s.add_runtime_dependency 'parser', '~> 3.0'
|
31
|
-
s.add_runtime_dependency '
|
32
|
-
s.add_runtime_dependency '
|
32
|
+
s.add_runtime_dependency 'rbs', '~> 2.0'
|
33
|
+
s.add_runtime_dependency 'reverse_markdown', '~> 2.0'
|
34
|
+
s.add_runtime_dependency 'rubocop', '~> 1.38'
|
33
35
|
s.add_runtime_dependency 'thor', '~> 1.0'
|
34
36
|
s.add_runtime_dependency 'tilt', '~> 2.0'
|
35
37
|
s.add_runtime_dependency 'yard', '~> 0.9', '>= 0.9.24'
|
36
38
|
|
37
39
|
s.add_development_dependency 'pry'
|
38
40
|
s.add_development_dependency 'public_suffix', '~> 3.1'
|
39
|
-
s.add_development_dependency 'rspec', '~> 3.5'
|
41
|
+
s.add_development_dependency 'rspec', '~> 3.5'
|
40
42
|
s.add_development_dependency 'simplecov', '~> 0.14'
|
41
43
|
s.add_development_dependency 'webmock', '~> 3.6'
|
42
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solargraph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.49.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Snyder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backport
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '2.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '2.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: diff-lcs
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,39 +137,47 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '3.0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: rbs
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: 1.0.5
|
146
|
-
- - "<"
|
143
|
+
- - "~>"
|
147
144
|
- !ruby/object:Gem::Version
|
148
|
-
version: '
|
145
|
+
version: '2.0'
|
149
146
|
type: :runtime
|
150
147
|
prerelease: false
|
151
148
|
version_requirements: !ruby/object:Gem::Requirement
|
152
149
|
requirements:
|
153
|
-
- - "
|
150
|
+
- - "~>"
|
154
151
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
156
|
-
|
152
|
+
version: '2.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: reverse_markdown
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
157
158
|
- !ruby/object:Gem::Version
|
158
|
-
version: '
|
159
|
+
version: '2.0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '2.0'
|
159
167
|
- !ruby/object:Gem::Dependency
|
160
168
|
name: rubocop
|
161
169
|
requirement: !ruby/object:Gem::Requirement
|
162
170
|
requirements:
|
163
|
-
- - "
|
171
|
+
- - "~>"
|
164
172
|
- !ruby/object:Gem::Version
|
165
|
-
version: '
|
173
|
+
version: '1.38'
|
166
174
|
type: :runtime
|
167
175
|
prerelease: false
|
168
176
|
version_requirements: !ruby/object:Gem::Requirement
|
169
177
|
requirements:
|
170
|
-
- - "
|
178
|
+
- - "~>"
|
171
179
|
- !ruby/object:Gem::Version
|
172
|
-
version: '
|
180
|
+
version: '1.38'
|
173
181
|
- !ruby/object:Gem::Dependency
|
174
182
|
name: thor
|
175
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -253,9 +261,6 @@ dependencies:
|
|
253
261
|
- - "~>"
|
254
262
|
- !ruby/object:Gem::Version
|
255
263
|
version: '3.5'
|
256
|
-
- - ">="
|
257
|
-
- !ruby/object:Gem::Version
|
258
|
-
version: 3.5.0
|
259
264
|
type: :development
|
260
265
|
prerelease: false
|
261
266
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -263,9 +268,6 @@ dependencies:
|
|
263
268
|
- - "~>"
|
264
269
|
- !ruby/object:Gem::Version
|
265
270
|
version: '3.5'
|
266
|
-
- - ">="
|
267
|
-
- !ruby/object:Gem::Version
|
268
|
-
version: 3.5.0
|
269
271
|
- !ruby/object:Gem::Dependency
|
270
272
|
name: simplecov
|
271
273
|
requirement: !ruby/object:Gem::Requirement
|
@@ -301,6 +303,7 @@ executables:
|
|
301
303
|
extensions: []
|
302
304
|
extra_rdoc_files: []
|
303
305
|
files:
|
306
|
+
- ".github/FUNDING.yml"
|
304
307
|
- ".github/workflows/rspec.yml"
|
305
308
|
- ".gitignore"
|
306
309
|
- ".rspec"
|
@@ -321,7 +324,7 @@ files:
|
|
321
324
|
- lib/solargraph/api_map/source_to_yard.rb
|
322
325
|
- lib/solargraph/api_map/store.rb
|
323
326
|
- lib/solargraph/bench.rb
|
324
|
-
- lib/solargraph/
|
327
|
+
- lib/solargraph/cache.rb
|
325
328
|
- lib/solargraph/complex_type.rb
|
326
329
|
- lib/solargraph/complex_type/type_methods.rb
|
327
330
|
- lib/solargraph/complex_type/unique_type.rb
|
@@ -329,6 +332,7 @@ files:
|
|
329
332
|
- lib/solargraph/convention/base.rb
|
330
333
|
- lib/solargraph/convention/gemfile.rb
|
331
334
|
- lib/solargraph/convention/gemspec.rb
|
335
|
+
- lib/solargraph/convention/rakefile.rb
|
332
336
|
- lib/solargraph/convention/rspec.rb
|
333
337
|
- lib/solargraph/converters/dd.rb
|
334
338
|
- lib/solargraph/converters/dl.rb
|
@@ -463,6 +467,7 @@ files:
|
|
463
467
|
- lib/solargraph/parser/rubyvm/node_processors/scope_node.rb
|
464
468
|
- lib/solargraph/parser/rubyvm/node_processors/send_node.rb
|
465
469
|
- lib/solargraph/parser/rubyvm/node_processors/sym_node.rb
|
470
|
+
- lib/solargraph/parser/rubyvm/node_wrapper.rb
|
466
471
|
- lib/solargraph/parser/snippet.rb
|
467
472
|
- lib/solargraph/pin.rb
|
468
473
|
- lib/solargraph/pin/base.rb
|
@@ -492,10 +497,18 @@ files:
|
|
492
497
|
- lib/solargraph/pin/reference/prepend.rb
|
493
498
|
- lib/solargraph/pin/reference/require.rb
|
494
499
|
- lib/solargraph/pin/reference/superclass.rb
|
500
|
+
- lib/solargraph/pin/search.rb
|
501
|
+
- lib/solargraph/pin/signature.rb
|
495
502
|
- lib/solargraph/pin/singleton.rb
|
496
503
|
- lib/solargraph/pin/symbol.rb
|
497
504
|
- lib/solargraph/position.rb
|
498
505
|
- lib/solargraph/range.rb
|
506
|
+
- lib/solargraph/rbs_map.rb
|
507
|
+
- lib/solargraph/rbs_map/conversions.rb
|
508
|
+
- lib/solargraph/rbs_map/core_fills.rb
|
509
|
+
- lib/solargraph/rbs_map/core_map.rb
|
510
|
+
- lib/solargraph/rbs_map/core_signs.rb
|
511
|
+
- lib/solargraph/rbs_map/stdlib_map.rb
|
499
512
|
- lib/solargraph/server_methods.rb
|
500
513
|
- lib/solargraph/shell.rb
|
501
514
|
- lib/solargraph/source.rb
|
@@ -540,24 +553,19 @@ files:
|
|
540
553
|
- lib/solargraph/workspace/config.rb
|
541
554
|
- lib/solargraph/yard_map.rb
|
542
555
|
- lib/solargraph/yard_map/cache.rb
|
543
|
-
- lib/solargraph/yard_map/core_docs.rb
|
544
|
-
- lib/solargraph/yard_map/core_fills.rb
|
545
|
-
- lib/solargraph/yard_map/core_gen.rb
|
546
556
|
- lib/solargraph/yard_map/helpers.rb
|
547
557
|
- lib/solargraph/yard_map/mapper.rb
|
548
558
|
- lib/solargraph/yard_map/mapper/to_constant.rb
|
549
559
|
- lib/solargraph/yard_map/mapper/to_method.rb
|
550
560
|
- lib/solargraph/yard_map/mapper/to_namespace.rb
|
551
|
-
- lib/solargraph/yard_map/rdoc_to_yard.rb
|
552
|
-
- lib/solargraph/yard_map/stdlib_fills.rb
|
553
561
|
- lib/solargraph/yard_map/to_method.rb
|
554
562
|
- lib/yard-solargraph.rb
|
555
563
|
- solargraph.gemspec
|
556
|
-
|
557
|
-
homepage: http://solargraph.org
|
564
|
+
homepage: https://solargraph.org
|
558
565
|
licenses:
|
559
566
|
- MIT
|
560
|
-
metadata:
|
567
|
+
metadata:
|
568
|
+
funding_uri: https://www.patreon.com/castwide
|
561
569
|
post_install_message:
|
562
570
|
rdoc_options: []
|
563
571
|
require_paths:
|
@@ -566,7 +574,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
566
574
|
requirements:
|
567
575
|
- - ">="
|
568
576
|
- !ruby/object:Gem::Version
|
569
|
-
version: '2.
|
577
|
+
version: '2.6'
|
570
578
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
571
579
|
requirements:
|
572
580
|
- - ">="
|
data/lib/solargraph/compat.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
unless Hash.method_defined?(:transform_keys)
|
2
|
-
class Hash
|
3
|
-
def transform_keys &block
|
4
|
-
result = {}
|
5
|
-
each_pair do |k, v|
|
6
|
-
result[block.call(k)] = v
|
7
|
-
end
|
8
|
-
result
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
unless Hash.method_defined?(:transform_values)
|
14
|
-
class Hash
|
15
|
-
def transform_values &block
|
16
|
-
result = {}
|
17
|
-
each_pair do |k, v|
|
18
|
-
result[k] = block.call(v)
|
19
|
-
end
|
20
|
-
result
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
unless Array.method_defined?(:sum)
|
26
|
-
class Array
|
27
|
-
def sum &block
|
28
|
-
inject(0) do |s, x|
|
29
|
-
if block
|
30
|
-
s + block.call(x)
|
31
|
-
else
|
32
|
-
s + x
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|