solargraph 0.54.0 → 0.54.5
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/CHANGELOG.md +45 -0
- data/lib/solargraph/api_map/cache.rb +10 -1
- data/lib/solargraph/api_map/index.rb +167 -0
- data/lib/solargraph/api_map/store.rb +72 -121
- data/lib/solargraph/api_map.rb +94 -36
- data/lib/solargraph/bench.rb +17 -1
- data/lib/solargraph/complex_type/type_methods.rb +17 -11
- data/lib/solargraph/complex_type/unique_type.rb +93 -10
- data/lib/solargraph/complex_type.rb +68 -18
- data/lib/solargraph/convention.rb +1 -0
- data/lib/solargraph/doc_map.rb +1 -0
- data/lib/solargraph/equality.rb +33 -0
- data/lib/solargraph/language_server/host/message_worker.rb +48 -5
- data/lib/solargraph/language_server/host.rb +12 -11
- data/lib/solargraph/language_server/message/base.rb +19 -12
- data/lib/solargraph/language_server/message/initialize.rb +3 -1
- data/lib/solargraph/language_server/message/text_document/completion.rb +0 -3
- data/lib/solargraph/language_server/message/text_document/definition.rb +3 -3
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +3 -3
- data/lib/solargraph/language_server/message/text_document/formatting.rb +4 -0
- data/lib/solargraph/language_server/message/text_document/hover.rb +1 -1
- data/lib/solargraph/language_server/message/text_document/type_definition.rb +3 -3
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +2 -2
- data/lib/solargraph/language_server/progress.rb +19 -2
- data/lib/solargraph/library.rb +31 -41
- data/lib/solargraph/location.rb +21 -1
- data/lib/solargraph/parser/node_methods.rb +1 -1
- data/lib/solargraph/parser/node_processor.rb +1 -0
- data/lib/solargraph/parser/parser_gem/class_methods.rb +2 -6
- data/lib/solargraph/parser/parser_gem/node_methods.rb +3 -3
- data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +23 -19
- data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +8 -2
- data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +1 -1
- data/lib/solargraph/parser.rb +2 -5
- data/lib/solargraph/pin/base.rb +41 -17
- data/lib/solargraph/pin/base_variable.rb +4 -3
- data/lib/solargraph/pin/block.rb +6 -26
- data/lib/solargraph/pin/callable.rb +147 -0
- data/lib/solargraph/pin/closure.rb +8 -3
- data/lib/solargraph/pin/common.rb +2 -6
- data/lib/solargraph/pin/conversions.rb +3 -2
- data/lib/solargraph/pin/instance_variable.rb +2 -2
- data/lib/solargraph/pin/method.rb +57 -31
- data/lib/solargraph/pin/namespace.rb +5 -5
- data/lib/solargraph/pin/parameter.rb +11 -12
- data/lib/solargraph/pin/proxy_type.rb +1 -1
- data/lib/solargraph/pin/signature.rb +3 -129
- data/lib/solargraph/pin.rb +4 -1
- data/lib/solargraph/position.rb +7 -0
- data/lib/solargraph/range.rb +9 -4
- data/lib/solargraph/rbs_map/conversions.rb +77 -38
- data/lib/solargraph/rbs_map/core_fills.rb +6 -6
- data/lib/solargraph/rbs_map.rb +1 -0
- data/lib/solargraph/shell.rb +19 -2
- data/lib/solargraph/source/chain/array.rb +7 -6
- data/lib/solargraph/source/chain/block_symbol.rb +1 -1
- data/lib/solargraph/source/chain/block_variable.rb +1 -1
- data/lib/solargraph/source/chain/call.rb +90 -55
- data/lib/solargraph/source/chain/hash.rb +5 -0
- data/lib/solargraph/source/chain/if.rb +5 -0
- data/lib/solargraph/source/chain/link.rb +26 -5
- data/lib/solargraph/source/chain/literal.rb +5 -0
- data/lib/solargraph/source/chain/or.rb +1 -1
- data/lib/solargraph/source/chain.rb +68 -30
- data/lib/solargraph/source/cursor.rb +3 -2
- data/lib/solargraph/source.rb +104 -86
- data/lib/solargraph/source_map/clip.rb +5 -5
- data/lib/solargraph/source_map/data.rb +30 -0
- data/lib/solargraph/source_map.rb +28 -16
- data/lib/solargraph/type_checker/rules.rb +6 -1
- data/lib/solargraph/type_checker.rb +15 -15
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/views/environment.erb +3 -5
- data/lib/solargraph/workspace/config.rb +7 -3
- data/lib/solargraph/workspace.rb +1 -1
- data/lib/solargraph/yard_map/mapper/to_constant.rb +1 -0
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +1 -0
- data/lib/solargraph/yard_map/mapper.rb +1 -0
- data/lib/solargraph/yardoc.rb +1 -1
- data/lib/solargraph.rb +1 -0
- data/solargraph.gemspec +5 -5
- metadata +29 -25
@@ -4,40 +4,41 @@ require 'yard'
|
|
4
4
|
require 'solargraph/yard_tags'
|
5
5
|
|
6
6
|
module Solargraph
|
7
|
-
# An index of
|
7
|
+
# An index of Pins and other ApiMap-related data for a single Source
|
8
|
+
# that can be queried.
|
8
9
|
#
|
9
10
|
class SourceMap
|
10
11
|
autoload :Mapper, 'solargraph/source_map/mapper'
|
11
12
|
autoload :Clip, 'solargraph/source_map/clip'
|
12
13
|
autoload :Completion, 'solargraph/source_map/completion'
|
14
|
+
autoload :Data, 'solargraph/source_map/data'
|
13
15
|
|
14
16
|
# @return [Source]
|
15
17
|
attr_reader :source
|
16
18
|
|
17
19
|
# @return [Array<Pin::Base>]
|
18
|
-
|
20
|
+
def pins
|
21
|
+
data.pins
|
22
|
+
end
|
19
23
|
|
20
24
|
# @return [Array<Pin::LocalVariable>]
|
21
|
-
|
25
|
+
def locals
|
26
|
+
data.locals
|
27
|
+
end
|
22
28
|
|
23
29
|
# @param source [Source]
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
# HACK: Keep the library from changing this
|
28
|
-
@source = source.dup
|
29
|
-
@pins = pins
|
30
|
-
@locals = locals
|
30
|
+
def initialize source
|
31
|
+
@source = source
|
32
|
+
|
31
33
|
environ.merge Convention.for_local(self) unless filename.nil?
|
32
34
|
self.convention_pins = environ.pins
|
33
|
-
@pin_class_hash = pins.to_set.classify(&:class).transform_values(&:to_a)
|
34
35
|
@pin_select_cache = {}
|
35
36
|
end
|
36
37
|
|
37
38
|
# @param klass [Class]
|
38
39
|
# @return [Array<Pin::Base>]
|
39
40
|
def pins_by_class klass
|
40
|
-
@pin_select_cache[klass] ||=
|
41
|
+
@pin_select_cache[klass] ||= pin_class_hash.select { |key, _| key <= klass }.values.flatten
|
41
42
|
end
|
42
43
|
|
43
44
|
# A hash representing the state of the source map's API.
|
@@ -47,7 +48,7 @@ module Solargraph
|
|
47
48
|
#
|
48
49
|
# @return [Integer]
|
49
50
|
def api_hash
|
50
|
-
@api_hash ||= (pins_by_class(Pin::Constant) + pins_by_class(Pin::Namespace).select { |pin| pin.namespace.to_s > '' } + pins_by_class(Pin::Reference) + pins_by_class(Pin::Method).map(&:node)).hash
|
51
|
+
@api_hash ||= (pins_by_class(Pin::Constant) + pins_by_class(Pin::Namespace).select { |pin| pin.namespace.to_s > '' } + pins_by_class(Pin::Reference) + pins_by_class(Pin::Method).map(&:node) + locals).hash
|
51
52
|
end
|
52
53
|
|
53
54
|
# @return [String]
|
@@ -117,10 +118,13 @@ module Solargraph
|
|
117
118
|
_locate_pin line, character, Pin::Namespace, Pin::Method, Pin::Block
|
118
119
|
end
|
119
120
|
|
121
|
+
# @todo Candidate for deprecation
|
122
|
+
#
|
120
123
|
# @param other_map [SourceMap]
|
121
124
|
# @return [Boolean]
|
122
125
|
def try_merge! other_map
|
123
126
|
return false if pins.length != other_map.pins.length || locals.length != other_map.locals.length || requires.map(&:name).uniq.sort != other_map.requires.map(&:name).uniq.sort
|
127
|
+
|
124
128
|
pins.each_index do |i|
|
125
129
|
return false unless pins[i].try_merge!(other_map.pins[i])
|
126
130
|
end
|
@@ -161,16 +165,24 @@ module Solargraph
|
|
161
165
|
SourceMap.map(source)
|
162
166
|
end
|
163
167
|
|
168
|
+
# @deprecated
|
164
169
|
# @param source [Source]
|
165
170
|
# @return [SourceMap]
|
166
171
|
def map source
|
167
|
-
|
168
|
-
new(source, *result)
|
172
|
+
new(source)
|
169
173
|
end
|
170
174
|
end
|
171
175
|
|
172
176
|
private
|
173
177
|
|
178
|
+
def pin_class_hash
|
179
|
+
@pin_class_hash ||= pins.to_set.classify(&:class).transform_values(&:to_a)
|
180
|
+
end
|
181
|
+
|
182
|
+
def data
|
183
|
+
@data ||= Data.new(source)
|
184
|
+
end
|
185
|
+
|
174
186
|
# @return [Array<Pin::Base>]
|
175
187
|
def convention_pins
|
176
188
|
@convention_pins || []
|
@@ -179,7 +191,7 @@ module Solargraph
|
|
179
191
|
# @param pins [Array<Pin::Base>]
|
180
192
|
# @return [Array<Pin::Base>]
|
181
193
|
def convention_pins=(pins)
|
182
|
-
# unmemoizing the document_symbols in case it was called from any of
|
194
|
+
# unmemoizing the document_symbols in case it was called from any of conventions
|
183
195
|
@document_symbols = nil
|
184
196
|
@convention_pins = pins
|
185
197
|
end
|
@@ -9,7 +9,8 @@ module Solargraph
|
|
9
9
|
normal: 0,
|
10
10
|
typed: 1,
|
11
11
|
strict: 2,
|
12
|
-
strong: 3
|
12
|
+
strong: 3,
|
13
|
+
alpha: 4
|
13
14
|
}.freeze
|
14
15
|
|
15
16
|
# @return [Symbol]
|
@@ -52,6 +53,10 @@ module Solargraph
|
|
52
53
|
def validate_tags?
|
53
54
|
rank > LEVELS[:normal]
|
54
55
|
end
|
56
|
+
|
57
|
+
def require_all_return_types_match_inferred?
|
58
|
+
rank >= LEVELS[:alpha]
|
59
|
+
end
|
55
60
|
end
|
56
61
|
end
|
57
62
|
end
|
@@ -29,6 +29,7 @@ module Solargraph
|
|
29
29
|
# @todo Smarter directory resolution
|
30
30
|
@api_map = api_map || Solargraph::ApiMap.load(File.dirname(filename))
|
31
31
|
@rules = Rules.new(level)
|
32
|
+
# @type [Array<Range>]
|
32
33
|
@marked_ranges = []
|
33
34
|
end
|
34
35
|
|
@@ -90,11 +91,11 @@ module Solargraph
|
|
90
91
|
def method_return_type_problems_for pin
|
91
92
|
return [] if pin.is_a?(Pin::MethodAlias)
|
92
93
|
result = []
|
93
|
-
declared = pin.typify(api_map).
|
94
|
+
declared = pin.typify(api_map).self_to_type(pin.full_context).qualify(api_map, pin.full_context.tag)
|
94
95
|
if declared.undefined?
|
95
96
|
if pin.return_type.undefined? && rules.require_type_tags?
|
96
97
|
if pin.attribute?
|
97
|
-
inferred = pin.probe(api_map).
|
98
|
+
inferred = pin.probe(api_map).self_to_type(pin.full_context)
|
98
99
|
result.push Problem.new(pin.location, "Missing @return tag for #{pin.path}", pin: pin) unless inferred.defined?
|
99
100
|
else
|
100
101
|
result.push Problem.new(pin.location, "Missing @return tag for #{pin.path}", pin: pin)
|
@@ -106,14 +107,14 @@ module Solargraph
|
|
106
107
|
end
|
107
108
|
elsif rules.validate_tags?
|
108
109
|
unless pin.node.nil? || declared.void? || virtual_pin?(pin) || abstract?(pin)
|
109
|
-
inferred = pin.probe(api_map).
|
110
|
+
inferred = pin.probe(api_map).self_to_type(pin.full_context)
|
110
111
|
if inferred.undefined?
|
111
112
|
unless rules.ignore_all_undefined? || external?(pin)
|
112
113
|
result.push Problem.new(pin.location, "#{pin.path} return type could not be inferred", pin: pin)
|
113
114
|
end
|
114
115
|
else
|
115
|
-
unless (rules.
|
116
|
-
result.push Problem.new(pin.location, "Declared return type #{declared} does not match inferred type #{inferred} for #{pin.path}", pin: pin)
|
116
|
+
unless (rules.require_all_return_types_match_inferred? ? all_types_match?(api_map, inferred, declared) : any_types_match?(api_map, declared, inferred))
|
117
|
+
result.push Problem.new(pin.location, "Declared return type #{declared.rooted_tags} does not match inferred type #{inferred.rooted_tags} for #{pin.path}", pin: pin)
|
117
118
|
end
|
118
119
|
end
|
119
120
|
end
|
@@ -154,7 +155,7 @@ module Solargraph
|
|
154
155
|
break if par.decl == :restarg || par.decl == :kwrestarg || par.decl == :blockarg
|
155
156
|
unless params[par.name]
|
156
157
|
if pin.attribute?
|
157
|
-
inferred = pin.probe(api_map).
|
158
|
+
inferred = pin.probe(api_map).self_to_type(pin.full_context)
|
158
159
|
if inferred.undefined?
|
159
160
|
result.push Problem.new(pin.location, "Missing @param tag for #{par.name} on #{pin.path}", pin: pin)
|
160
161
|
end
|
@@ -377,7 +378,7 @@ module Solargraph
|
|
377
378
|
break
|
378
379
|
end
|
379
380
|
ptype = params.key?(par.name) ? params[par.name][:qualified] : ComplexType::UNDEFINED
|
380
|
-
ptype = ptype.
|
381
|
+
ptype = ptype.self_to_type(par.context)
|
381
382
|
if ptype.nil?
|
382
383
|
# @todo Some level (strong, I guess) should require the param here
|
383
384
|
else
|
@@ -413,7 +414,7 @@ module Solargraph
|
|
413
414
|
# @param locals [Array<Pin::LocalVariable>]
|
414
415
|
# @param location [Location]
|
415
416
|
# @param pin [Pin::Method]
|
416
|
-
# @param params [Hash{String =>
|
417
|
+
# @param params [Hash{String => Hash{Symbol => String, Solargraph::ComplexType}}]
|
417
418
|
# @param idx [Integer]
|
418
419
|
#
|
419
420
|
# @return [Array<Problem>]
|
@@ -467,10 +468,11 @@ module Solargraph
|
|
467
468
|
end
|
468
469
|
|
469
470
|
# @param pin [Pin::Method]
|
470
|
-
# @return [Hash{String => Hash{Symbol =>
|
471
|
+
# @return [Hash{String => Hash{Symbol => String, ComplexType}}]
|
471
472
|
def param_hash(pin)
|
472
473
|
tags = pin.docstring.tags(:param)
|
473
474
|
return {} if tags.empty?
|
475
|
+
# @type [Hash{String => Hash{Symbol => String, ComplexType}}]
|
474
476
|
result = {}
|
475
477
|
tags.each do |tag|
|
476
478
|
next if tag.types.nil? || tag.types.empty?
|
@@ -483,11 +485,9 @@ module Solargraph
|
|
483
485
|
end
|
484
486
|
|
485
487
|
# @param pins [Array<Pin::Method>]
|
486
|
-
# @return [Hash{String => Hash{Symbol =>
|
488
|
+
# @return [Hash{String => Hash{Symbol => String, ComplexType}}]
|
487
489
|
def first_param_hash(pins)
|
488
490
|
pins.each do |pin|
|
489
|
-
# @todo this assignment from parametric use of Hash should not lose its generic
|
490
|
-
# @type [Hash{String => Hash{Symbol => BasicObject}}]
|
491
491
|
result = param_hash(pin)
|
492
492
|
return result unless result.empty?
|
493
493
|
end
|
@@ -512,7 +512,7 @@ module Solargraph
|
|
512
512
|
!internal? pin
|
513
513
|
end
|
514
514
|
|
515
|
-
# @param pin [Pin::
|
515
|
+
# @param pin [Pin::BaseVariable]
|
516
516
|
def declared_externally? pin
|
517
517
|
return true if pin.assignment.nil?
|
518
518
|
chain = Solargraph::Parser.chain(pin.assignment, filename)
|
@@ -562,7 +562,7 @@ module Solargraph
|
|
562
562
|
return [] unless pin.explicit?
|
563
563
|
return [] if parameters.empty? && arguments.empty?
|
564
564
|
return [] if pin.anon_splat?
|
565
|
-
unchecked = arguments.
|
565
|
+
unchecked = arguments.dup # creates copy of and unthaws array
|
566
566
|
add_params = 0
|
567
567
|
if unchecked.empty? && parameters.any? { |param| param.decl == :kwarg }
|
568
568
|
return [Problem.new(location, "Missing keyword arguments to #{pin.path}")]
|
@@ -638,7 +638,7 @@ module Solargraph
|
|
638
638
|
(pin.closure && pin.closure.docstring.has_tag?('abstract'))
|
639
639
|
end
|
640
640
|
|
641
|
-
# @param pin [Pin::
|
641
|
+
# @param pin [Pin::Method]
|
642
642
|
# @return [Array<Source::Chain>]
|
643
643
|
def fake_args_for(pin)
|
644
644
|
args = []
|
data/lib/solargraph/version.rb
CHANGED
@@ -35,11 +35,9 @@
|
|
35
35
|
<li>
|
36
36
|
Core Cache Directory: N/A <%# @todo Fix %>
|
37
37
|
</li>
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
</li>
|
42
|
-
<% end %>
|
38
|
+
<li>
|
39
|
+
Parser Target Version: <%= Solargraph::Parser.version %>
|
40
|
+
</li>
|
43
41
|
<li>
|
44
42
|
Using Bundler: <%= ENV.key?('BUNDLE_BIN_PATH') %>
|
45
43
|
</li>
|
@@ -15,7 +15,7 @@ module Solargraph
|
|
15
15
|
attr_reader :directory
|
16
16
|
|
17
17
|
# @todo To make this strongly typed we'll need a record syntax
|
18
|
-
# @return [Hash{String =>
|
18
|
+
# @return [Hash{String => Array, Hash, Integer, nil}]
|
19
19
|
attr_reader :raw_data
|
20
20
|
|
21
21
|
# @param directory [String]
|
@@ -90,6 +90,7 @@ module Solargraph
|
|
90
90
|
|
91
91
|
# A hash of options supported by the formatter
|
92
92
|
#
|
93
|
+
# @sg-ignore pending https://github.com/castwide/solargraph/pull/905
|
93
94
|
# @return [Hash]
|
94
95
|
def formatter
|
95
96
|
raw_data['formatter']
|
@@ -104,6 +105,7 @@ module Solargraph
|
|
104
105
|
|
105
106
|
# The maximum number of files to parse from the workspace.
|
106
107
|
#
|
108
|
+
# @sg-ignore pending https://github.com/castwide/solargraph/pull/905
|
107
109
|
# @return [Integer]
|
108
110
|
def max_files
|
109
111
|
raw_data['max_files']
|
@@ -123,7 +125,7 @@ module Solargraph
|
|
123
125
|
File.join(@directory, '.solargraph.yml')
|
124
126
|
end
|
125
127
|
|
126
|
-
# @return [Hash{String => Array
|
128
|
+
# @return [Hash{String => Array<undefined>, Hash{String => undefined}, Integer}]
|
127
129
|
def config_data
|
128
130
|
workspace_config = read_config(workspace_config_path)
|
129
131
|
global_config = read_config(global_config_path)
|
@@ -226,7 +228,9 @@ module Solargraph
|
|
226
228
|
|
227
229
|
# @return [Array<String>]
|
228
230
|
def excluded_directories
|
229
|
-
@
|
231
|
+
# @type [Array<String>]
|
232
|
+
excluded = @raw_data['exclude']
|
233
|
+
excluded
|
230
234
|
.select { |g| glob_is_directory?(g) }
|
231
235
|
.map { |g| File.absolute_path(glob_to_directory(g), directory) }
|
232
236
|
end
|
data/lib/solargraph/workspace.rb
CHANGED
@@ -45,7 +45,7 @@ module Solargraph
|
|
45
45
|
# or add it to the sources if the workspace is configured to include it.
|
46
46
|
# The source is ignored if the configuration excludes it.
|
47
47
|
#
|
48
|
-
# @param
|
48
|
+
# @param sources [Array<Solargraph::Source>]
|
49
49
|
# @return [Boolean] True if the source was added to the workspace
|
50
50
|
def merge *sources
|
51
51
|
unless directory == '*' || sources.all? { |source| source_hash.key?(source.filename) }
|
data/lib/solargraph/yardoc.rb
CHANGED
@@ -35,7 +35,7 @@ module Solargraph
|
|
35
35
|
# @param gemspec [Gem::Specification]
|
36
36
|
# @return [String]
|
37
37
|
def path_for(gemspec)
|
38
|
-
File.join(Solargraph::Cache.
|
38
|
+
File.join(Solargraph::Cache.base_dir, "yard-#{YARD::VERSION}", "#{gemspec.name}-#{gemspec.version}.yardoc")
|
39
39
|
end
|
40
40
|
|
41
41
|
# Load a gem's yardoc and return its code objects.
|
data/lib/solargraph.rb
CHANGED
@@ -42,6 +42,7 @@ module Solargraph
|
|
42
42
|
autoload :Logging, 'solargraph/logging'
|
43
43
|
autoload :TypeChecker, 'solargraph/type_checker'
|
44
44
|
autoload :Environ, 'solargraph/environ'
|
45
|
+
autoload :Equality, 'solargraph/equality'
|
45
46
|
autoload :Convention, 'solargraph/convention'
|
46
47
|
autoload :Parser, 'solargraph/parser'
|
47
48
|
autoload :RbsMap, 'solargraph/rbs_map'
|
data/solargraph.gemspec
CHANGED
@@ -24,10 +24,10 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.required_ruby_version = '>= 3.0'
|
25
25
|
|
26
26
|
s.add_runtime_dependency 'backport', '~> 1.2'
|
27
|
-
s.add_runtime_dependency 'benchmark'
|
27
|
+
s.add_runtime_dependency 'benchmark', '~> 0.4'
|
28
28
|
s.add_runtime_dependency 'bundler', '~> 2.0'
|
29
29
|
s.add_runtime_dependency 'diff-lcs', '~> 1.4'
|
30
|
-
s.add_runtime_dependency 'jaro_winkler', '~> 1.6'
|
30
|
+
s.add_runtime_dependency 'jaro_winkler', '~> 1.6', '>= 1.6.1'
|
31
31
|
s.add_runtime_dependency 'kramdown', '~> 2.3'
|
32
32
|
s.add_runtime_dependency 'kramdown-parser-gfm', '~> 1.1'
|
33
33
|
s.add_runtime_dependency 'logger', '~> 1.6'
|
@@ -35,19 +35,19 @@ Gem::Specification.new do |s|
|
|
35
35
|
s.add_runtime_dependency 'ostruct', '~> 0.6'
|
36
36
|
s.add_runtime_dependency 'parser', '~> 3.0'
|
37
37
|
s.add_runtime_dependency 'rbs', '~> 3.3'
|
38
|
-
s.add_runtime_dependency 'reverse_markdown', '
|
38
|
+
s.add_runtime_dependency 'reverse_markdown', '~> 3.0'
|
39
39
|
s.add_runtime_dependency 'rubocop', '~> 1.38'
|
40
40
|
s.add_runtime_dependency 'thor', '~> 1.0'
|
41
41
|
s.add_runtime_dependency 'tilt', '~> 2.0'
|
42
42
|
s.add_runtime_dependency 'yard', '~> 0.9', '>= 0.9.24'
|
43
43
|
s.add_runtime_dependency 'yard-solargraph', '~> 0.1'
|
44
44
|
|
45
|
-
s.add_development_dependency 'pry'
|
45
|
+
s.add_development_dependency 'pry', '~> 0.15'
|
46
46
|
s.add_development_dependency 'public_suffix', '~> 3.1'
|
47
47
|
s.add_development_dependency 'rake', '~> 13.2'
|
48
48
|
s.add_development_dependency 'rspec', '~> 3.5'
|
49
49
|
s.add_development_dependency 'simplecov', '~> 0.14'
|
50
50
|
s.add_development_dependency 'webmock', '~> 3.6'
|
51
51
|
# work around missing yard dependency needed as of Ruby 3.5
|
52
|
-
s.add_development_dependency 'irb'
|
52
|
+
s.add_development_dependency 'irb', '~> 1.15'
|
53
53
|
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.54.
|
4
|
+
version: 0.54.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Snyder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backport
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: benchmark
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '0.4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '0.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,6 +73,9 @@ dependencies:
|
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '1.6'
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 1.6.1
|
76
79
|
type: :runtime
|
77
80
|
prerelease: false
|
78
81
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -80,6 +83,9 @@ dependencies:
|
|
80
83
|
- - "~>"
|
81
84
|
- !ruby/object:Gem::Version
|
82
85
|
version: '1.6'
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 1.6.1
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
90
|
name: kramdown
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,22 +188,16 @@ dependencies:
|
|
182
188
|
name: reverse_markdown
|
183
189
|
requirement: !ruby/object:Gem::Requirement
|
184
190
|
requirements:
|
185
|
-
- - "
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: '2.0'
|
188
|
-
- - "<"
|
191
|
+
- - "~>"
|
189
192
|
- !ruby/object:Gem::Version
|
190
|
-
version: '
|
193
|
+
version: '3.0'
|
191
194
|
type: :runtime
|
192
195
|
prerelease: false
|
193
196
|
version_requirements: !ruby/object:Gem::Requirement
|
194
197
|
requirements:
|
195
|
-
- - "
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
version: '2.0'
|
198
|
-
- - "<"
|
198
|
+
- - "~>"
|
199
199
|
- !ruby/object:Gem::Version
|
200
|
-
version: '
|
200
|
+
version: '3.0'
|
201
201
|
- !ruby/object:Gem::Dependency
|
202
202
|
name: rubocop
|
203
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -278,16 +278,16 @@ dependencies:
|
|
278
278
|
name: pry
|
279
279
|
requirement: !ruby/object:Gem::Requirement
|
280
280
|
requirements:
|
281
|
-
- - "
|
281
|
+
- - "~>"
|
282
282
|
- !ruby/object:Gem::Version
|
283
|
-
version: '0'
|
283
|
+
version: '0.15'
|
284
284
|
type: :development
|
285
285
|
prerelease: false
|
286
286
|
version_requirements: !ruby/object:Gem::Requirement
|
287
287
|
requirements:
|
288
|
-
- - "
|
288
|
+
- - "~>"
|
289
289
|
- !ruby/object:Gem::Version
|
290
|
-
version: '0'
|
290
|
+
version: '0.15'
|
291
291
|
- !ruby/object:Gem::Dependency
|
292
292
|
name: public_suffix
|
293
293
|
requirement: !ruby/object:Gem::Requirement
|
@@ -362,16 +362,16 @@ dependencies:
|
|
362
362
|
name: irb
|
363
363
|
requirement: !ruby/object:Gem::Requirement
|
364
364
|
requirements:
|
365
|
-
- - "
|
365
|
+
- - "~>"
|
366
366
|
- !ruby/object:Gem::Version
|
367
|
-
version: '
|
367
|
+
version: '1.15'
|
368
368
|
type: :development
|
369
369
|
prerelease: false
|
370
370
|
version_requirements: !ruby/object:Gem::Requirement
|
371
371
|
requirements:
|
372
|
-
- - "
|
372
|
+
- - "~>"
|
373
373
|
- !ruby/object:Gem::Version
|
374
|
-
version: '
|
374
|
+
version: '1.15'
|
375
375
|
description: IDE tools for code completion, inline documentation, and static analysis
|
376
376
|
email: admin@castwide.com
|
377
377
|
executables:
|
@@ -397,6 +397,7 @@ files:
|
|
397
397
|
- lib/solargraph.rb
|
398
398
|
- lib/solargraph/api_map.rb
|
399
399
|
- lib/solargraph/api_map/cache.rb
|
400
|
+
- lib/solargraph/api_map/index.rb
|
400
401
|
- lib/solargraph/api_map/source_to_yard.rb
|
401
402
|
- lib/solargraph/api_map/store.rb
|
402
403
|
- lib/solargraph/bench.rb
|
@@ -423,6 +424,7 @@ files:
|
|
423
424
|
- lib/solargraph/diagnostics/update_errors.rb
|
424
425
|
- lib/solargraph/doc_map.rb
|
425
426
|
- lib/solargraph/environ.rb
|
427
|
+
- lib/solargraph/equality.rb
|
426
428
|
- lib/solargraph/gem_pins.rb
|
427
429
|
- lib/solargraph/language_server.rb
|
428
430
|
- lib/solargraph/language_server/completion_item_kinds.rb
|
@@ -524,6 +526,7 @@ files:
|
|
524
526
|
- lib/solargraph/pin/base.rb
|
525
527
|
- lib/solargraph/pin/base_variable.rb
|
526
528
|
- lib/solargraph/pin/block.rb
|
529
|
+
- lib/solargraph/pin/callable.rb
|
527
530
|
- lib/solargraph/pin/class_variable.rb
|
528
531
|
- lib/solargraph/pin/closure.rb
|
529
532
|
- lib/solargraph/pin/common.rb
|
@@ -589,6 +592,7 @@ files:
|
|
589
592
|
- lib/solargraph/source_map.rb
|
590
593
|
- lib/solargraph/source_map/clip.rb
|
591
594
|
- lib/solargraph/source_map/completion.rb
|
595
|
+
- lib/solargraph/source_map/data.rb
|
592
596
|
- lib/solargraph/source_map/mapper.rb
|
593
597
|
- lib/solargraph/type_checker.rb
|
594
598
|
- lib/solargraph/type_checker/checks.rb
|
@@ -639,7 +643,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
639
643
|
- !ruby/object:Gem::Version
|
640
644
|
version: '0'
|
641
645
|
requirements: []
|
642
|
-
rubygems_version: 3.
|
646
|
+
rubygems_version: 3.5.22
|
643
647
|
signing_key:
|
644
648
|
specification_version: 4
|
645
649
|
summary: A Ruby language server
|