solargraph 0.58.2 → 0.58.3
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/.github/workflows/plugins.yml +3 -2
- data/CHANGELOG.md +3 -0
- data/lib/solargraph/bench.rb +45 -45
- data/lib/solargraph/convention/data_definition/data_assignment_node.rb +61 -61
- data/lib/solargraph/convention/gemfile.rb +15 -15
- data/lib/solargraph/convention/gemspec.rb +23 -23
- data/lib/solargraph/convention/rakefile.rb +17 -17
- data/lib/solargraph/convention.rb +78 -78
- data/lib/solargraph/converters/dd.rb +17 -17
- data/lib/solargraph/converters/dl.rb +15 -15
- data/lib/solargraph/converters/dt.rb +15 -15
- data/lib/solargraph/converters/misc.rb +1 -1
- data/lib/solargraph/diagnostics/update_errors.rb +41 -41
- data/lib/solargraph/language_server/error_codes.rb +20 -20
- data/lib/solargraph/language_server/message/base.rb +97 -97
- data/lib/solargraph/language_server/message/client/register_capability.rb +15 -15
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +60 -60
- data/lib/solargraph/language_server/message/extended/document_gems.rb +32 -32
- data/lib/solargraph/language_server/message/extended/download_core.rb +19 -19
- data/lib/solargraph/language_server/message/extended/search.rb +20 -20
- data/lib/solargraph/language_server/message/initialize.rb +191 -191
- data/lib/solargraph/language_server/message/text_document/document_highlight.rb +16 -16
- data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +11 -11
- data/lib/solargraph/language_server/message/text_document/references.rb +16 -16
- data/lib/solargraph/language_server/message/text_document/rename.rb +19 -19
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +35 -35
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +40 -40
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +26 -26
- data/lib/solargraph/language_server/message.rb +94 -94
- data/lib/solargraph/language_server/request.rb +27 -27
- data/lib/solargraph/language_server/transport/data_reader.rb +74 -74
- data/lib/solargraph/language_server/uri_helpers.rb +49 -49
- data/lib/solargraph/page.rb +92 -92
- data/lib/solargraph/parser/parser_gem/flawed_builder.rb +19 -19
- data/lib/solargraph/parser/parser_gem/node_processors/defs_node.rb +37 -37
- data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +29 -29
- data/lib/solargraph/parser/parser_gem.rb +12 -12
- data/lib/solargraph/parser.rb +23 -23
- data/lib/solargraph/pin/constant.rb +45 -45
- data/lib/solargraph/rbs_map/core_fills.rb +84 -84
- data/lib/solargraph/server_methods.rb +16 -16
- data/lib/solargraph/shell.rb +14 -3
- data/lib/solargraph/source/chain/array.rb +37 -37
- data/lib/solargraph/source/chain/class_variable.rb +13 -13
- data/lib/solargraph/source/chain/global_variable.rb +13 -13
- data/lib/solargraph/source/chain/link.rb +109 -109
- data/lib/solargraph/source/chain/q_call.rb +11 -11
- data/lib/solargraph/source/chain/variable.rb +13 -13
- data/lib/solargraph/source/chain/z_super.rb +30 -30
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/yard_tags.rb +20 -20
- metadata +2 -2
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Diagnostics
|
|
5
|
-
class UpdateErrors < Base
|
|
6
|
-
def diagnose source, api_map
|
|
7
|
-
result = []
|
|
8
|
-
combine_ranges(source.code, source.error_ranges).each do |range|
|
|
9
|
-
result.push(
|
|
10
|
-
range: range.to_hash,
|
|
11
|
-
severity: Diagnostics::Severities::ERROR,
|
|
12
|
-
source: 'Solargraph',
|
|
13
|
-
message: 'Syntax error'
|
|
14
|
-
)
|
|
15
|
-
end
|
|
16
|
-
result
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
# Combine an array of ranges by their starting lines.
|
|
22
|
-
#
|
|
23
|
-
# @param code [String]
|
|
24
|
-
# @param ranges [Array<Range>]
|
|
25
|
-
# @return [Array<Range>]
|
|
26
|
-
def combine_ranges code, ranges
|
|
27
|
-
result = []
|
|
28
|
-
lines = []
|
|
29
|
-
ranges.sort{|a, b| a.start.line <=> b.start.line}.each do |rng|
|
|
30
|
-
next if rng.nil? || lines.include?(rng.start.line)
|
|
31
|
-
lines.push rng.start.line
|
|
32
|
-
next if rng.start.line >= code.lines.length
|
|
33
|
-
scol = code.lines[rng.start.line].index(/[^\s]/) || 0
|
|
34
|
-
ecol = code.lines[rng.start.line].length
|
|
35
|
-
result.push Range.from_to(rng.start.line, scol, rng.start.line, ecol)
|
|
36
|
-
end
|
|
37
|
-
result
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Diagnostics
|
|
5
|
+
class UpdateErrors < Base
|
|
6
|
+
def diagnose source, api_map
|
|
7
|
+
result = []
|
|
8
|
+
combine_ranges(source.code, source.error_ranges).each do |range|
|
|
9
|
+
result.push(
|
|
10
|
+
range: range.to_hash,
|
|
11
|
+
severity: Diagnostics::Severities::ERROR,
|
|
12
|
+
source: 'Solargraph',
|
|
13
|
+
message: 'Syntax error'
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
result
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
# Combine an array of ranges by their starting lines.
|
|
22
|
+
#
|
|
23
|
+
# @param code [String]
|
|
24
|
+
# @param ranges [Array<Range>]
|
|
25
|
+
# @return [Array<Range>]
|
|
26
|
+
def combine_ranges code, ranges
|
|
27
|
+
result = []
|
|
28
|
+
lines = []
|
|
29
|
+
ranges.sort{|a, b| a.start.line <=> b.start.line}.each do |rng|
|
|
30
|
+
next if rng.nil? || lines.include?(rng.start.line)
|
|
31
|
+
lines.push rng.start.line
|
|
32
|
+
next if rng.start.line >= code.lines.length
|
|
33
|
+
scol = code.lines[rng.start.line].index(/[^\s]/) || 0
|
|
34
|
+
ecol = code.lines[rng.start.line].length
|
|
35
|
+
result.push Range.from_to(rng.start.line, scol, rng.start.line, ecol)
|
|
36
|
+
end
|
|
37
|
+
result
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module LanguageServer
|
|
5
|
-
# The ErrorCode constants for the language server protocol.
|
|
6
|
-
#
|
|
7
|
-
module ErrorCodes
|
|
8
|
-
PARSE_ERROR = -32700
|
|
9
|
-
INVALID_REQUEST = -32600
|
|
10
|
-
METHOD_NOT_FOUND = -32601
|
|
11
|
-
INVALID_PARAMS = -32602
|
|
12
|
-
INTERNAL_ERROR = -32603
|
|
13
|
-
SERVER_ERROR_START = -32099
|
|
14
|
-
SERVER_ERROR_END = -32000
|
|
15
|
-
SERVER_NOT_INITIALIZED = -32002
|
|
16
|
-
UNKNOWN_ERROR_CODE = -32001
|
|
17
|
-
REQUEST_CANCELLED = -32800
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module LanguageServer
|
|
5
|
+
# The ErrorCode constants for the language server protocol.
|
|
6
|
+
#
|
|
7
|
+
module ErrorCodes
|
|
8
|
+
PARSE_ERROR = -32700
|
|
9
|
+
INVALID_REQUEST = -32600
|
|
10
|
+
METHOD_NOT_FOUND = -32601
|
|
11
|
+
INVALID_PARAMS = -32602
|
|
12
|
+
INTERNAL_ERROR = -32603
|
|
13
|
+
SERVER_ERROR_START = -32099
|
|
14
|
+
SERVER_ERROR_END = -32000
|
|
15
|
+
SERVER_NOT_INITIALIZED = -32002
|
|
16
|
+
UNKNOWN_ERROR_CODE = -32001
|
|
17
|
+
REQUEST_CANCELLED = -32800
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module LanguageServer
|
|
5
|
-
module Message
|
|
6
|
-
class Base
|
|
7
|
-
# @return [Solargraph::LanguageServer::Host]
|
|
8
|
-
attr_reader :host
|
|
9
|
-
|
|
10
|
-
# @return [Integer]
|
|
11
|
-
attr_reader :id
|
|
12
|
-
|
|
13
|
-
# @return [Hash]
|
|
14
|
-
attr_reader :request
|
|
15
|
-
|
|
16
|
-
# @return [String]
|
|
17
|
-
attr_reader :method
|
|
18
|
-
|
|
19
|
-
# @return [Hash{String => undefined}]
|
|
20
|
-
attr_reader :params
|
|
21
|
-
|
|
22
|
-
# @return [Hash, Array, nil]
|
|
23
|
-
attr_reader :result
|
|
24
|
-
|
|
25
|
-
# @return [Hash, nil]
|
|
26
|
-
attr_reader :error
|
|
27
|
-
|
|
28
|
-
# @param host [Solargraph::LanguageServer::Host]
|
|
29
|
-
# @param request [Hash]
|
|
30
|
-
def initialize host, request
|
|
31
|
-
@host = host
|
|
32
|
-
@id = request['id'].freeze
|
|
33
|
-
@request = request.freeze
|
|
34
|
-
@method = request['method'].freeze
|
|
35
|
-
@params = (request['params'] || {}).freeze
|
|
36
|
-
post_initialize
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# @return [void]
|
|
40
|
-
def post_initialize; end
|
|
41
|
-
|
|
42
|
-
# @return [void]
|
|
43
|
-
def process; end
|
|
44
|
-
|
|
45
|
-
# @param data [Hash, Array, nil]
|
|
46
|
-
# @return [void]
|
|
47
|
-
def set_result data
|
|
48
|
-
@result = data
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# @param code [Integer] See Solargraph::LanguageServer::ErrorCodes
|
|
52
|
-
# @param message [String]
|
|
53
|
-
# @return [void]
|
|
54
|
-
def set_error code, message
|
|
55
|
-
@error = {
|
|
56
|
-
code: code,
|
|
57
|
-
message: message
|
|
58
|
-
}
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
# @return [void]
|
|
62
|
-
def send_response
|
|
63
|
-
return if id.nil?
|
|
64
|
-
|
|
65
|
-
accept_or_cancel
|
|
66
|
-
response = {
|
|
67
|
-
jsonrpc: '2.0',
|
|
68
|
-
id: id
|
|
69
|
-
}
|
|
70
|
-
response[:result] = result unless result.nil?
|
|
71
|
-
response[:error] = error unless error.nil?
|
|
72
|
-
response[:result] = nil if result.nil? and error.nil?
|
|
73
|
-
json = response.to_json
|
|
74
|
-
envelope = "Content-Length: #{json.bytesize}\r\n\r\n#{json}"
|
|
75
|
-
Solargraph.logger.debug envelope
|
|
76
|
-
host.queue envelope
|
|
77
|
-
host.clear id
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
private
|
|
81
|
-
|
|
82
|
-
# @return [void]
|
|
83
|
-
def accept_or_cancel
|
|
84
|
-
if host.cancel?(id)
|
|
85
|
-
# https://microsoft.github.io/language-server-protocol/specifications/specification-current/#cancelRequest
|
|
86
|
-
# cancel should send response RequestCancelled
|
|
87
|
-
Solargraph::Logging.logger.info "Cancelled response to ##{id} #{method}"
|
|
88
|
-
set_result nil
|
|
89
|
-
set_error ErrorCodes::REQUEST_CANCELLED, 'Cancelled by client'
|
|
90
|
-
else
|
|
91
|
-
Solargraph::Logging.logger.info "Sending response to ##{id} #{method}"
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module LanguageServer
|
|
5
|
+
module Message
|
|
6
|
+
class Base
|
|
7
|
+
# @return [Solargraph::LanguageServer::Host]
|
|
8
|
+
attr_reader :host
|
|
9
|
+
|
|
10
|
+
# @return [Integer]
|
|
11
|
+
attr_reader :id
|
|
12
|
+
|
|
13
|
+
# @return [Hash]
|
|
14
|
+
attr_reader :request
|
|
15
|
+
|
|
16
|
+
# @return [String]
|
|
17
|
+
attr_reader :method
|
|
18
|
+
|
|
19
|
+
# @return [Hash{String => undefined}]
|
|
20
|
+
attr_reader :params
|
|
21
|
+
|
|
22
|
+
# @return [Hash, Array, nil]
|
|
23
|
+
attr_reader :result
|
|
24
|
+
|
|
25
|
+
# @return [Hash, nil]
|
|
26
|
+
attr_reader :error
|
|
27
|
+
|
|
28
|
+
# @param host [Solargraph::LanguageServer::Host]
|
|
29
|
+
# @param request [Hash]
|
|
30
|
+
def initialize host, request
|
|
31
|
+
@host = host
|
|
32
|
+
@id = request['id'].freeze
|
|
33
|
+
@request = request.freeze
|
|
34
|
+
@method = request['method'].freeze
|
|
35
|
+
@params = (request['params'] || {}).freeze
|
|
36
|
+
post_initialize
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @return [void]
|
|
40
|
+
def post_initialize; end
|
|
41
|
+
|
|
42
|
+
# @return [void]
|
|
43
|
+
def process; end
|
|
44
|
+
|
|
45
|
+
# @param data [Hash, Array, nil]
|
|
46
|
+
# @return [void]
|
|
47
|
+
def set_result data
|
|
48
|
+
@result = data
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# @param code [Integer] See Solargraph::LanguageServer::ErrorCodes
|
|
52
|
+
# @param message [String]
|
|
53
|
+
# @return [void]
|
|
54
|
+
def set_error code, message
|
|
55
|
+
@error = {
|
|
56
|
+
code: code,
|
|
57
|
+
message: message
|
|
58
|
+
}
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# @return [void]
|
|
62
|
+
def send_response
|
|
63
|
+
return if id.nil?
|
|
64
|
+
|
|
65
|
+
accept_or_cancel
|
|
66
|
+
response = {
|
|
67
|
+
jsonrpc: '2.0',
|
|
68
|
+
id: id
|
|
69
|
+
}
|
|
70
|
+
response[:result] = result unless result.nil?
|
|
71
|
+
response[:error] = error unless error.nil?
|
|
72
|
+
response[:result] = nil if result.nil? and error.nil?
|
|
73
|
+
json = response.to_json
|
|
74
|
+
envelope = "Content-Length: #{json.bytesize}\r\n\r\n#{json}"
|
|
75
|
+
Solargraph.logger.debug envelope
|
|
76
|
+
host.queue envelope
|
|
77
|
+
host.clear id
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
private
|
|
81
|
+
|
|
82
|
+
# @return [void]
|
|
83
|
+
def accept_or_cancel
|
|
84
|
+
if host.cancel?(id)
|
|
85
|
+
# https://microsoft.github.io/language-server-protocol/specifications/specification-current/#cancelRequest
|
|
86
|
+
# cancel should send response RequestCancelled
|
|
87
|
+
Solargraph::Logging.logger.info "Cancelled response to ##{id} #{method}"
|
|
88
|
+
set_result nil
|
|
89
|
+
set_error ErrorCodes::REQUEST_CANCELLED, 'Cancelled by client'
|
|
90
|
+
else
|
|
91
|
+
Solargraph::Logging.logger.info "Sending response to ##{id} #{method}"
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module LanguageServer
|
|
5
|
-
module Message
|
|
6
|
-
module Client
|
|
7
|
-
class RegisterCapability < Solargraph::LanguageServer::Message::Base
|
|
8
|
-
def process
|
|
9
|
-
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module LanguageServer
|
|
5
|
+
module Message
|
|
6
|
+
module Client
|
|
7
|
+
class RegisterCapability < Solargraph::LanguageServer::Message::Base
|
|
8
|
+
def process
|
|
9
|
+
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module LanguageServer
|
|
5
|
-
module Message
|
|
6
|
-
module CompletionItem
|
|
7
|
-
# completionItem/resolve message handler
|
|
8
|
-
#
|
|
9
|
-
class Resolve < Base
|
|
10
|
-
def process
|
|
11
|
-
pins = host.locate_pins(params)
|
|
12
|
-
set_result merge(pins)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
# @param pins [Array<Pin::Base>]
|
|
18
|
-
# @return [Hash]
|
|
19
|
-
def merge pins
|
|
20
|
-
return params if pins.empty?
|
|
21
|
-
docs = pins
|
|
22
|
-
.reject { |pin| pin.documentation.empty? && pin.return_type.undefined? }
|
|
23
|
-
result = params
|
|
24
|
-
.transform_keys(&:to_sym)
|
|
25
|
-
.merge(pins.first.resolve_completion_item)
|
|
26
|
-
.merge(documentation: markup_content(join_docs(docs)))
|
|
27
|
-
result[:detail] = pins.first.detail
|
|
28
|
-
result
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
# @param text [String]
|
|
32
|
-
# @return [Hash{Symbol => String}, nil]
|
|
33
|
-
def markup_content text
|
|
34
|
-
return nil if text.strip.empty?
|
|
35
|
-
{
|
|
36
|
-
kind: 'markdown',
|
|
37
|
-
value: text
|
|
38
|
-
}
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
# @param pins [Array<Pin::Base>]
|
|
42
|
-
# @return [String]
|
|
43
|
-
def join_docs pins
|
|
44
|
-
result = []
|
|
45
|
-
last_link = nil
|
|
46
|
-
pins.each_with_index do |pin|
|
|
47
|
-
this_link = host.options['enablePages'] ? pin.link_documentation : pin.text_documentation
|
|
48
|
-
if this_link && this_link != last_link && this_link != 'undefined'
|
|
49
|
-
result.push this_link
|
|
50
|
-
end
|
|
51
|
-
result.push pin.documentation unless result.last && result.last.end_with?(pin.documentation)
|
|
52
|
-
last_link = this_link
|
|
53
|
-
end
|
|
54
|
-
result.join("\n\n")
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module LanguageServer
|
|
5
|
+
module Message
|
|
6
|
+
module CompletionItem
|
|
7
|
+
# completionItem/resolve message handler
|
|
8
|
+
#
|
|
9
|
+
class Resolve < Base
|
|
10
|
+
def process
|
|
11
|
+
pins = host.locate_pins(params)
|
|
12
|
+
set_result merge(pins)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
# @param pins [Array<Pin::Base>]
|
|
18
|
+
# @return [Hash]
|
|
19
|
+
def merge pins
|
|
20
|
+
return params if pins.empty?
|
|
21
|
+
docs = pins
|
|
22
|
+
.reject { |pin| pin.documentation.empty? && pin.return_type.undefined? }
|
|
23
|
+
result = params
|
|
24
|
+
.transform_keys(&:to_sym)
|
|
25
|
+
.merge(pins.first.resolve_completion_item)
|
|
26
|
+
.merge(documentation: markup_content(join_docs(docs)))
|
|
27
|
+
result[:detail] = pins.first.detail
|
|
28
|
+
result
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @param text [String]
|
|
32
|
+
# @return [Hash{Symbol => String}, nil]
|
|
33
|
+
def markup_content text
|
|
34
|
+
return nil if text.strip.empty?
|
|
35
|
+
{
|
|
36
|
+
kind: 'markdown',
|
|
37
|
+
value: text
|
|
38
|
+
}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @param pins [Array<Pin::Base>]
|
|
42
|
+
# @return [String]
|
|
43
|
+
def join_docs pins
|
|
44
|
+
result = []
|
|
45
|
+
last_link = nil
|
|
46
|
+
pins.each_with_index do |pin|
|
|
47
|
+
this_link = host.options['enablePages'] ? pin.link_documentation : pin.text_documentation
|
|
48
|
+
if this_link && this_link != last_link && this_link != 'undefined'
|
|
49
|
+
result.push this_link
|
|
50
|
+
end
|
|
51
|
+
result.push pin.documentation unless result.last && result.last.end_with?(pin.documentation)
|
|
52
|
+
last_link = this_link
|
|
53
|
+
end
|
|
54
|
+
result.join("\n\n")
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'open3'
|
|
4
|
-
|
|
5
|
-
module Solargraph
|
|
6
|
-
module LanguageServer
|
|
7
|
-
module Message
|
|
8
|
-
module Extended
|
|
9
|
-
# Update YARD documentation for installed gems. If the `rebuild`
|
|
10
|
-
# parameter is true, rebuild existing yardocs.
|
|
11
|
-
#
|
|
12
|
-
class DocumentGems < Base
|
|
13
|
-
def process
|
|
14
|
-
cmd = [host.command_path, 'gems']
|
|
15
|
-
cmd.push '--rebuild' if params['rebuild']
|
|
16
|
-
o, s = Open3.capture2(*cmd)
|
|
17
|
-
if s != 0
|
|
18
|
-
host.show_message "An error occurred while building gem documentation.", LanguageServer::MessageTypes::ERROR
|
|
19
|
-
set_result({
|
|
20
|
-
status: 'err'
|
|
21
|
-
})
|
|
22
|
-
else
|
|
23
|
-
set_result({
|
|
24
|
-
status: 'ok'
|
|
25
|
-
})
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'open3'
|
|
4
|
+
|
|
5
|
+
module Solargraph
|
|
6
|
+
module LanguageServer
|
|
7
|
+
module Message
|
|
8
|
+
module Extended
|
|
9
|
+
# Update YARD documentation for installed gems. If the `rebuild`
|
|
10
|
+
# parameter is true, rebuild existing yardocs.
|
|
11
|
+
#
|
|
12
|
+
class DocumentGems < Base
|
|
13
|
+
def process
|
|
14
|
+
cmd = [host.command_path, 'gems']
|
|
15
|
+
cmd.push '--rebuild' if params['rebuild']
|
|
16
|
+
o, s = Open3.capture2(*cmd)
|
|
17
|
+
if s != 0
|
|
18
|
+
host.show_message "An error occurred while building gem documentation.", LanguageServer::MessageTypes::ERROR
|
|
19
|
+
set_result({
|
|
20
|
+
status: 'err'
|
|
21
|
+
})
|
|
22
|
+
else
|
|
23
|
+
set_result({
|
|
24
|
+
status: 'ok'
|
|
25
|
+
})
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'open3'
|
|
4
|
-
|
|
5
|
-
module Solargraph
|
|
6
|
-
module LanguageServer
|
|
7
|
-
module Message
|
|
8
|
-
module Extended
|
|
9
|
-
# Update core Ruby documentation.
|
|
10
|
-
#
|
|
11
|
-
class DownloadCore < Base
|
|
12
|
-
def process
|
|
13
|
-
host.show_message "Downloading cores is deprecated. Solargraph currently uses RBS for core and stdlib documentation", LanguageServer::MessageTypes::INFO
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'open3'
|
|
4
|
+
|
|
5
|
+
module Solargraph
|
|
6
|
+
module LanguageServer
|
|
7
|
+
module Message
|
|
8
|
+
module Extended
|
|
9
|
+
# Update core Ruby documentation.
|
|
10
|
+
#
|
|
11
|
+
class DownloadCore < Base
|
|
12
|
+
def process
|
|
13
|
+
host.show_message "Downloading cores is deprecated. Solargraph currently uses RBS for core and stdlib documentation", LanguageServer::MessageTypes::INFO
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module LanguageServer
|
|
5
|
-
module Message
|
|
6
|
-
module Extended
|
|
7
|
-
class Search < Base
|
|
8
|
-
def process
|
|
9
|
-
results = host.search(params['query'])
|
|
10
|
-
page = Solargraph::Page.new(host.options['viewsPath'])
|
|
11
|
-
content = page.render('search', layout: true, locals: {query: params['query'], results: results})
|
|
12
|
-
set_result(
|
|
13
|
-
content: content
|
|
14
|
-
)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module LanguageServer
|
|
5
|
+
module Message
|
|
6
|
+
module Extended
|
|
7
|
+
class Search < Base
|
|
8
|
+
def process
|
|
9
|
+
results = host.search(params['query'])
|
|
10
|
+
page = Solargraph::Page.new(host.options['viewsPath'])
|
|
11
|
+
content = page.render('search', layout: true, locals: {query: params['query'], results: results})
|
|
12
|
+
set_result(
|
|
13
|
+
content: content
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|