solargraph 0.36.0 → 0.37.0
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/lib/solargraph/language_server/message/completion_item/resolve.rb +4 -3
- data/lib/solargraph/language_server/message/text_document/hover.rb +2 -3
- data/lib/solargraph/page.rb +8 -4
- data/lib/solargraph/pin/conversions.rb +17 -3
- data/lib/solargraph/pin/documenting.rb +7 -4
- data/lib/solargraph/pin/method.rb +2 -4
- data/lib/solargraph/source/cursor.rb +5 -10
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/views/_name_type_tag.erb +1 -1
- data/solargraph.gemspec +2 -3
- metadata +11 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a210d97aeb15cde25f91fae2f9574295d075eb32c91cb73154142f21d250e66c
|
4
|
+
data.tar.gz: 3192c110188450543803da61d7f7de524f6b9f12ff47a9f1099487176ed0dc17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28913d0d3371eabe95d351f0c7c45b08ba5aef15a1410e60846b1c362597ea4b19250aeb3098f1ad3c4f18215c5b625a3670f3fe87983e858a2c7550c9e4c3d5
|
7
|
+
data.tar.gz: 3cba8f1a33b143e6afd8dd9858301d61e86d167b1786eeeb301708cbd8cce13f9d57af7dbc394e0d6da1245094bf26e058c412c57ad30d9b53f9b77b333c065b
|
@@ -42,11 +42,12 @@ module Solargraph
|
|
42
42
|
result = []
|
43
43
|
last_link = nil
|
44
44
|
pins.each_with_index do |pin|
|
45
|
-
|
46
|
-
|
45
|
+
this_link = host.options['enablePages'] ? pin.link_documentation : pin.text_documentation
|
46
|
+
if this_link && this_link != last_link && this_link != 'undefined'
|
47
|
+
result.push this_link
|
47
48
|
end
|
48
49
|
result.push pin.documentation
|
49
|
-
last_link =
|
50
|
+
last_link = this_link
|
50
51
|
end
|
51
52
|
result.join("\n\n")
|
52
53
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'uri'
|
4
|
-
require 'htmlentities'
|
5
4
|
|
6
5
|
module Solargraph
|
7
6
|
module LanguageServer
|
@@ -16,11 +15,11 @@ module Solargraph
|
|
16
15
|
last_link = nil
|
17
16
|
suggestions.each do |pin|
|
18
17
|
parts = []
|
19
|
-
this_link = pin.link_documentation
|
18
|
+
this_link = host.options['enablePages'] ? pin.link_documentation : pin.text_documentation
|
20
19
|
if !this_link.nil? && this_link != last_link
|
21
20
|
parts.push this_link
|
22
21
|
end
|
23
|
-
parts.push
|
22
|
+
parts.push pin.detail unless pin.is_a?(Pin::Namespace) || pin.detail.nil?
|
24
23
|
parts.push pin.documentation unless pin.documentation.nil? or pin.documentation.empty?
|
25
24
|
contents.push parts.join("\n\n") unless parts.empty?
|
26
25
|
last_link = this_link unless this_link.nil?
|
data/lib/solargraph/page.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'ostruct'
|
4
4
|
require 'tilt'
|
5
|
-
require '
|
5
|
+
require 'yard'
|
6
6
|
require 'htmlentities'
|
7
7
|
require 'cgi'
|
8
8
|
|
@@ -24,9 +24,13 @@ module Solargraph
|
|
24
24
|
# @param text [String]
|
25
25
|
# @return [String]
|
26
26
|
def htmlify text
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
YARD::Templates::Helpers::Markup::RDocMarkup.new(text).to_html
|
28
|
+
end
|
29
|
+
|
30
|
+
# @param text [String]
|
31
|
+
# @return [String]
|
32
|
+
def escape text
|
33
|
+
HTMLEntities.new.encode(text)
|
30
34
|
end
|
31
35
|
|
32
36
|
# @param code [String]
|
@@ -47,7 +47,7 @@ module Solargraph
|
|
47
47
|
# change when pins get proxied.
|
48
48
|
detail = String.new
|
49
49
|
detail += "(#{parameters.join(', ')}) " unless !is_a?(Pin::BaseMethod) or parameters.empty?
|
50
|
-
detail += "=#{probed? ? '~' : (proxied? ? '^' : '>')} #{return_type}" unless return_type.undefined?
|
50
|
+
detail += "=#{probed? ? '~' : (proxied? ? '^' : '>')} #{escape_brackets(return_type.to_s)}" unless return_type.undefined?
|
51
51
|
detail.strip!
|
52
52
|
return nil if detail.empty?
|
53
53
|
detail
|
@@ -60,6 +60,12 @@ module Solargraph
|
|
60
60
|
@link_documentation ||= generate_link
|
61
61
|
end
|
62
62
|
|
63
|
+
def text_documentation
|
64
|
+
this_path = path || return_type.tag
|
65
|
+
return nil if this_path == 'undefined'
|
66
|
+
escape_brackets this_path
|
67
|
+
end
|
68
|
+
|
63
69
|
def reset_conversions
|
64
70
|
@completion_item = nil
|
65
71
|
@resolve_completion_item = nil
|
@@ -70,11 +76,19 @@ module Solargraph
|
|
70
76
|
|
71
77
|
private
|
72
78
|
|
79
|
+
# @return [String]
|
73
80
|
def generate_link
|
74
81
|
this_path = path || return_type.tag
|
82
|
+
return nil if this_path == 'undefined'
|
75
83
|
return nil if this_path.nil? || this_path == 'undefined'
|
76
|
-
#
|
77
|
-
|
84
|
+
"[#{escape_brackets(this_path).gsub('_', '\\\\_')}](solargraph:/document?query=#{URI.escape(this_path)})"
|
85
|
+
end
|
86
|
+
|
87
|
+
# @param text [String]
|
88
|
+
# @return [String]
|
89
|
+
def escape_brackets text
|
90
|
+
# text.gsub(/(\<|\>)/, "\\#{$1}")
|
91
|
+
text.gsub("<", "\\<").gsub(">", "\\>")
|
78
92
|
end
|
79
93
|
end
|
80
94
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'rdoc'
|
4
4
|
require 'reverse_markdown'
|
5
|
-
require '
|
5
|
+
require 'yard'
|
6
6
|
|
7
7
|
module Solargraph
|
8
8
|
module Pin
|
@@ -12,8 +12,11 @@ module Solargraph
|
|
12
12
|
# @return [String]
|
13
13
|
def documentation
|
14
14
|
@documentation ||= begin
|
15
|
-
|
16
|
-
|
15
|
+
text = normalize_indentation(docstring.to_s)
|
16
|
+
markup = YARD::Templates::Helpers::Markup::RDocMarkup.new(text)
|
17
|
+
html = markup.to_html
|
18
|
+
ReverseMarkdown.convert(html, github_flavored: true)
|
19
|
+
.lines.map(&:rstrip).join("\n")
|
17
20
|
end
|
18
21
|
end
|
19
22
|
|
@@ -22,7 +25,7 @@ module Solargraph
|
|
22
25
|
# @param text [String]
|
23
26
|
# @return [String]
|
24
27
|
def normalize_indentation text
|
25
|
-
text.lines.map { |l| remove_odd_spaces(l)
|
28
|
+
text.lines.map { |l| remove_odd_spaces(l) }.join
|
26
29
|
end
|
27
30
|
|
28
31
|
# @param line [String]
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'htmlentities'
|
4
|
-
|
5
3
|
module Solargraph
|
6
4
|
module Pin
|
7
5
|
class Method < BaseMethod
|
@@ -44,7 +42,7 @@ module Solargraph
|
|
44
42
|
lines = []
|
45
43
|
param_tags.each do |p|
|
46
44
|
l = "* #{p.name}"
|
47
|
-
l += " [#{p.types.
|
45
|
+
l += " [#{escape_brackets(p.types.join(', '))}]" unless p.types.nil? or p.types.empty?
|
48
46
|
l += " #{p.text}"
|
49
47
|
lines.push l
|
50
48
|
end
|
@@ -78,7 +76,7 @@ module Solargraph
|
|
78
76
|
name: name,
|
79
77
|
closure: closure,
|
80
78
|
args: tag.parameters.map(&:first),
|
81
|
-
comments: tag.
|
79
|
+
comments: tag.docstring.all
|
82
80
|
)
|
83
81
|
end
|
84
82
|
end
|
@@ -109,21 +109,16 @@ module Solargraph
|
|
109
109
|
# @return [Cursor, nil]
|
110
110
|
def recipient
|
111
111
|
@recipient ||= begin
|
112
|
-
result = nil
|
113
112
|
node = recipient_node
|
114
|
-
|
115
|
-
result = if node.children[1].is_a?(AST::Node)
|
116
|
-
pos = Range.from_node(node.children[1]).start
|
117
|
-
Cursor.new(source, Position.new(pos.line, pos.column - 1))
|
118
|
-
else
|
119
|
-
Cursor.new(source, Range.from_node(node).ending)
|
120
|
-
end
|
121
|
-
end
|
122
|
-
result
|
113
|
+
node ? Cursor.new(source, Range.from_node(node).ending) : nil
|
123
114
|
end
|
124
115
|
end
|
125
116
|
alias receiver recipient
|
126
117
|
|
118
|
+
def node
|
119
|
+
@node ||= source.node_at(position.line, position.column)
|
120
|
+
end
|
121
|
+
|
127
122
|
# @return [Position]
|
128
123
|
def node_position
|
129
124
|
@node_position ||= begin
|
data/lib/solargraph/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= tag.name %>
|
2
2
|
<% unless tag.types.nil? or tag.types.empty? %>
|
3
|
-
[<%= tag.types.join(', ') %>]
|
3
|
+
[<%= escape(tag.types.join(', ')) %>]
|
4
4
|
<% end %>
|
5
5
|
<% unless tag.text.empty? %>
|
6
6
|
<% unless (tag.name.nil? or tag.name.empty?) and (tag.types.nil? or tag.types.empty?) %>
|
data/solargraph.gemspec
CHANGED
@@ -23,8 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_runtime_dependency 'bundler', '>= 1.17.2'
|
24
24
|
s.add_runtime_dependency 'htmlentities', '~> 4.3', '>= 4.3.4'
|
25
25
|
s.add_runtime_dependency 'jaro_winkler', '~> 1.5'
|
26
|
-
s.add_runtime_dependency '
|
27
|
-
s.add_runtime_dependency 'nokogiri', '>= 1.9.1'
|
26
|
+
s.add_runtime_dependency 'nokogiri', '~> 1.9', '>= 1.9.1'
|
28
27
|
s.add_runtime_dependency 'parser', '~> 2.3'
|
29
28
|
s.add_runtime_dependency 'reverse_markdown', '~> 1.0', '>= 1.0.5'
|
30
29
|
s.add_runtime_dependency 'rubocop', '~> 0.52'
|
@@ -35,5 +34,5 @@ Gem::Specification.new do |s|
|
|
35
34
|
s.add_development_dependency 'pry', '~> 0.11.3'
|
36
35
|
s.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
|
37
36
|
s.add_development_dependency 'simplecov', '~> 0.14'
|
38
|
-
s.add_development_dependency 'webmock'
|
37
|
+
s.add_development_dependency 'webmock', '~> 3.6'
|
39
38
|
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.
|
4
|
+
version: 0.37.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Snyder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backport
|
@@ -73,23 +73,12 @@ dependencies:
|
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '1.5'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
76
|
+
name: nokogiri
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
82
|
-
type: :runtime
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - "~>"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '0.7'
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: nokogiri
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
81
|
+
version: '1.9'
|
93
82
|
- - ">="
|
94
83
|
- !ruby/object:Gem::Version
|
95
84
|
version: 1.9.1
|
@@ -97,6 +86,9 @@ dependencies:
|
|
97
86
|
prerelease: false
|
98
87
|
version_requirements: !ruby/object:Gem::Requirement
|
99
88
|
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '1.9'
|
100
92
|
- - ">="
|
101
93
|
- !ruby/object:Gem::Version
|
102
94
|
version: 1.9.1
|
@@ -248,16 +240,16 @@ dependencies:
|
|
248
240
|
name: webmock
|
249
241
|
requirement: !ruby/object:Gem::Requirement
|
250
242
|
requirements:
|
251
|
-
- - "
|
243
|
+
- - "~>"
|
252
244
|
- !ruby/object:Gem::Version
|
253
|
-
version: '
|
245
|
+
version: '3.6'
|
254
246
|
type: :development
|
255
247
|
prerelease: false
|
256
248
|
version_requirements: !ruby/object:Gem::Requirement
|
257
249
|
requirements:
|
258
|
-
- - "
|
250
|
+
- - "~>"
|
259
251
|
- !ruby/object:Gem::Version
|
260
|
-
version: '
|
252
|
+
version: '3.6'
|
261
253
|
description: IDE tools for code completion, inline documentation, and static analysis
|
262
254
|
email: admin@castwide.com
|
263
255
|
executables:
|