solargraph 0.51.1 → 0.51.2
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 +6 -0
- data/lib/solargraph/complex_type/unique_type.rb +1 -1
- data/lib/solargraph/complex_type.rb +13 -3
- data/lib/solargraph/parser/legacy/node_chainer.rb +9 -6
- data/lib/solargraph/parser/legacy/node_processors/args_node.rb +28 -13
- data/lib/solargraph/parser/legacy/node_processors.rb +22 -21
- data/lib/solargraph/pin/method.rb +1 -1
- data/lib/solargraph/version.rb +1 -1
- data/solargraph.gemspec +2 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c031e57a0f9eb482a517ed584966ecfff9fd431aaee66d6c97d624393b56fb99
|
4
|
+
data.tar.gz: d6cc56999dc9da2073584a54f5b2ed045e24e573c84408359a9c7f94f8bd8571
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa5be8998891287e3a92429f2317c3bc64235d71977476248cbf3ba1167842b2e65c666b7f1bb49254bcc9c1ad67b2f4ea7f4cd1c50ef3c16723bdbd5286049a
|
7
|
+
data.tar.gz: 30b453fc424796b8b776d2c79b014d19645dd2f091fb6cb6822a6f373e1df719809d845bef66fc3146c821c42a7268f60ff65e034a93f5d51708e5a0028f7fb1
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 0.51.2 - February 1, 2025
|
2
|
+
- Fix exception from parser when anonymous block forwarding is used (#740)
|
3
|
+
- Parameterized Object types
|
4
|
+
- Remove extraneous comment from method examples
|
5
|
+
|
1
6
|
## 0.51.1 - January 23, 2025
|
2
7
|
- Format example code
|
3
8
|
- Block infers yieldself from chain
|
@@ -12,6 +17,7 @@
|
|
12
17
|
- Enable diagnostics by default
|
13
18
|
- Remove RSpec convention (#716)
|
14
19
|
- Include convention pins in document_symbols (#724)
|
20
|
+
- Implement Go To Type Definition (#717)
|
15
21
|
- Remove e2mmap dependency (#699)
|
16
22
|
- Update rbs to 3.0
|
17
23
|
- Relax reverse_markdown dependency (#729)
|
@@ -19,11 +19,12 @@ module Solargraph
|
|
19
19
|
# @param context [String]
|
20
20
|
# @return [ComplexType]
|
21
21
|
def qualify api_map, context = ''
|
22
|
-
|
22
|
+
red = reduce_object
|
23
|
+
types = red.items.map do |t|
|
23
24
|
next t if ['Boolean', 'nil', 'void', 'undefined'].include?(t.name)
|
24
25
|
t.qualify api_map, context
|
25
26
|
end
|
26
|
-
ComplexType.new(types)
|
27
|
+
ComplexType.new(types).reduce_object
|
27
28
|
end
|
28
29
|
|
29
30
|
def first
|
@@ -120,7 +121,7 @@ module Solargraph
|
|
120
121
|
return self unless selfy?
|
121
122
|
red = reduce_class(dst)
|
122
123
|
result = @items.map { |i| i.self_to red }
|
123
|
-
ComplexType.parse(*result.map(&:
|
124
|
+
ComplexType.parse(*result.map(&:tag))
|
124
125
|
end
|
125
126
|
|
126
127
|
def nullable?
|
@@ -131,6 +132,15 @@ module Solargraph
|
|
131
132
|
@items.first.all_params || []
|
132
133
|
end
|
133
134
|
|
135
|
+
protected
|
136
|
+
|
137
|
+
attr_reader :items
|
138
|
+
|
139
|
+
def reduce_object
|
140
|
+
return self if name != 'Object' || subtypes.empty?
|
141
|
+
ComplexType.try_parse(reduce_class(subtypes.join(', ')))
|
142
|
+
end
|
143
|
+
|
134
144
|
private
|
135
145
|
|
136
146
|
# @todo This is a quick and dirty hack that forces `self` keywords
|
@@ -118,16 +118,19 @@ module Solargraph
|
|
118
118
|
elsif [:begin, :kwbegin].include?(n.type)
|
119
119
|
result.concat generate_links(n.children[0])
|
120
120
|
elsif n.type == :block_pass
|
121
|
-
|
121
|
+
block_variable_name_node = n.children[0]
|
122
|
+
if block_variable_name_node.nil?
|
123
|
+
# anonymous block forwarding (e.g., "&")
|
124
|
+
# added in Ruby 3.1 - https://bugs.ruby-lang.org/issues/11256
|
125
|
+
result.push Chain::BlockVariable.new(nil)
|
126
|
+
else
|
127
|
+
result.push Chain::BlockVariable.new("&#{block_variable_name_node.children[0].to_s}")
|
128
|
+
end
|
122
129
|
elsif n.type == :hash
|
123
130
|
result.push Chain::Hash.new('::Hash', hash_is_splatted?(n))
|
124
131
|
else
|
125
132
|
lit = infer_literal_node_type(n)
|
126
|
-
|
127
|
-
# result.push Chain::Hash.new(lit, hash_is_splatted?(n))
|
128
|
-
# else
|
129
|
-
result.push (lit ? Chain::Literal.new(lit) : Chain::Link.new)
|
130
|
-
# end
|
133
|
+
result.push (lit ? Chain::Literal.new(lit) : Chain::Link.new)
|
131
134
|
end
|
132
135
|
result
|
133
136
|
end
|
@@ -6,25 +6,40 @@ module Solargraph
|
|
6
6
|
module NodeProcessors
|
7
7
|
class ArgsNode < Parser::NodeProcessor::Base
|
8
8
|
def process
|
9
|
-
node.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
9
|
+
if node.type == :forward_args
|
10
|
+
forward
|
11
|
+
else
|
12
|
+
node.children.each do |u|
|
13
|
+
loc = get_node_location(u)
|
14
|
+
locals.push Solargraph::Pin::Parameter.new(
|
15
|
+
location: loc,
|
16
|
+
closure: region.closure,
|
17
|
+
comments: comments_for(node),
|
18
|
+
name: u.children[0].to_s,
|
19
|
+
assignment: u.children[1],
|
20
|
+
asgn_code: u.children[1] ? region.code_for(u.children[1]) : nil,
|
21
|
+
presence: region.closure.location.range,
|
22
|
+
decl: get_decl(u)
|
23
|
+
)
|
24
|
+
region.closure.parameters.push locals.last
|
25
|
+
end
|
22
26
|
end
|
23
27
|
process_children
|
24
28
|
end
|
25
29
|
|
26
30
|
private
|
27
31
|
|
32
|
+
def forward
|
33
|
+
loc = get_node_location(node)
|
34
|
+
locals.push Solargraph::Pin::Parameter.new(
|
35
|
+
location: loc,
|
36
|
+
closure: region.closure,
|
37
|
+
presence: region.closure.location.range,
|
38
|
+
decl: get_decl(node)
|
39
|
+
)
|
40
|
+
region.closure.parameters.push locals.last
|
41
|
+
end
|
42
|
+
|
28
43
|
def get_decl node
|
29
44
|
node.type
|
30
45
|
end
|
@@ -28,27 +28,28 @@ module Solargraph
|
|
28
28
|
end
|
29
29
|
|
30
30
|
module NodeProcessor
|
31
|
-
register :source,
|
32
|
-
register :begin,
|
33
|
-
register :kwbegin,
|
34
|
-
register :rescue,
|
35
|
-
register :resbody,
|
36
|
-
register :def,
|
37
|
-
register :defs,
|
38
|
-
register :send,
|
39
|
-
register :class,
|
40
|
-
register :module,
|
41
|
-
register :sclass,
|
42
|
-
register :ivasgn,
|
43
|
-
register :cvasgn,
|
44
|
-
register :lvasgn,
|
45
|
-
register :gvasgn,
|
46
|
-
register :casgn,
|
47
|
-
register :alias,
|
48
|
-
register :args,
|
49
|
-
register :
|
50
|
-
register :
|
51
|
-
register :
|
31
|
+
register :source, Legacy::NodeProcessors::BeginNode
|
32
|
+
register :begin, Legacy::NodeProcessors::BeginNode
|
33
|
+
register :kwbegin, Legacy::NodeProcessors::BeginNode
|
34
|
+
register :rescue, Legacy::NodeProcessors::BeginNode
|
35
|
+
register :resbody, Legacy::NodeProcessors::ResbodyNode
|
36
|
+
register :def, Legacy::NodeProcessors::DefNode
|
37
|
+
register :defs, Legacy::NodeProcessors::DefsNode
|
38
|
+
register :send, Legacy::NodeProcessors::SendNode
|
39
|
+
register :class, Legacy::NodeProcessors::NamespaceNode
|
40
|
+
register :module, Legacy::NodeProcessors::NamespaceNode
|
41
|
+
register :sclass, Legacy::NodeProcessors::SclassNode
|
42
|
+
register :ivasgn, Legacy::NodeProcessors::IvasgnNode
|
43
|
+
register :cvasgn, Legacy::NodeProcessors::CvasgnNode
|
44
|
+
register :lvasgn, Legacy::NodeProcessors::LvasgnNode
|
45
|
+
register :gvasgn, Legacy::NodeProcessors::GvasgnNode
|
46
|
+
register :casgn, Legacy::NodeProcessors::CasgnNode
|
47
|
+
register :alias, Legacy::NodeProcessors::AliasNode
|
48
|
+
register :args, Legacy::NodeProcessors::ArgsNode
|
49
|
+
register :forward_args, Legacy::NodeProcessors::ArgsNode
|
50
|
+
register :block, Legacy::NodeProcessors::BlockNode
|
51
|
+
register :or_asgn, Legacy::NodeProcessors::OrasgnNode
|
52
|
+
register :sym, Legacy::NodeProcessors::SymNode
|
52
53
|
end
|
53
54
|
end
|
54
55
|
end
|
@@ -337,7 +337,7 @@ module Solargraph
|
|
337
337
|
return if example_tags.empty?
|
338
338
|
@documentation += "\n\nExamples:\n\n```ruby\n"
|
339
339
|
@documentation += example_tags.map do |tag|
|
340
|
-
(tag.name ? "# #{tag.name}\n" : '') +
|
340
|
+
(tag.name && !tag.name.empty? ? "# #{tag.name}\n" : '') +
|
341
341
|
"#{tag.text}\n"
|
342
342
|
end
|
343
343
|
.join("\n")
|
data/lib/solargraph/version.rb
CHANGED
data/solargraph.gemspec
CHANGED
@@ -47,4 +47,6 @@ Gem::Specification.new do |s|
|
|
47
47
|
s.add_development_dependency 'rspec', '~> 3.5'
|
48
48
|
s.add_development_dependency 'simplecov', '~> 0.14'
|
49
49
|
s.add_development_dependency 'webmock', '~> 3.6'
|
50
|
+
# work around missing yard dependency needed as of Ruby 3.5
|
51
|
+
s.add_development_dependency 'irb'
|
50
52
|
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.51.
|
4
|
+
version: 0.51.2
|
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-01
|
11
|
+
date: 2025-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backport
|
@@ -344,6 +344,20 @@ dependencies:
|
|
344
344
|
- - "~>"
|
345
345
|
- !ruby/object:Gem::Version
|
346
346
|
version: '3.6'
|
347
|
+
- !ruby/object:Gem::Dependency
|
348
|
+
name: irb
|
349
|
+
requirement: !ruby/object:Gem::Requirement
|
350
|
+
requirements:
|
351
|
+
- - ">="
|
352
|
+
- !ruby/object:Gem::Version
|
353
|
+
version: '0'
|
354
|
+
type: :development
|
355
|
+
prerelease: false
|
356
|
+
version_requirements: !ruby/object:Gem::Requirement
|
357
|
+
requirements:
|
358
|
+
- - ">="
|
359
|
+
- !ruby/object:Gem::Version
|
360
|
+
version: '0'
|
347
361
|
description: IDE tools for code completion, inline documentation, and static analysis
|
348
362
|
email: admin@castwide.com
|
349
363
|
executables:
|