solargraph 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8b663346a935bf7a364c828edc3eddfcdeab1702
4
- data.tar.gz: 28e58c55f6d542b5a3b4bff0da3f7ce619d8df0c
3
+ metadata.gz: bc699f1c3abc5198bf2fde325bb4dfde8c6cb384
4
+ data.tar.gz: 6f676543082c9943d647772d3c4c7f04ab4caefe
5
5
  SHA512:
6
- metadata.gz: 441b66f057a2ec97b41bc7a76b71c1869a483e61c2494cc2a93e4f9faac4d0e350b4b78096242a2f87ef001454c397447d422c0fba2fd5bbe2caa1ecb3cd2aba
7
- data.tar.gz: 2d44127c944bd074ec315dd5e1043eebe5b9b706ef950468318228922655569a42fc2e641771f8e4b497209cff0b9a8852ce7ac49091be424ec9dfd476936846
6
+ metadata.gz: d519c282a68e56c063068d03a1d7067e98d544714e5b234b5f5da08c6b2e354fcc0067240bf6630eeeeb94b02cf57c1461715054b241febfe73217b53e6e3129
7
+ data.tar.gz: 57e7b7388f4aca96e654a1997cd8d236227f9ebb76f7b4d118ca2fe5e3e015955c583889693e683e81f37e978b5d8c5781d218b2e18af17e6d88262f7bde5f12
@@ -346,7 +346,7 @@ module Solargraph
346
346
  unless p == 'new' and scope != :instance
347
347
  if scope == :instance
348
348
  meths = get_instance_methods(type)
349
- meths += get_methods('') if top
349
+ meths += get_methods('') if top or type.to_s == ''
350
350
  else
351
351
  meths = get_methods(type)
352
352
  #meths += get_methods('') if top
@@ -544,7 +544,9 @@ module Solargraph
544
544
  if n.kind_of?(AST::Node)
545
545
  if n.type == :class and !n.children[1].nil?
546
546
  s = unpack_name(n.children[1])
547
- meths += inner_get_instance_methods(s, namespace, skip)
547
+ # @todo This skip might not work properly. We might need to get a
548
+ # fully qualified namespace from it first
549
+ meths += get_instance_methods(s, namespace) unless skip.include?(s)
548
550
  end
549
551
  current_scope = :public
550
552
  n.children.each { |c|
@@ -41,21 +41,34 @@ module Solargraph
41
41
  STDERR.puts "Retrying..."
42
42
  tries += 1
43
43
  spot = e.diagnostic.location.begin_pos
44
+ #STDERR.puts "CODE>>>>"
45
+ #STDERR.puts tmp
46
+ #STDERR.puts "<<<<CODE"
47
+ #STDERR.puts "Spot #{spot}: #{tmp[spot]}"
48
+ repl = '_'
44
49
  if tmp[spot] == '@' or tmp[spot] == ':'
45
50
  # Stub unfinished instance variables and symbols
46
51
  spot -= 1
47
52
  elsif tmp[spot - 1] == '.'
48
53
  # Stub unfinished method calls
54
+ repl = '#' if spot == tmp.length or tmp[spot] == '\n'
49
55
  spot -= 2
50
56
  else
51
57
  # Stub the whole line
52
- spot = beginning_of_line_from(spot)
53
- end
54
- if spot == 0
55
- tmp = '#' + tmp[1..-1]
56
- else
57
- tmp = tmp[0..spot] + '#' + tmp[spot+2..-1].to_s
58
+ spot = beginning_of_line_from(tmp, spot)
59
+ repl = '#'
60
+ if tmp[spot+1..-1].rstrip == 'end'
61
+ repl= 'end;end'
62
+ end
58
63
  end
64
+ #if spot == 0
65
+ # tmp = '#' + tmp[1..-1]
66
+ #else
67
+ tmp = tmp[0..spot] + repl + tmp[spot+repl.length+1..-1].to_s
68
+ #end
69
+ #STDERR.puts "CHNG>>>>"
70
+ #STDERR.puts tmp
71
+ #STDERR.puts "<<<<CHNG"
59
72
  retry
60
73
  end
61
74
  raise e
@@ -227,7 +240,7 @@ module Solargraph
227
240
  end
228
241
  end
229
242
  end
230
- result = reduce_starting_with(result, word_at(index)) if filtered
243
+ #result = reduce_starting_with(result, word_at(index)) if filtered
231
244
  result.uniq{|s| s.path}
232
245
  end
233
246
 
@@ -432,10 +445,13 @@ module Solargraph
432
445
  nil
433
446
  end
434
447
 
435
- def beginning_of_line_from i
436
- while i > 0 and @code[i] != "\n"
448
+ def beginning_of_line_from str, i
449
+ while i > 0 and str[i] != "\n"
437
450
  i -= 1
438
451
  end
452
+ if i > 0 and str[i..-1].strip == ''
453
+ i = beginning_of_line_from str, i -1
454
+ end
439
455
  i
440
456
  end
441
457
  end
@@ -1,3 +1,3 @@
1
1
  module Solargraph
2
- VERSION = '0.7.4'
2
+ VERSION = '0.7.5'
3
3
  end
@@ -21,7 +21,11 @@ module Solargraph
21
21
  unless used.include?(g)
22
22
  used.push g
23
23
  gy = YARD::Registry.yardoc_file_for_gem(g)
24
- yardocs.push gy unless gy.nil?
24
+ if gy.nil?
25
+ STDERR.puts "Required path not found: #{r}"
26
+ else
27
+ yardocs.push gy
28
+ end
25
29
  end
26
30
  end
27
31
  }
@@ -81,20 +85,10 @@ module Solargraph
81
85
  cached = cache.get_constants(namespace, scope)
82
86
  return cached unless cached.nil?
83
87
  consts = []
84
- binds = []
85
88
  result = []
86
89
  yardocs.each { |y|
87
90
  yard = load_yardoc(y)
88
91
  unless yard.nil?
89
- if namespace == '' and scope == ''
90
- # Check for a bind tag in the yardoc root. If it exists, treat
91
- # workspace code as a DSL that uses public instance methods in the
92
- # specified namespaces.
93
- b = yard.root.tag(:bind)
94
- unless b.nil?
95
- binds.concat b.types
96
- end
97
- end
98
92
  ns = nil
99
93
  if scope == ''
100
94
  ns = yard.at(namespace)
@@ -116,9 +110,6 @@ module Solargraph
116
110
  end
117
111
  result.push Suggestion.new(c.to_s.split('::').last, detail: detail, kind: kind)
118
112
  }
119
- binds.each { |type|
120
- result.concat get_instance_methods(type, '', visibility: [:public])
121
- }
122
113
  cache.set_constants(namespace, scope, result)
123
114
  result
124
115
  end
@@ -150,11 +141,19 @@ module Solargraph
150
141
  cached = cache.get_methods(namespace, scope, visibility)
151
142
  return cached unless cached.nil?
152
143
  meths = []
144
+ binds = []
153
145
  yardocs.each { |y|
154
146
  yard = load_yardoc(y)
155
147
  unless yard.nil?
156
148
  ns = nil
157
149
  ns = find_first_resolved_namespace(yard, namespace, scope)
150
+ if namespace == '' and scope == ''
151
+ # Check for a bind tag in the yardoc root. If it exists, treat
152
+ # workspace code as a DSL that uses public instance methods in the
153
+ # specified namespaces.
154
+ b = yard.root.tag(:bind)
155
+ binds.concat b.types unless b.nil?
156
+ end
158
157
  unless ns.nil?
159
158
  ns.meths(scope: :class, visibility: visibility).each { |m|
160
159
  n = m.to_s.split(/[\.#]/).last.gsub(/=/, ' = ')
@@ -173,6 +172,9 @@ module Solargraph
173
172
  end
174
173
  end
175
174
  }
175
+ binds.each { |b|
176
+ meths += get_instance_methods(b, scope, visibility: [:public])
177
+ }
176
178
  cache.set_methods(namespace, scope, visibility, meths)
177
179
  meths
178
180
  end
@@ -198,7 +200,9 @@ module Solargraph
198
200
  end
199
201
  }
200
202
  if ns.kind_of?(YARD::CodeObjects::ClassObject) and namespace != 'Object'
201
- meths += get_instance_methods('Object')
203
+ if ns.superclass.kind_of?(YARD::CodeObjects::Proxy)
204
+ meths += get_instance_methods(ns.superclass.to_s)
205
+ end
202
206
  end
203
207
  end
204
208
  end
@@ -254,8 +258,8 @@ module Solargraph
254
258
  def cache_core
255
259
  c = get_constants '', ''
256
260
  c.each { |n|
257
- get_methods 'n', visibility: :public
258
- get_instance_methods 'n', visibility: :public
261
+ #get_methods n.label, visibility: :public
262
+ #get_instance_methods n.label, visibility: :public
259
263
  }
260
264
  end
261
265
  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.7.4
4
+ version: 0.7.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: 2017-05-11 00:00:00.000000000 Z
11
+ date: 2017-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser