solargraph 0.38.1 → 0.38.2
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/.travis.yml +6 -2
- data/lib/solargraph.rb +12 -0
- data/lib/solargraph/api_map.rb +5 -5
- data/lib/solargraph/convention/base.rb +2 -0
- data/lib/solargraph/core_fills.rb +18 -6
- data/lib/solargraph/documentor.rb +1 -1
- data/lib/solargraph/language_server/host.rb +2 -1
- data/lib/solargraph/language_server/message.rb +0 -1
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +0 -1
- data/lib/solargraph/language_server/message/text_document/definition.rb +0 -2
- data/lib/solargraph/language_server/message/text_document/hover.rb +1 -3
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +0 -2
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +0 -2
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +0 -2
- data/lib/solargraph/language_server/uri_helpers.rb +2 -0
- data/lib/solargraph/pin/base_method.rb +22 -0
- data/lib/solargraph/pin/conversions.rb +3 -1
- data/lib/solargraph/pin/method.rb +0 -20
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/views/_method.erb +1 -1
- data/lib/solargraph/views/_namespace.erb +2 -2
- data/lib/solargraph/yard_map.rb +11 -1
- data/solargraph.gemspec +2 -3
- data/yardoc/2.2.2.tar.gz +0 -0
- metadata +30 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 389f64ff08e6e1eda0eb13d13e7ff3a8c41650436b02d693995b15dbc3d955c7
|
4
|
+
data.tar.gz: eaffccfef362bbb580ea5c57a3bc99d0fb576ec422b11963e8b7490ea035a578
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d9779fe5645a9ad1d6375795875219405cc637de5fcd28c51c11ead54838ce4a5a22f49993d91d0649a6153b045eacb97f079f44ffaa888a33513c8de639573
|
7
|
+
data.tar.gz: 53dfdef740ad7d4a5fc5c80798f7cca2116b7ae5960878357e1a0516f4cc4783f3ed521a2ba86959d044e1588b2492b3f3751d7812454b37c8d6597e51bc266b
|
data/.travis.yml
CHANGED
@@ -10,12 +10,16 @@ rvm:
|
|
10
10
|
- jruby-head
|
11
11
|
matrix:
|
12
12
|
include:
|
13
|
-
- rvm: 2.
|
13
|
+
- rvm: 2.4
|
14
14
|
os: osx
|
15
15
|
- rvm: 2.6
|
16
16
|
os: osx
|
17
|
+
- rvm: 2.7
|
18
|
+
os: osx
|
17
19
|
allow_failures:
|
18
|
-
- rvm:
|
20
|
+
- rvm: 2.7
|
21
|
+
os: osx
|
22
|
+
|
19
23
|
# Update RubyGems and Bundler due to error with Bundler 1.16.1 and RubyGems 2.7.3
|
20
24
|
# See https://github.com/travis-ci/travis-ci/issues/8978
|
21
25
|
before_install:
|
data/lib/solargraph.rb
CHANGED
@@ -51,4 +51,16 @@ module Solargraph
|
|
51
51
|
def self.logger
|
52
52
|
Solargraph::Logging.logger
|
53
53
|
end
|
54
|
+
|
55
|
+
# A helper method that runs Bundler.with_unbundled_env or falls back to
|
56
|
+
# Bundler.with_clean env for earlier versions of Bundler.
|
57
|
+
#
|
58
|
+
def self.with_clean_env &block
|
59
|
+
meth = if Bundler.respond_to?(:with_unbundled_env)
|
60
|
+
:with_unbundled_env
|
61
|
+
else
|
62
|
+
:with_clean_env
|
63
|
+
end
|
64
|
+
Bundler.send meth, &block
|
65
|
+
end
|
54
66
|
end
|
data/lib/solargraph/api_map.rb
CHANGED
@@ -603,14 +603,14 @@ module Solargraph
|
|
603
603
|
# @param skip [Array<String>]
|
604
604
|
# @return [Array<Pin::Base>]
|
605
605
|
def inner_get_constants fqns, visibility, skip
|
606
|
-
return [] if skip.include?(fqns)
|
606
|
+
return [] if fqns.nil? || skip.include?(fqns)
|
607
607
|
skip.push fqns
|
608
|
-
result =
|
609
|
-
|
608
|
+
result = store.get_constants(fqns, visibility)
|
609
|
+
.sort { |a, b| a.name <=> b.name }
|
610
610
|
store.get_includes(fqns).each do |is|
|
611
|
-
|
612
|
-
result.concat inner_get_constants(fqis, [:public], skip) unless fqis.nil?
|
611
|
+
result.concat inner_get_constants(qualify(is, fqns), [:public], skip)
|
613
612
|
end
|
613
|
+
result.concat inner_get_constants(store.get_superclass(fqns), [:public], skip)
|
614
614
|
result
|
615
615
|
end
|
616
616
|
|
@@ -90,6 +90,7 @@ module Solargraph
|
|
90
90
|
Override.method_return('Object#clone', 'self', delete: [:overload]),
|
91
91
|
Override.method_return('Object#dup', 'self'),
|
92
92
|
Override.method_return('Object#freeze', 'self', delete: [:overload]),
|
93
|
+
Override.method_return('Object#inspect', 'String'),
|
93
94
|
Override.method_return('Object#taint', 'self'),
|
94
95
|
Override.method_return('Object#to_s', 'String'),
|
95
96
|
Override.method_return('Object#untaint', 'self'),
|
@@ -98,16 +99,27 @@ module Solargraph
|
|
98
99
|
@yieldparam [self]
|
99
100
|
)),
|
100
101
|
|
102
|
+
Override.from_comment('STDERR', %(
|
103
|
+
@type [IO]
|
104
|
+
)),
|
105
|
+
|
106
|
+
Override.from_comment('STDIN', %(
|
107
|
+
@type [IO]
|
108
|
+
)),
|
109
|
+
|
110
|
+
Override.from_comment('STDOUT', %(
|
111
|
+
@type [IO]
|
112
|
+
)),
|
113
|
+
|
101
114
|
Override.method_return('String#freeze', 'self'),
|
102
115
|
Override.method_return('String#split', 'Array<String>'),
|
103
116
|
Override.method_return('String#lines', 'Array<String>')
|
104
|
-
|
105
|
-
|
106
|
-
|
117
|
+
].concat(
|
118
|
+
methods_with_yieldparam_subtypes.map do |path|
|
119
|
+
Override.from_comment(path, %(
|
107
120
|
@yieldparam_single_parameter
|
108
121
|
))
|
109
|
-
|
110
|
-
|
122
|
+
end
|
123
|
+
)
|
111
124
|
end
|
112
125
|
end
|
113
|
-
|
@@ -473,7 +473,8 @@ module Solargraph
|
|
473
473
|
if params['data']['path']
|
474
474
|
result.concat library.path_pins(params['data']['path'])
|
475
475
|
end
|
476
|
-
result
|
476
|
+
# Selecting by both location and path can result in duplicate pins
|
477
|
+
result.uniq { |p| [p.path, p.location] }
|
477
478
|
end
|
478
479
|
|
479
480
|
# @param uri [String]
|
@@ -20,7 +20,6 @@ module Solargraph
|
|
20
20
|
return params if pins.empty?
|
21
21
|
docs = pins
|
22
22
|
.reject { |pin| pin.documentation.empty? && pin.return_type.undefined? }
|
23
|
-
# docs = filt.map { |pin| pin.resolve_completion_item[:documentation] }
|
24
23
|
result = params
|
25
24
|
.merge(pins.first.resolve_completion_item)
|
26
25
|
.merge(documentation: markup_content(join_docs(docs)))
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'uri'
|
4
|
-
|
5
3
|
module Solargraph
|
6
4
|
module LanguageServer
|
7
5
|
module Message
|
@@ -20,7 +18,7 @@ module Solargraph
|
|
20
18
|
parts.push this_link
|
21
19
|
end
|
22
20
|
parts.push pin.detail.gsub(':', '\\:') unless pin.is_a?(Pin::Namespace) || pin.detail.nil?
|
23
|
-
parts.push pin.documentation unless pin.documentation.nil?
|
21
|
+
parts.push pin.documentation unless pin.documentation.nil? || pin.documentation.empty?
|
24
22
|
contents.push parts.join("\n\n") unless parts.empty?
|
25
23
|
last_link = this_link unless this_link.nil?
|
26
24
|
end
|
@@ -40,6 +40,28 @@ module Solargraph
|
|
40
40
|
[]
|
41
41
|
end
|
42
42
|
|
43
|
+
def documentation
|
44
|
+
if @documentation.nil?
|
45
|
+
@documentation ||= super || ''
|
46
|
+
param_tags = docstring.tags(:param)
|
47
|
+
unless param_tags.nil? or param_tags.empty?
|
48
|
+
@documentation += "\n\n" unless @documentation.empty?
|
49
|
+
@documentation += "Params:\n"
|
50
|
+
lines = []
|
51
|
+
param_tags.each do |p|
|
52
|
+
l = "* #{p.name}"
|
53
|
+
l += " [#{escape_brackets(p.types.join(', '))}]" unless p.types.nil? or p.types.empty?
|
54
|
+
l += " #{p.text}"
|
55
|
+
lines.push l
|
56
|
+
end
|
57
|
+
@documentation += lines.join("\n")
|
58
|
+
end
|
59
|
+
@documentation += "\n\n" unless @documentation.empty?
|
60
|
+
@documentation += "Visibility: #{visibility}"
|
61
|
+
end
|
62
|
+
@documentation.to_s
|
63
|
+
end
|
64
|
+
|
43
65
|
private
|
44
66
|
|
45
67
|
# @return [ComplexType]
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'cgi'
|
4
|
+
|
3
5
|
module Solargraph
|
4
6
|
module Pin
|
5
7
|
# @todo Move this stuff. It should be the responsibility of the language server.
|
@@ -81,7 +83,7 @@ module Solargraph
|
|
81
83
|
this_path = path || return_type.tag
|
82
84
|
return nil if this_path == 'undefined'
|
83
85
|
return nil if this_path.nil? || this_path == 'undefined'
|
84
|
-
"[#{escape_brackets(this_path).gsub('_', '\\\\_')}](solargraph:/document?query=#{
|
86
|
+
"[#{escape_brackets(this_path).gsub('_', '\\\\_')}](solargraph:/document?query=#{CGI.escape(this_path)})"
|
85
87
|
end
|
86
88
|
|
87
89
|
# @param text [String]
|
@@ -32,26 +32,6 @@ module Solargraph
|
|
32
32
|
LanguageServer::SymbolKinds::METHOD
|
33
33
|
end
|
34
34
|
|
35
|
-
def documentation
|
36
|
-
if @documentation.nil?
|
37
|
-
@documentation ||= super || ''
|
38
|
-
param_tags = docstring.tags(:param)
|
39
|
-
unless param_tags.nil? or param_tags.empty?
|
40
|
-
@documentation += "\n\n" unless @documentation.empty?
|
41
|
-
@documentation += "Params:\n"
|
42
|
-
lines = []
|
43
|
-
param_tags.each do |p|
|
44
|
-
l = "* #{p.name}"
|
45
|
-
l += " [#{escape_brackets(p.types.join(', '))}]" unless p.types.nil? or p.types.empty?
|
46
|
-
l += " #{p.text}"
|
47
|
-
lines.push l
|
48
|
-
end
|
49
|
-
@documentation += lines.join("\n")
|
50
|
-
end
|
51
|
-
end
|
52
|
-
@documentation.to_s
|
53
|
-
end
|
54
|
-
|
55
35
|
def nearly? other
|
56
36
|
return false unless super
|
57
37
|
parameters == other.parameters and
|
data/lib/solargraph/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
Namespace:
|
3
3
|
</h2>
|
4
4
|
<p>
|
5
|
-
<a href="command:solargraph._openDocument?<%=
|
5
|
+
<a href="command:solargraph._openDocument?<%= CGI.escape "\"solargraph:/document?query=#{object.namespace}\"" %>"><%= object.namespace %></a>
|
6
6
|
</p>
|
7
7
|
<h2>
|
8
8
|
Overview:
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<ul class="doc-list">
|
9
9
|
<% object.meths(scope: :class).sort{|a, b| a.name <=> b.name}.each do |meth| %>
|
10
10
|
<li>
|
11
|
-
<a href="solargraph:/document?query=<%=
|
11
|
+
<a href="solargraph:/document?query=<%= CGI.escape(meth.path) %>"><%= meth.name %></a>
|
12
12
|
</li>
|
13
13
|
<% end %>
|
14
14
|
</ul>
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<ul class="doc-list">
|
19
19
|
<% object.meths(scope: :instance).sort{|a, b| a.name <=> b.name}.each do |meth| %>
|
20
20
|
<li>
|
21
|
-
<a href="solargraph:/document?query=<%=
|
21
|
+
<a href="solargraph:/document?query=<%= CGI.escape(meth.path) %>"><%= meth.name %></a>
|
22
22
|
</li>
|
23
23
|
<% end %>
|
24
24
|
</ul>
|
data/lib/solargraph/yard_map.rb
CHANGED
@@ -30,8 +30,12 @@ module Solargraph
|
|
30
30
|
# @return [Array<String>]
|
31
31
|
attr_reader :required
|
32
32
|
|
33
|
+
# @return [Boolean]
|
33
34
|
attr_writer :with_dependencies
|
34
35
|
|
36
|
+
# A hash of gem names and the version numbers to include in the map.
|
37
|
+
#
|
38
|
+
# @return [Hash{String => String}]
|
35
39
|
attr_reader :gemset
|
36
40
|
|
37
41
|
# @param required [Array<String>]
|
@@ -59,6 +63,7 @@ module Solargraph
|
|
59
63
|
end
|
60
64
|
|
61
65
|
# @param new_requires [Array<String>]
|
66
|
+
# @param new_gemset [Hash{String => String}]
|
62
67
|
# @return [Boolean]
|
63
68
|
def change new_requires, new_gemset
|
64
69
|
if new_requires.uniq.sort == required.uniq.sort && new_gemset == gemset
|
@@ -145,7 +150,7 @@ module Solargraph
|
|
145
150
|
@cache ||= YardMap::Cache.new
|
146
151
|
end
|
147
152
|
|
148
|
-
# @param ns [YARD::CodeObjects::
|
153
|
+
# @param ns [YARD::CodeObjects::NamespaceObject]
|
149
154
|
# @return [Array<YARD::CodeObjects::Base>]
|
150
155
|
def recurse_namespace_object ns
|
151
156
|
result = []
|
@@ -256,6 +261,7 @@ module Solargraph
|
|
256
261
|
end
|
257
262
|
|
258
263
|
# @param y [String, nil]
|
264
|
+
# @param spec [Gem::Specification, nil]
|
259
265
|
# @return [Array<Pin::Base>]
|
260
266
|
def process_yardoc y, spec = nil
|
261
267
|
return [] if y.nil?
|
@@ -270,6 +276,8 @@ module Solargraph
|
|
270
276
|
Mapper.new(YARD::Registry.all, spec).map
|
271
277
|
end
|
272
278
|
|
279
|
+
# @param spec [Gem::Specification]
|
280
|
+
# @return [String]
|
273
281
|
def yardoc_file_for_spec spec
|
274
282
|
cache_dir = File.join(Solargraph::YardMap::CoreDocs.cache_dir, 'gems', "#{spec.name}-#{spec.version}", 'yardoc')
|
275
283
|
if File.exist?(cache_dir)
|
@@ -280,6 +288,8 @@ module Solargraph
|
|
280
288
|
end
|
281
289
|
end
|
282
290
|
|
291
|
+
# @param path [String]
|
292
|
+
# @return [Gem::Specification]
|
283
293
|
def spec_for_require path
|
284
294
|
spec = Gem::Specification.find_by_path(path) || Gem::Specification.find_by_name(path.split('/').first)
|
285
295
|
if @gemset[spec.name]
|
data/solargraph.gemspec
CHANGED
@@ -20,7 +20,9 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.required_ruby_version = '>= 2.1'
|
21
21
|
|
22
22
|
s.add_runtime_dependency 'backport', '~> 1.1'
|
23
|
+
s.add_runtime_dependency 'benchmark'
|
23
24
|
s.add_runtime_dependency 'bundler', '>= 1.17.2'
|
25
|
+
s.add_runtime_dependency 'e2mmap'
|
24
26
|
s.add_runtime_dependency 'jaro_winkler', '~> 1.5'
|
25
27
|
s.add_runtime_dependency 'maruku', '~> 0.7', '>= 0.7.3'
|
26
28
|
s.add_runtime_dependency 'nokogiri', '~> 1.9', '>= 1.9.1'
|
@@ -30,9 +32,6 @@ Gem::Specification.new do |s|
|
|
30
32
|
s.add_runtime_dependency 'thor', '~> 1.0'
|
31
33
|
s.add_runtime_dependency 'tilt', '~> 2.0'
|
32
34
|
s.add_runtime_dependency 'yard', '~> 0.9'
|
33
|
-
s.add_runtime_dependency 'e2mmap'
|
34
|
-
s.add_runtime_dependency 'irb', '<= 1.1.0'
|
35
|
-
s.add_runtime_dependency 'benchmark'
|
36
35
|
|
37
36
|
s.add_development_dependency 'pry', '~> 0.11.3'
|
38
37
|
s.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
|
data/yardoc/2.2.2.tar.gz
CHANGED
Binary file
|
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.38.
|
4
|
+
version: 0.38.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: 2020-01-
|
11
|
+
date: 2020-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: benchmark
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +52,20 @@ dependencies:
|
|
38
52
|
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: 1.17.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: e2mmap
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: jaro_winkler
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,48 +210,6 @@ dependencies:
|
|
182
210
|
- - "~>"
|
183
211
|
- !ruby/object:Gem::Version
|
184
212
|
version: '0.9'
|
185
|
-
- !ruby/object:Gem::Dependency
|
186
|
-
name: e2mmap
|
187
|
-
requirement: !ruby/object:Gem::Requirement
|
188
|
-
requirements:
|
189
|
-
- - ">="
|
190
|
-
- !ruby/object:Gem::Version
|
191
|
-
version: '0'
|
192
|
-
type: :runtime
|
193
|
-
prerelease: false
|
194
|
-
version_requirements: !ruby/object:Gem::Requirement
|
195
|
-
requirements:
|
196
|
-
- - ">="
|
197
|
-
- !ruby/object:Gem::Version
|
198
|
-
version: '0'
|
199
|
-
- !ruby/object:Gem::Dependency
|
200
|
-
name: irb
|
201
|
-
requirement: !ruby/object:Gem::Requirement
|
202
|
-
requirements:
|
203
|
-
- - "<="
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
version: 1.1.0
|
206
|
-
type: :runtime
|
207
|
-
prerelease: false
|
208
|
-
version_requirements: !ruby/object:Gem::Requirement
|
209
|
-
requirements:
|
210
|
-
- - "<="
|
211
|
-
- !ruby/object:Gem::Version
|
212
|
-
version: 1.1.0
|
213
|
-
- !ruby/object:Gem::Dependency
|
214
|
-
name: benchmark
|
215
|
-
requirement: !ruby/object:Gem::Requirement
|
216
|
-
requirements:
|
217
|
-
- - ">="
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
version: '0'
|
220
|
-
type: :runtime
|
221
|
-
prerelease: false
|
222
|
-
version_requirements: !ruby/object:Gem::Requirement
|
223
|
-
requirements:
|
224
|
-
- - ">="
|
225
|
-
- !ruby/object:Gem::Version
|
226
|
-
version: '0'
|
227
213
|
- !ruby/object:Gem::Dependency
|
228
214
|
name: pry
|
229
215
|
requirement: !ruby/object:Gem::Requirement
|