solargraph 0.12.1 → 0.12.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/solargraph/api_map.rb +6 -4
- data/lib/solargraph/code_map.rb +31 -0
- data/lib/solargraph/version.rb +1 -1
- 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: 1ff8b6c3f8f03cacb73e9a6b398d3f984dc2e240
|
4
|
+
data.tar.gz: 58449ce1fd531e8426bcbad2733487a66a23ff3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc8c5611342e2be6c3fbcd354663e611523b2aaf756f738a08f20bcd1a4ca8a9e6a278a64cb31541d09e8243be8170e2c7588de827ae6d36cf95253594eed3cc
|
7
|
+
data.tar.gz: a1d6666d9098e565b2d663a5d1ece4a617fb3ea1d0a97ca4703f4d114656afb831552b60345b9970abb6081028bc623ad65e117dfb98f20029f120e2a665f437
|
data/lib/solargraph/api_map.rb
CHANGED
@@ -872,7 +872,7 @@ module Solargraph
|
|
872
872
|
}
|
873
873
|
end
|
874
874
|
|
875
|
-
def map_namespaces node, tree = [], visibility = :public, scope = :instance, fqn = nil
|
875
|
+
def map_namespaces node, tree = [], visibility = :public, scope = :instance, fqn = nil
|
876
876
|
if node.kind_of?(AST::Node)
|
877
877
|
return if node.type == :str or node.type == :dstr
|
878
878
|
if node.type == :class or node.type == :module
|
@@ -896,8 +896,10 @@ module Solargraph
|
|
896
896
|
node.children.each do |c|
|
897
897
|
if c.kind_of?(AST::Node)
|
898
898
|
if c.type == :ivasgn
|
899
|
-
@ivar_pins[fqn] ||= []
|
900
|
-
|
899
|
+
@ivar_pins[fqn || ''] ||= []
|
900
|
+
par = find_parent(c, :class, :module, :def, :defs)
|
901
|
+
local_scope = ( (par.kind_of?(AST::Node) and par.type == :def) ? :instance : :class )
|
902
|
+
@ivar_pins[fqn || ''].push IvarPin.new(self, c, fqn || '', local_scope, get_comment_for(c))
|
901
903
|
elsif c.type == :cvasgn
|
902
904
|
@cvar_pins[fqn] ||= []
|
903
905
|
@cvar_pins[fqn].push CvarPin.new(self, c, fqn, get_comment_for(c))
|
@@ -907,7 +909,7 @@ module Solargraph
|
|
907
909
|
if c.type == :def and c.children[0].to_s[0].match(/[a-z]/i)
|
908
910
|
@method_pins[fqn] ||= []
|
909
911
|
@method_pins[fqn].push MethodPin.new(c, fqn, scope, visibility, get_comment_for(c))
|
910
|
-
map_namespaces c, tree, visibility, scope, fqn
|
912
|
+
map_namespaces c, tree, visibility, scope, fqn
|
911
913
|
next
|
912
914
|
elsif c.type == :defs
|
913
915
|
@method_pins[fqn] ||= []
|
data/lib/solargraph/code_map.rb
CHANGED
@@ -478,6 +478,13 @@ module Solargraph
|
|
478
478
|
inferred = nil
|
479
479
|
parts = signature.split('.')
|
480
480
|
ns_here = namespace_from(node)
|
481
|
+
if parts[0] and parts[0].include?('::')
|
482
|
+
sub = get_namespace_or_constant(parts[0], ns_here)
|
483
|
+
unless sub.nil?
|
484
|
+
return sub if signature.match(/^#{parts[0]}\.$/)
|
485
|
+
parts[0] = sub
|
486
|
+
end
|
487
|
+
end
|
481
488
|
unless signature.include?('.')
|
482
489
|
fqns = api_map.find_fully_qualified_namespace(signature, ns_here)
|
483
490
|
return "Class<#{fqns}>" unless fqns.nil?
|
@@ -791,6 +798,30 @@ module Solargraph
|
|
791
798
|
nil
|
792
799
|
end
|
793
800
|
|
801
|
+
def get_namespace_or_constant con, namespace
|
802
|
+
parts = con.split('::')
|
803
|
+
conc = parts.shift
|
804
|
+
result = nil
|
805
|
+
is_constant = false
|
806
|
+
while parts.length > 0
|
807
|
+
result = api_map.find_fully_qualified_namespace("#{conc}::#{parts[0]}", namespace)
|
808
|
+
if result.nil? or result.empty?
|
809
|
+
sugg = api_map.namespaces_in(conc, namespace).select{ |s| s.label == parts[0] }.first
|
810
|
+
return nil if sugg.nil?
|
811
|
+
result = sugg.return_type
|
812
|
+
break if result.nil?
|
813
|
+
is_constant = true
|
814
|
+
conc = result
|
815
|
+
parts.shift
|
816
|
+
else
|
817
|
+
is_constant = false
|
818
|
+
conc += "::#{parts.shift}"
|
819
|
+
end
|
820
|
+
end
|
821
|
+
return result if is_constant
|
822
|
+
nil
|
823
|
+
end
|
824
|
+
|
794
825
|
def beginning_of_line_from str, i
|
795
826
|
while i > 0 and str[i] != "\n"
|
796
827
|
i -= 1
|
data/lib/solargraph/version.rb
CHANGED
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.12.
|
4
|
+
version: 0.12.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: 2017-09-
|
11
|
+
date: 2017-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|