solargraph 0.48.0 → 0.50.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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/rspec.yml +1 -1
  4. data/CHANGELOG.md +29 -0
  5. data/LICENSE +1 -1
  6. data/README.md +2 -4
  7. data/SPONSORS.md +4 -4
  8. data/lib/solargraph/api_map/store.rb +13 -1
  9. data/lib/solargraph/api_map.rb +30 -12
  10. data/lib/solargraph/cache.rb +53 -0
  11. data/lib/solargraph/complex_type/type_methods.rb +3 -6
  12. data/lib/solargraph/complex_type/unique_type.rb +57 -0
  13. data/lib/solargraph/complex_type.rb +22 -3
  14. data/lib/solargraph/convention/rakefile.rb +17 -0
  15. data/lib/solargraph/convention.rb +2 -0
  16. data/lib/solargraph/diagnostics/rubocop.rb +15 -2
  17. data/lib/solargraph/diagnostics/rubocop_helpers.rb +3 -1
  18. data/lib/solargraph/language_server/host/cataloger.rb +1 -1
  19. data/lib/solargraph/language_server/host.rb +22 -18
  20. data/lib/solargraph/language_server/message/extended/download_core.rb +1 -5
  21. data/lib/solargraph/language_server/message/initialize.rb +2 -0
  22. data/lib/solargraph/language_server/message/text_document/formatting.rb +1 -1
  23. data/lib/solargraph/language_server/message/text_document/signature_help.rb +1 -6
  24. data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +10 -3
  25. data/lib/solargraph/library.rb +25 -20
  26. data/lib/solargraph/parser/rubyvm/class_methods.rb +6 -1
  27. data/lib/solargraph/parser/rubyvm/node_processors/def_node.rb +20 -8
  28. data/lib/solargraph/parser/rubyvm/node_processors/defs_node.rb +14 -3
  29. data/lib/solargraph/parser/rubyvm/node_processors/send_node.rb +4 -2
  30. data/lib/solargraph/parser/rubyvm/node_wrapper.rb +47 -0
  31. data/lib/solargraph/pin/base.rb +5 -2
  32. data/lib/solargraph/pin/base_variable.rb +1 -1
  33. data/lib/solargraph/pin/conversions.rb +2 -6
  34. data/lib/solargraph/pin/method.rb +84 -10
  35. data/lib/solargraph/pin/namespace.rb +4 -1
  36. data/lib/solargraph/pin/parameter.rb +8 -3
  37. data/lib/solargraph/pin/signature.rb +23 -0
  38. data/lib/solargraph/pin.rb +1 -0
  39. data/lib/solargraph/rbs_map/conversions.rb +394 -0
  40. data/lib/solargraph/rbs_map/core_fills.rb +61 -0
  41. data/lib/solargraph/rbs_map/core_map.rb +38 -0
  42. data/lib/solargraph/rbs_map/core_signs.rb +33 -0
  43. data/lib/solargraph/rbs_map/stdlib_map.rb +36 -0
  44. data/lib/solargraph/rbs_map.rb +73 -0
  45. data/lib/solargraph/shell.rb +50 -32
  46. data/lib/solargraph/source/chain/call.rb +31 -23
  47. data/lib/solargraph/source/chain.rb +22 -7
  48. data/lib/solargraph/source_map/clip.rb +5 -0
  49. data/lib/solargraph/source_map/mapper.rb +8 -4
  50. data/lib/solargraph/type_checker.rb +71 -65
  51. data/lib/solargraph/version.rb +1 -1
  52. data/lib/solargraph/views/environment.erb +2 -2
  53. data/lib/solargraph/workspace.rb +11 -14
  54. data/lib/solargraph/yard_map/mapper/to_method.rb +7 -4
  55. data/lib/solargraph/yard_map.rb +10 -151
  56. data/lib/solargraph.rb +2 -2
  57. data/solargraph.gemspec +11 -6
  58. metadata +46 -37
  59. data/.travis.yml +0 -19
  60. data/lib/solargraph/compat.rb +0 -37
  61. data/lib/solargraph/yard_map/core_docs.rb +0 -170
  62. data/lib/solargraph/yard_map/core_fills.rb +0 -208
  63. data/lib/solargraph/yard_map/core_gen.rb +0 -76
  64. data/lib/solargraph/yard_map/rdoc_to_yard.rb +0 -143
  65. data/lib/solargraph/yard_map/stdlib_fills.rb +0 -43
  66. data/yardoc/2.2.2.tar.gz +0 -0
@@ -46,24 +46,21 @@ module Solargraph
46
46
  #
47
47
  # @param source [Solargraph::Source]
48
48
  # @return [Boolean] True if the source was added to the workspace
49
- def merge source
50
- unless directory == '*' || source_hash.key?(source.filename)
49
+ def merge *sources
50
+ unless directory == '*' || sources.all? { |source| source_hash.key?(source.filename) }
51
51
  # Reload the config to determine if a new source should be included
52
52
  @config = Solargraph::Workspace::Config.new(directory)
53
- return false unless config.calculated.include?(source.filename)
54
53
  end
55
- source_hash[source.filename] = source
56
- true
57
- end
58
54
 
59
- # Determine whether a file would be merged into the workspace.
60
- #
61
- # @param filename [String]
62
- # @return [Boolean]
63
- def would_merge? filename
64
- return true if directory == '*' || source_hash.include?(filename)
65
- @config = Solargraph::Workspace::Config.new(directory)
66
- config.calculated.include?(filename)
55
+ includes_any = false
56
+ sources.each do |source|
57
+ if directory == "*" || config.calculated.include?(source.filename)
58
+ source_hash[source.filename] = source
59
+ includes_any = true
60
+ end
61
+ end
62
+
63
+ includes_any
67
64
  end
68
65
 
69
66
  # Remove a source from the workspace. The source will not be removed if
@@ -13,16 +13,19 @@ module Solargraph
13
13
  )
14
14
  location = object_location(code_object, spec)
15
15
  comments = code_object.docstring ? code_object.docstring.all.to_s : ''
16
- Pin::Method.new(
16
+ pin = Pin::Method.new(
17
17
  location: location,
18
18
  closure: closure,
19
19
  name: name || code_object.name.to_s,
20
20
  comments: comments,
21
21
  scope: scope || code_object.scope,
22
22
  visibility: visibility || code_object.visibility,
23
- parameters: get_parameters(code_object, location, comments),
23
+ # @todo Might need to convert overloads to signatures
24
+ parameters: [],
24
25
  explicit: code_object.is_explicit?
25
26
  )
27
+ pin.parameters.concat get_parameters(code_object, location, comments, pin)
28
+ pin
26
29
  end
27
30
 
28
31
  class << self
@@ -30,7 +33,7 @@ module Solargraph
30
33
 
31
34
  # @param code_object [YARD::CodeObjects::Base]
32
35
  # @return [Array<Solargraph::Pin::Parameter>]
33
- def get_parameters code_object, location, comments
36
+ def get_parameters code_object, location, comments, pin
34
37
  return [] unless code_object.is_a?(YARD::CodeObjects::MethodObject)
35
38
  # HACK: Skip `nil` and `self` parameters that are sometimes emitted
36
39
  # for methods defined in C
@@ -38,7 +41,7 @@ module Solargraph
38
41
  code_object.parameters.select { |a| a[0] && a[0] != 'self' }.map do |a|
39
42
  Solargraph::Pin::Parameter.new(
40
43
  location: location,
41
- closure: self,
44
+ closure: pin,
42
45
  comments: comments,
43
46
  name: arg_name(a),
44
47
  presence: nil,
@@ -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
 
@@ -126,12 +106,6 @@ module Solargraph
126
106
  nil
127
107
  end
128
108
 
129
- # @return [Array<Solargraph::Pin::Base>]
130
- def core_pins
131
- # Using a class variable to reduce loads
132
- @@core_pins ||= load_core_pins
133
- end
134
-
135
109
  # @param path [String]
136
110
  # @return [Pin::Base]
137
111
  def path_pin path
@@ -155,10 +129,6 @@ module Solargraph
155
129
  nil
156
130
  end
157
131
 
158
- def stdlib_pins
159
- @stdlib_pins ||= []
160
- end
161
-
162
132
  def base_required
163
133
  @base_required ||= Set.new
164
134
  end
@@ -199,10 +169,9 @@ module Solargraph
199
169
  def process_requires
200
170
  @gemset = process_gemsets
201
171
  required.merge @gemset.keys if required.include?('bundler/require')
202
- pins.replace core_pins
172
+ pins.clear
203
173
  unresolved_requires.clear
204
174
  missing_docs.clear
205
- stdlib_pins.clear
206
175
  environ = Convention.for_global(self)
207
176
  done = []
208
177
  already_errored = []
@@ -234,14 +203,10 @@ module Solargraph
234
203
  base = req.split('/').first
235
204
  return if already_errored.include?(base)
236
205
  already_errored.push base
237
- stdtmp = load_stdlib_pins(base)
238
206
  if yd.nil?
239
207
  missing_docs.push req
240
- elsif stdtmp.empty?
241
- unresolved_requires.push req
242
208
  else
243
- stdlib_pins.concat stdtmp
244
- result.concat stdtmp
209
+ unresolved_requires.push req
245
210
  end
246
211
  end
247
212
 
@@ -254,8 +219,8 @@ module Solargraph
254
219
  def pins_for_require r, already_errored
255
220
  result = []
256
221
  begin
257
- name = r.split('/').first
258
- return [] if @source_gems.include?(name) || @gem_paths.key?(name)
222
+ name = r.split('/').first.to_s
223
+ return [] if name.empty? || @source_gems.include?(name) || @gem_paths.key?(name)
259
224
  spec = spec_for_require(name)
260
225
  @gem_paths[name] = spec.full_gem_path
261
226
 
@@ -288,22 +253,8 @@ module Solargraph
288
253
  def process_yardoc y, spec = nil
289
254
  return [] if y.nil?
290
255
  if spec
291
- ser = File.join(CoreDocs.cache_dir, 'gems', "#{spec.name}-#{spec.version}.ser")
292
- if File.file?(ser)
293
- Solargraph.logger.info "Loading #{spec.name} #{spec.version} from cache"
294
- file = File.open(ser, 'rb')
295
- dump = file.read
296
- file.close
297
- begin
298
- result = Marshal.load(dump)
299
- return result unless result.nil? || result.empty?
300
- Solargraph.logger.warn "Empty cache for #{spec.name} #{spec.version}. Reloading"
301
- File.unlink ser
302
- rescue StandardError => e
303
- Solargraph.logger.warn "Error loading pin cache: [#{e.class}] #{e.message}"
304
- File.unlink ser
305
- end
306
- end
256
+ cache = Solargraph::Cache.load('gems', "#{spec.name}-#{spec.version}.ser")
257
+ return cache if cache
307
258
  end
308
259
  size = Dir.glob(File.join(y, '**', '*'))
309
260
  .map{ |f| File.size(f) }
@@ -317,10 +268,7 @@ module Solargraph
317
268
  result = Mapper.new(YARD::Registry.all, spec).map
318
269
  raise NoYardocError, "Yardoc at #{y} is empty" if result.empty?
319
270
  if spec
320
- ser = File.join(CoreDocs.cache_dir, 'gems', "#{spec.name}-#{spec.version}.ser")
321
- file = File.open(ser, 'wb')
322
- file.write Marshal.dump(result)
323
- file.close
271
+ Solargraph::Cache.save 'gems', "#{spec.name}-#{spec.version}.ser", result
324
272
  end
325
273
  result
326
274
  end
@@ -328,19 +276,13 @@ module Solargraph
328
276
  # @param spec [Gem::Specification]
329
277
  # @return [String]
330
278
  def yardoc_file_for_spec spec
331
- cache_dir = File.join(Solargraph::YardMap::CoreDocs.cache_dir, 'gems', "#{spec.name}-#{spec.version}", 'yardoc')
332
- if File.exist?(cache_dir)
333
- Solargraph.logger.info "Using cached documentation for #{spec.name} at #{cache_dir}"
334
- cache_dir
335
- else
336
- YARD::Registry.yardoc_file_for_gem(spec.name, "= #{spec.version}")
337
- end
279
+ YARD::Registry.yardoc_file_for_gem(spec.name, "= #{spec.version}")
338
280
  end
339
281
 
340
282
  # @param path [String]
341
283
  # @return [Gem::Specification]
342
284
  def spec_for_require path
343
- name = path.split('/').first
285
+ name = path.split('/').first.to_s
344
286
  spec = Gem::Specification.find_by_name(name, @gemset[name])
345
287
 
346
288
  # Avoid loading the spec again if it's going to be skipped anyway
@@ -355,88 +297,5 @@ module Solargraph
355
297
  end
356
298
  spec
357
299
  end
358
-
359
- def load_core_pins
360
- yd = CoreDocs.yardoc_file
361
- ser = File.join(File.dirname(yd), 'core.ser')
362
- result = if File.file?(ser)
363
- file = File.open(ser, 'rb')
364
- dump = file.read
365
- file.close
366
- begin
367
- Marshal.load(dump)
368
- rescue StandardError => e
369
- Solargraph.logger.warn "Error loading core pin cache: [#{e.class}] #{e.message}"
370
- File.unlink ser
371
- read_core_and_save_cache(yd, ser)
372
- end
373
- else
374
- read_core_and_save_cache(yd, ser)
375
- end
376
- ApiMap::Store.new(result + CoreFills::ALL).pins.reject { |pin| pin.is_a?(Pin::Reference::Override) }
377
- end
378
-
379
- def read_core_and_save_cache yd, ser
380
- result = []
381
- load_yardoc yd
382
- result.concat Mapper.new(YARD::Registry.all).map
383
- # HACK: Assume core methods with a single `args` parameter accept restarg
384
- result.select { |pin| pin.is_a?(Solargraph::Pin::Method )}.each do |pin|
385
- if pin.parameters.length == 1 && pin.parameters.first.name == 'args' && pin.parameters.first.decl == :arg
386
- # @todo Smelly instance variable access
387
- pin.parameters.first.instance_variable_set(:@decl, :restarg)
388
- end
389
- end
390
- # HACK: Set missing parameters on `==` methods, e.g., `Symbol#==`
391
- result.select { |pin| pin.name == '==' && pin.parameters.empty? }.each do |pin|
392
- pin.parameters.push Pin::Parameter.new(decl: :arg, name: 'obj2')
393
- end
394
- dump = Marshal.dump(result)
395
- file = File.open(ser, 'wb')
396
- file.write dump
397
- file.close
398
- result
399
- end
400
-
401
- def load_stdlib_pins base
402
- ser = File.join(File.dirname(CoreDocs.yardoc_stdlib_file), "#{base}.ser")
403
- result = if File.file?(ser)
404
- Solargraph.logger.info "Loading #{base} stdlib from cache"
405
- file = File.open(ser, 'rb')
406
- dump = file.read
407
- file.close
408
- begin
409
- Marshal.load(dump)
410
- rescue StandardError => e
411
- Solargraph.logger.warn "Error loading #{base} stdlib pin cache: [#{e.class}] #{e.message}"
412
- File.unlink ser
413
- read_stdlib_and_save_cache(base, ser)
414
- end
415
- else
416
- read_stdlib_and_save_cache(base, ser)
417
- end
418
- fills = StdlibFills.get(base)
419
- unless fills.empty?
420
- result = ApiMap::Store.new(result + fills).pins.reject { |pin| pin.is_a?(Pin::Reference::Override) }
421
- end
422
- result
423
- end
424
-
425
- def read_stdlib_and_save_cache base, ser
426
- result = []
427
- if stdlib_paths[base]
428
- Solargraph.logger.info "Loading #{base} stdlib from yardoc"
429
- result.concat Mapper.new(stdlib_paths[base]).map
430
- unless result.empty?
431
- dump = Marshal.dump(result)
432
- file = File.open(ser, 'wb')
433
- file.write dump
434
- file.close
435
- end
436
- end
437
- result
438
- end
439
300
  end
440
301
  end
441
-
442
- 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,35 @@ 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 = 'http://solargraph.org'
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"
20
+ s.metadata["bug_tracker_uri"] = "https://github.com/castwide/solargraph/issues"
21
+ s.metadata["changelog_uri"] = "https://github.com/castwide/solargraph/blob/master/CHANGELOG.md"
22
+ s.metadata["source_code_uri"] = "https://github.com/castwide/solargraph"
19
23
 
20
- s.required_ruby_version = '>= 2.4'
24
+ s.required_ruby_version = '>= 2.6'
21
25
 
22
26
  s.add_runtime_dependency 'backport', '~> 1.2'
23
27
  s.add_runtime_dependency 'benchmark'
24
- s.add_runtime_dependency 'bundler', '>= 1.17.2'
28
+ s.add_runtime_dependency 'bundler', '~> 2.0'
25
29
  s.add_runtime_dependency 'diff-lcs', '~> 1.4'
26
30
  s.add_runtime_dependency 'e2mmap'
27
31
  s.add_runtime_dependency 'jaro_winkler', '~> 1.5'
28
32
  s.add_runtime_dependency 'kramdown', '~> 2.3'
29
33
  s.add_runtime_dependency 'kramdown-parser-gfm', '~> 1.1'
30
34
  s.add_runtime_dependency 'parser', '~> 3.0'
31
- s.add_runtime_dependency 'reverse_markdown', '>= 1.0.5', '< 3'
32
- s.add_runtime_dependency 'rubocop', '>= 0.52'
35
+ s.add_runtime_dependency 'rbs', '~> 2.0'
36
+ s.add_runtime_dependency 'reverse_markdown', '~> 2.0'
37
+ s.add_runtime_dependency 'rubocop', '~> 1.38'
33
38
  s.add_runtime_dependency 'thor', '~> 1.0'
34
39
  s.add_runtime_dependency 'tilt', '~> 2.0'
35
40
  s.add_runtime_dependency 'yard', '~> 0.9', '>= 0.9.24'
36
41
 
37
42
  s.add_development_dependency 'pry'
38
43
  s.add_development_dependency 'public_suffix', '~> 3.1'
39
- s.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
44
+ s.add_development_dependency 'rspec', '~> 3.5'
40
45
  s.add_development_dependency 'simplecov', '~> 0.14'
41
46
  s.add_development_dependency 'webmock', '~> 3.6'
42
47
  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.48.0
4
+ version: 0.50.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: 2022-12-19 00:00:00.000000000 Z
11
+ date: 2023-12-05 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: 1.17.2
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: 1.17.2
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: reverse_markdown
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: '3'
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: 1.0.5
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: '3'
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: '0.52'
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: '0.52'
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,10 +303,10 @@ 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"
307
- - ".travis.yml"
308
310
  - ".yardopts"
309
311
  - CHANGELOG.md
310
312
  - Gemfile
@@ -321,7 +323,7 @@ files:
321
323
  - lib/solargraph/api_map/source_to_yard.rb
322
324
  - lib/solargraph/api_map/store.rb
323
325
  - lib/solargraph/bench.rb
324
- - lib/solargraph/compat.rb
326
+ - lib/solargraph/cache.rb
325
327
  - lib/solargraph/complex_type.rb
326
328
  - lib/solargraph/complex_type/type_methods.rb
327
329
  - lib/solargraph/complex_type/unique_type.rb
@@ -329,6 +331,7 @@ files:
329
331
  - lib/solargraph/convention/base.rb
330
332
  - lib/solargraph/convention/gemfile.rb
331
333
  - lib/solargraph/convention/gemspec.rb
334
+ - lib/solargraph/convention/rakefile.rb
332
335
  - lib/solargraph/convention/rspec.rb
333
336
  - lib/solargraph/converters/dd.rb
334
337
  - lib/solargraph/converters/dl.rb
@@ -463,6 +466,7 @@ files:
463
466
  - lib/solargraph/parser/rubyvm/node_processors/scope_node.rb
464
467
  - lib/solargraph/parser/rubyvm/node_processors/send_node.rb
465
468
  - lib/solargraph/parser/rubyvm/node_processors/sym_node.rb
469
+ - lib/solargraph/parser/rubyvm/node_wrapper.rb
466
470
  - lib/solargraph/parser/snippet.rb
467
471
  - lib/solargraph/pin.rb
468
472
  - lib/solargraph/pin/base.rb
@@ -493,10 +497,17 @@ files:
493
497
  - lib/solargraph/pin/reference/require.rb
494
498
  - lib/solargraph/pin/reference/superclass.rb
495
499
  - lib/solargraph/pin/search.rb
500
+ - lib/solargraph/pin/signature.rb
496
501
  - lib/solargraph/pin/singleton.rb
497
502
  - lib/solargraph/pin/symbol.rb
498
503
  - lib/solargraph/position.rb
499
504
  - lib/solargraph/range.rb
505
+ - lib/solargraph/rbs_map.rb
506
+ - lib/solargraph/rbs_map/conversions.rb
507
+ - lib/solargraph/rbs_map/core_fills.rb
508
+ - lib/solargraph/rbs_map/core_map.rb
509
+ - lib/solargraph/rbs_map/core_signs.rb
510
+ - lib/solargraph/rbs_map/stdlib_map.rb
500
511
  - lib/solargraph/server_methods.rb
501
512
  - lib/solargraph/shell.rb
502
513
  - lib/solargraph/source.rb
@@ -541,24 +552,22 @@ files:
541
552
  - lib/solargraph/workspace/config.rb
542
553
  - lib/solargraph/yard_map.rb
543
554
  - lib/solargraph/yard_map/cache.rb
544
- - lib/solargraph/yard_map/core_docs.rb
545
- - lib/solargraph/yard_map/core_fills.rb
546
- - lib/solargraph/yard_map/core_gen.rb
547
555
  - lib/solargraph/yard_map/helpers.rb
548
556
  - lib/solargraph/yard_map/mapper.rb
549
557
  - lib/solargraph/yard_map/mapper/to_constant.rb
550
558
  - lib/solargraph/yard_map/mapper/to_method.rb
551
559
  - lib/solargraph/yard_map/mapper/to_namespace.rb
552
- - lib/solargraph/yard_map/rdoc_to_yard.rb
553
- - lib/solargraph/yard_map/stdlib_fills.rb
554
560
  - lib/solargraph/yard_map/to_method.rb
555
561
  - lib/yard-solargraph.rb
556
562
  - solargraph.gemspec
557
- - yardoc/2.2.2.tar.gz
558
- homepage: http://solargraph.org
563
+ homepage: https://solargraph.org
559
564
  licenses:
560
565
  - MIT
561
- metadata: {}
566
+ metadata:
567
+ funding_uri: https://www.patreon.com/castwide
568
+ bug_tracker_uri: https://github.com/castwide/solargraph/issues
569
+ changelog_uri: https://github.com/castwide/solargraph/blob/master/CHANGELOG.md
570
+ source_code_uri: https://github.com/castwide/solargraph
562
571
  post_install_message:
563
572
  rdoc_options: []
564
573
  require_paths:
@@ -567,7 +576,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
567
576
  requirements:
568
577
  - - ">="
569
578
  - !ruby/object:Gem::Version
570
- version: '2.4'
579
+ version: '2.6'
571
580
  required_rubygems_version: !ruby/object:Gem::Requirement
572
581
  requirements:
573
582
  - - ">="
data/.travis.yml DELETED
@@ -1,19 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.4
4
- - 2.5
5
- - 2.6
6
- - 2.7
7
- - 3.0
8
- - jruby-head
9
- matrix:
10
- include:
11
- - rvm: 2.7
12
- os: osx
13
- allow_failures:
14
- - rvm: jruby-head
15
- before_install:
16
- - gem update --system
17
- - gem install bundler
18
- before_script: yard gems
19
- script: rspec
@@ -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