solargraph 0.7.4 → 0.7.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 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