solargraph 0.5.2 → 0.5.3
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/lib/solargraph/api_map.rb +9 -0
- data/lib/solargraph/code_map.rb +10 -1
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/yard_map.rb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34392923b4d66bd6306a6216e363aca3a504ff3b
|
4
|
+
data.tar.gz: 8025196be58e10a71a5d61bfe79d629598e3543f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 701214492f652110bff2a97f08a3fcc832600f3d8aac88f8d8d71cdb258b17c4fc32340ac7cc0c011856180d8698a8a67fa0ce705a81adb8b753e536a975e8e1
|
7
|
+
data.tar.gz: 8ece31aa4ee0e7918c32ef96df4d98cb4e2354035170eb65671003e0fcbdafb60509b6c71fc64ae58d22c1ea6385469430efb988e71f21000d70b2f375d0653a
|
data/lib/solargraph/api_map.rb
CHANGED
@@ -334,6 +334,12 @@ module Solargraph
|
|
334
334
|
top = true
|
335
335
|
while parts.length > 0 and !type.nil?
|
336
336
|
p = parts.shift
|
337
|
+
if top and scope == :class
|
338
|
+
first_class = find_fully_qualified_namespace(p, namespace)
|
339
|
+
sub = nil
|
340
|
+
sub = infer_signature_type(parts.join('.'), first_class, scope: :class) unless first_class.nil?
|
341
|
+
return sub unless sub.to_s == ''
|
342
|
+
end
|
337
343
|
unless p == 'new' and scope != :instance
|
338
344
|
if scope == :instance
|
339
345
|
meths = get_instance_methods(type)
|
@@ -569,6 +575,7 @@ module Solargraph
|
|
569
575
|
end
|
570
576
|
|
571
577
|
def mappable?(node)
|
578
|
+
return true if node.kind_of?(AST::Node) and [:array, :hash, :str, :int, :float].include?(node.type)
|
572
579
|
# TODO Add node.type :casgn (constant assignment)
|
573
580
|
if node.kind_of?(AST::Node) and (node.type == :class or node.type == :module or node.type == :def or node.type == :defs or node.type == :ivasgn or node.type == :gvasgn or node.type == :lvasgn or node.type == :or_asgn)
|
574
581
|
true
|
@@ -633,6 +640,8 @@ module Solargraph
|
|
633
640
|
# TODO: The api_map should ignore local variables.
|
634
641
|
type = node.children[0].type
|
635
642
|
children.push node.children[0].children[0], node.children[1]
|
643
|
+
elsif [:array, :hash, :str, :int, :float].include?(node.type)
|
644
|
+
# @todo Do we really care about the details?
|
636
645
|
end
|
637
646
|
result = node.updated(type, children)
|
638
647
|
result
|
data/lib/solargraph/code_map.rb
CHANGED
@@ -147,10 +147,15 @@ module Solargraph
|
|
147
147
|
end
|
148
148
|
|
149
149
|
def suggest_at index, filtered: true, with_snippets: false
|
150
|
+
node = node_at(index - 2)
|
150
151
|
return [] if string_at?(index)
|
151
152
|
result = []
|
152
153
|
phrase = phrase_at(index)
|
153
154
|
signature = get_signature_at(index)
|
155
|
+
if (@code[index - 1] == '.')
|
156
|
+
type = infer(node_at(index - 2))
|
157
|
+
return @api_map.get_instance_methods(type) unless type.nil?
|
158
|
+
end
|
154
159
|
if signature.start_with?('@')
|
155
160
|
parts = signature.split('.')
|
156
161
|
var = parts.shift
|
@@ -219,7 +224,11 @@ module Solargraph
|
|
219
224
|
type = @api_map.infer_signature_type(signature, ns_here, scope: :class)
|
220
225
|
result.concat @api_map.get_instance_methods(type) unless type.nil?
|
221
226
|
else
|
222
|
-
|
227
|
+
if fqns == ns_here
|
228
|
+
result.concat @api_map.get_methods(fqns, '', visibility: [:private, :protected, :public])
|
229
|
+
else
|
230
|
+
result.concat @api_map.get_methods(fqns)
|
231
|
+
end
|
223
232
|
end
|
224
233
|
else
|
225
234
|
# It's a local variable. Get the type from the node
|
data/lib/solargraph/version.rb
CHANGED
data/lib/solargraph/yard_map.rb
CHANGED
@@ -141,6 +141,10 @@ module Solargraph
|
|
141
141
|
label += " #{args.join(', ')}" unless args.empty?
|
142
142
|
meths.push Suggestion.new(label, insert: "#{n}", kind: Suggestion::METHOD, documentation: m.docstring, code_object: m, detail: "#{ns}", location: "#{m.file}:#{m.line}")
|
143
143
|
}
|
144
|
+
# Collect superclass methods
|
145
|
+
if ns.kind_of?(YARD::CodeObjects::ClassObject) and !ns.superclass.nil?
|
146
|
+
meths += get_methods ns.superclass.to_s, '', visibility: [:public, :protected] unless ['Object', 'BasicObject', ''].include?(ns.superclass.to_s)
|
147
|
+
end
|
144
148
|
if ns.kind_of?(YARD::CodeObjects::ClassObject) and namespace != 'Class'
|
145
149
|
meths += get_instance_methods('Class')
|
146
150
|
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.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Snyder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|