solargraph 0.8.5 → 0.8.6

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: 42c517ebca7551450b32dd8fded6d41d354e3f0e
4
- data.tar.gz: 811178710bc8fc5ad25c6595b36472c6d8236936
3
+ metadata.gz: 02c54193138513541a17e784338430260259b223
4
+ data.tar.gz: f464a3a964e88b6f82d250e065d92e0062c3a135
5
5
  SHA512:
6
- metadata.gz: 049374bd1b7e3e5907df5bd722029e409b6359b96cdc08835a7e1179aae5b85989d378c93ccb4b952daeceac4534afe61ce5d499b367250e3623947f668c73c6
7
- data.tar.gz: d4060fed1fcc0943c4d8939df046c4c83e1059ed93b20f4b7bfb45c614c554792bee0c7c0543d15f274d6d640203b11827620cb64e48baa37e18d170c610416f
6
+ metadata.gz: b548477ca4dc01db1785654d68d779a1ae3e29fb29c7702efc006ce2abfd8101df8735395328bb11db9a19abfc568d93896fadc392c8eb9af4126450fb7df162
7
+ data.tar.gz: dd27df9547f7dddfff89b98af23cf61d9dfaeb5937f790885c30607b7ccc7f3d5151132fb1affa8183b4f766d257731129b504a1dbcc43c1791deec07f719a7c
@@ -405,10 +405,15 @@ module Solargraph
405
405
  }
406
406
  return args if list.nil?
407
407
  list.children.each { |c|
408
+ STDERR.puts "Args child is #{c.type}"
408
409
  if c.type == :arg
409
410
  args.push c.children[0]
410
- elsif c.type == :kwoptarg
411
+ elsif c.type == :optarg
412
+ args.push "#{c.children[0]} = _"
413
+ elsif c.type == :kwarg
411
414
  args.push "#{c.children[0]}:"
415
+ elsif c.type == :kwoptarg
416
+ args.push "#{c.children[0]}: _"
412
417
  end
413
418
  }
414
419
  args
@@ -475,18 +480,17 @@ module Solargraph
475
480
  if workspace.nil?
476
481
  STDERR.puts "No workspace specified for yardoc update."
477
482
  else
478
- Dir.chdir(workspace) do
479
- Thread.new {
480
- STDERR.puts "Updating the yardoc..."
481
- globs = yard_options[:include] - yard_options[:exclude]
483
+ Thread.new {
484
+ Dir.chdir(workspace) do
485
+ STDERR.puts "Updating the yardoc for #{workspace}..."
482
486
  cmd = "yardoc -e #{Solargraph::YARD_EXTENSION_FILE}"
483
487
  STDERR.puts "Update yardoc with #{cmd}"
484
488
  STDERR.puts `#{cmd}`
485
489
  unless $?.success?
486
490
  STDERR.puts "There was an error processing the workspace yardoc."
487
491
  end
488
- }
489
- end
492
+ end
493
+ }
490
494
  end
491
495
  end
492
496
 
@@ -5,19 +5,15 @@ module Solargraph
5
5
  attr_accessor :node
6
6
  attr_reader :code
7
7
  attr_reader :parsed
8
+ attr_reader :filename
8
9
  attr_reader :workspace
9
10
 
10
11
  include NodeMethods
11
12
 
12
13
  def initialize code: '', filename: nil, workspace: nil, api_map: nil
13
- unless workspace.nil?
14
- workspace = workspace.gsub(File::ALT_SEPARATOR, File::SEPARATOR) unless File::ALT_SEPARATOR.nil?
15
- end
16
- if workspace.nil? and !filename.nil?
17
- filename = filename.gsub(File::ALT_SEPARATOR, File::SEPARATOR) unless File::ALT_SEPARATOR.nil?
18
- workspace = CodeMap.find_workspace(filename)
19
- end
20
14
  @workspace = workspace
15
+ # HACK: Adjust incoming filename's path separator for yardoc file comparisons
16
+ filename = filename.gsub(File::ALT_SEPARATOR, File::SEPARATOR) unless filename.nil? or File::ALT_SEPARATOR.nil?
21
17
  @filename = filename
22
18
  @api_map = api_map
23
19
  @code = code.gsub(/\r/, '')
@@ -68,24 +64,6 @@ module Solargraph
68
64
  @api_map ||= ApiMap.new(workspace)
69
65
  end
70
66
 
71
- def self.find_workspace filename
72
- return nil if filename.nil?
73
- dirname = filename
74
- lastname = nil
75
- result = nil
76
- until dirname == lastname
77
- if File.file?("#{dirname}/Gemfile")
78
- result = dirname
79
- break
80
- end
81
- lastname = dirname
82
- dirname = File.dirname(dirname)
83
- end
84
- result ||= File.dirname(filename)
85
- result.gsub!(File::ALT_SEPARATOR, File::SEPARATOR) unless File::ALT_SEPARATOR.nil?
86
- result
87
- end
88
-
89
67
  # Get the offset of the specified line and column.
90
68
  # The offset (also called the "index") is typically used to identify the
91
69
  # cursor's location in the code when generating suggestions.
@@ -20,7 +20,7 @@ module Solargraph
20
20
  content_type :json
21
21
  begin
22
22
  sugg = []
23
- workspace = params['workspace'] || CodeMap.find_workspace(params['filename'])
23
+ workspace = params['workspace']
24
24
  Server.prepare_workspace workspace unless @@api_hash.has_key?(workspace)
25
25
  @@semaphore.synchronize {
26
26
  code_map = CodeMap.new(code: params['text'], filename: params['filename'], api_map: @@api_hash[workspace])
@@ -21,7 +21,7 @@ module Solargraph
21
21
  @insert = insert || @label
22
22
  @detail = detail
23
23
  @code_object = code_object
24
- @documentation = @helper.html_markup_rdoc(documentation.to_s) unless documentation.nil?
24
+ @documentation = documentation
25
25
  @location = location
26
26
  @arguments = arguments
27
27
  end
@@ -37,8 +37,14 @@ module Solargraph
37
37
  def return_type
38
38
  if code_object.nil?
39
39
  unless documentation.nil?
40
- match = documentation.match(/@return \[([a-z0-9:_]*)/i)
41
- return match[1] unless match.nil?
40
+ if documentation.kind_of?(YARD::Docstring)
41
+ t = documentation.tag(:return)
42
+ return nil if t.nil?
43
+ return t.types[0]
44
+ else
45
+ match = documentation.match(/@return \[([a-z0-9:_]*)/i)
46
+ return match[1] unless match.nil?
47
+ end
42
48
  end
43
49
  else
44
50
  o = code_object.tag(:overload)
@@ -55,10 +61,10 @@ module Solargraph
55
61
  def documentation
56
62
  if @documentation.nil?
57
63
  unless @code_object.nil?
58
- @documentation = @helper.html_markup_rdoc(@code_object.docstring.to_s) unless @code_object.docstring.nil?
64
+ @documentation = @code_object.docstring unless @code_object.docstring.nil?
59
65
  end
60
66
  end
61
- @documentation.to_s
67
+ @documentation
62
68
  end
63
69
 
64
70
  def to_json args={}
@@ -71,7 +77,7 @@ module Solargraph
71
77
  location: (@location.nil? ? nil : @location.to_s),
72
78
  arguments: @arguments,
73
79
  return_type: return_type,
74
- documentation: documentation
80
+ documentation: @helper.html_markup_rdoc(documentation.to_s)
75
81
  }
76
82
  obj.to_json(args)
77
83
  end
@@ -1,3 +1,3 @@
1
1
  module Solargraph
2
- VERSION = '0.8.5'
2
+ VERSION = '0.8.6'
3
3
  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.8.5
4
+ version: 0.8.6
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-06-13 00:00:00.000000000 Z
11
+ date: 2017-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser