solargraph 0.32.1 → 0.32.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/.gitignore +9 -0
- data/.rspec +2 -0
- data/.rubocop.yml +6 -0
- data/.travis.yml +25 -0
- data/EXAMPLES.md +76 -0
- data/Gemfile +3 -0
- data/LANGUAGE_SERVER.md +51 -0
- data/LICENSE +21 -0
- data/OVERVIEW.md +37 -0
- data/README.md +106 -0
- data/Rakefile +14 -0
- data/SERVER.md +95 -0
- data/bin/solargraph +0 -0
- data/bin/solargraph-runtime +5 -5
- data/lib/solargraph.rb +54 -54
- data/lib/solargraph/api_map.rb +659 -659
- data/lib/solargraph/api_map/cache.rb +49 -49
- data/lib/solargraph/api_map/source_to_yard.rb +67 -67
- data/lib/solargraph/api_map/store.rb +201 -201
- data/lib/solargraph/bundle.rb +24 -24
- data/lib/solargraph/complex_type.rb +150 -150
- data/lib/solargraph/complex_type/type_methods.rb +124 -124
- data/lib/solargraph/complex_type/unique_type.rb +44 -44
- data/lib/solargraph/core_fills.rb +37 -37
- data/lib/solargraph/diagnostics.rb +52 -52
- data/lib/solargraph/diagnostics/base.rb +20 -20
- data/lib/solargraph/diagnostics/require_not_found.rb +28 -28
- data/lib/solargraph/diagnostics/rubocop.rb +98 -98
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +46 -46
- data/lib/solargraph/diagnostics/type_not_defined.rb +108 -108
- data/lib/solargraph/diagnostics/update_errors.rb +38 -38
- data/lib/solargraph/language_server/completion_item_kinds.rb +33 -33
- data/lib/solargraph/language_server/error_codes.rb +18 -18
- data/lib/solargraph/language_server/host.rb +684 -681
- data/lib/solargraph/language_server/host/cataloger.rb +54 -79
- data/lib/solargraph/language_server/host/diagnoser.rb +80 -80
- data/lib/solargraph/language_server/host/dispatch.rb +112 -113
- data/lib/solargraph/language_server/host/sources.rb +138 -138
- data/lib/solargraph/language_server/message.rb +90 -90
- data/lib/solargraph/language_server/message/base.rb +83 -83
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +40 -40
- data/lib/solargraph/language_server/message/exit_notification.rb +11 -11
- data/lib/solargraph/language_server/message/extended.rb +19 -19
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +86 -86
- data/lib/solargraph/language_server/message/extended/document.rb +18 -18
- data/lib/solargraph/language_server/message/extended/document_gems.rb +30 -30
- data/lib/solargraph/language_server/message/extended/environment.rb +20 -20
- data/lib/solargraph/language_server/message/extended/search.rb +18 -18
- data/lib/solargraph/language_server/message/initialize.rb +141 -141
- data/lib/solargraph/language_server/message/initialized.rb +23 -23
- data/lib/solargraph/language_server/message/shutdown.rb +11 -11
- data/lib/solargraph/language_server/message/text_document.rb +25 -25
- data/lib/solargraph/language_server/message/text_document/completion.rb +51 -51
- data/lib/solargraph/language_server/message/text_document/definition.rb +18 -18
- data/lib/solargraph/language_server/message/text_document/did_change.rb +13 -13
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +21 -21
- data/lib/solargraph/language_server/message/text_document/folding_range.rb +24 -24
- data/lib/solargraph/language_server/message/text_document/formatting.rb +50 -50
- data/lib/solargraph/language_server/message/text_document/hover.rb +31 -31
- data/lib/solargraph/language_server/message/text_document/on_type_formatting.rb +32 -32
- data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +9 -9
- data/lib/solargraph/language_server/message/text_document/references.rb +14 -14
- data/lib/solargraph/language_server/message/text_document/rename.rb +17 -17
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +19 -19
- data/lib/solargraph/language_server/message/workspace.rb +12 -12
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +29 -29
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +29 -27
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +24 -24
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +21 -21
- data/lib/solargraph/language_server/request.rb +22 -22
- data/lib/solargraph/language_server/symbol_kinds.rb +34 -34
- data/lib/solargraph/language_server/transport.rb +11 -11
- data/lib/solargraph/language_server/transport/adapter.rb +60 -60
- data/lib/solargraph/language_server/transport/data_reader.rb +66 -66
- data/lib/solargraph/language_server/uri_helpers.rb +25 -25
- data/lib/solargraph/library.rb +421 -419
- data/lib/solargraph/live_map.rb +126 -126
- data/lib/solargraph/live_map/cache.rb +38 -38
- data/lib/solargraph/location.rb +31 -31
- data/lib/solargraph/logging.rb +25 -25
- data/lib/solargraph/page.rb +68 -68
- data/lib/solargraph/pin.rb +50 -50
- data/lib/solargraph/pin/attribute.rb +41 -41
- data/lib/solargraph/pin/base.rb +280 -280
- data/lib/solargraph/pin/base_method.rb +76 -76
- data/lib/solargraph/pin/base_variable.rb +72 -72
- data/lib/solargraph/pin/block.rb +32 -32
- data/lib/solargraph/pin/block_parameter.rb +103 -103
- data/lib/solargraph/pin/class_variable.rb +9 -9
- data/lib/solargraph/pin/constant.rb +30 -30
- data/lib/solargraph/pin/conversions.rb +79 -79
- data/lib/solargraph/pin/documenting.rb +41 -41
- data/lib/solargraph/pin/duck_method.rb +14 -14
- data/lib/solargraph/pin/global_variable.rb +9 -9
- data/lib/solargraph/pin/instance_variable.rb +9 -9
- data/lib/solargraph/pin/keyword.rb +17 -17
- data/lib/solargraph/pin/local_variable.rb +23 -23
- data/lib/solargraph/pin/localized.rb +22 -22
- data/lib/solargraph/pin/method.rb +126 -126
- data/lib/solargraph/pin/method_alias.rb +30 -30
- data/lib/solargraph/pin/method_parameter.rb +40 -40
- data/lib/solargraph/pin/namespace.rb +54 -54
- data/lib/solargraph/pin/plugin/method.rb +25 -25
- data/lib/solargraph/pin/proxy_type.rb +35 -35
- data/lib/solargraph/pin/reference.rb +22 -22
- data/lib/solargraph/pin/reference/extend.rb +11 -11
- data/lib/solargraph/pin/reference/include.rb +11 -11
- data/lib/solargraph/pin/reference/require.rb +15 -15
- data/lib/solargraph/pin/reference/superclass.rb +11 -11
- data/lib/solargraph/pin/symbol.rb +44 -44
- data/lib/solargraph/pin/yard_pin.rb +10 -10
- data/lib/solargraph/pin/yard_pin/constant.rb +14 -14
- data/lib/solargraph/pin/yard_pin/method.rb +35 -35
- data/lib/solargraph/pin/yard_pin/namespace.rb +19 -19
- data/lib/solargraph/pin/yard_pin/yard_mixin.rb +14 -14
- data/lib/solargraph/plugin.rb +8 -8
- data/lib/solargraph/plugin/base.rb +41 -41
- data/lib/solargraph/plugin/canceler.rb +11 -11
- data/lib/solargraph/plugin/process.rb +172 -172
- data/lib/solargraph/plugin/runtime.rb +134 -134
- data/lib/solargraph/position.rb +110 -110
- data/lib/solargraph/range.rb +83 -83
- data/lib/solargraph/server_methods.rb +14 -14
- data/lib/solargraph/shell.rb +102 -102
- data/lib/solargraph/source.rb +521 -521
- data/lib/solargraph/source/chain.rb +120 -120
- data/lib/solargraph/source/chain/call.rb +107 -107
- data/lib/solargraph/source/chain/class_variable.rb +11 -11
- data/lib/solargraph/source/chain/constant.rb +30 -30
- data/lib/solargraph/source/chain/global_variable.rb +11 -11
- data/lib/solargraph/source/chain/head.rb +33 -33
- data/lib/solargraph/source/chain/instance_variable.rb +11 -11
- data/lib/solargraph/source/chain/link.rb +33 -33
- data/lib/solargraph/source/chain/literal.rb +21 -21
- data/lib/solargraph/source/chain/variable.rb +11 -11
- data/lib/solargraph/source/change.rb +77 -77
- data/lib/solargraph/source/cursor.rb +157 -157
- data/lib/solargraph/source/node_chainer.rb +96 -96
- data/lib/solargraph/source/node_methods.rb +225 -225
- data/lib/solargraph/source/source_chainer.rb +183 -183
- data/lib/solargraph/source_map.rb +169 -169
- data/lib/solargraph/source_map/clip.rb +145 -145
- data/lib/solargraph/source_map/completion.rb +21 -21
- data/lib/solargraph/source_map/mapper.rb +149 -149
- data/lib/solargraph/source_map/node_processor.rb +78 -78
- data/lib/solargraph/source_map/node_processor/alias_node.rb +19 -19
- data/lib/solargraph/source_map/node_processor/args_node.rb +28 -28
- data/lib/solargraph/source_map/node_processor/base.rb +68 -68
- data/lib/solargraph/source_map/node_processor/begin_node.rb +11 -11
- data/lib/solargraph/source_map/node_processor/block_node.rb +14 -14
- data/lib/solargraph/source_map/node_processor/casgn_node.rb +14 -14
- data/lib/solargraph/source_map/node_processor/cvasgn_node.rb +14 -14
- data/lib/solargraph/source_map/node_processor/def_node.rb +54 -54
- data/lib/solargraph/source_map/node_processor/defs_node.rb +21 -21
- data/lib/solargraph/source_map/node_processor/gvasgn_node.rb +12 -12
- data/lib/solargraph/source_map/node_processor/ivasgn_node.rb +18 -18
- data/lib/solargraph/source_map/node_processor/lvasgn_node.rb +16 -16
- data/lib/solargraph/source_map/node_processor/namespace_node.rb +26 -26
- data/lib/solargraph/source_map/node_processor/orasgn_node.rb +12 -12
- data/lib/solargraph/source_map/node_processor/sclass_node.rb +11 -11
- data/lib/solargraph/source_map/node_processor/send_node.rb +162 -162
- data/lib/solargraph/source_map/node_processor/sym_node.rb +11 -11
- data/lib/solargraph/source_map/region.rb +58 -58
- data/lib/solargraph/version.rb +3 -3
- data/lib/solargraph/views/environment.erb +53 -53
- data/lib/solargraph/workspace.rb +183 -183
- data/lib/solargraph/workspace/config.rb +170 -170
- data/lib/solargraph/yard_map.rb +298 -298
- data/lib/solargraph/yard_map/cache.rb +17 -17
- data/lib/solargraph/yard_map/core_docs.rb +163 -163
- data/lib/solargraph/yard_map/core_gen.rb +76 -76
- data/lib/yard-coregen.rb +16 -16
- data/lib/yard-solargraph.rb +18 -18
- data/solargraph.gemspec +37 -0
- data/travis-bundler.rb +10 -0
- metadata +19 -6
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
require 'uri'
|
|
2
|
-
require 'htmlentities'
|
|
3
|
-
|
|
4
|
-
module Solargraph::LanguageServer::Message::TextDocument
|
|
5
|
-
class Hover < Base
|
|
6
|
-
def process
|
|
7
|
-
line = params['position']['line']
|
|
8
|
-
col = params['position']['character']
|
|
9
|
-
contents = []
|
|
10
|
-
suggestions = host.definitions_at(params['textDocument']['uri'], line, col)
|
|
11
|
-
last_link = nil
|
|
12
|
-
suggestions.each do |pin|
|
|
13
|
-
parts = []
|
|
14
|
-
this_link = pin.link_documentation
|
|
15
|
-
if !this_link.nil? and this_link != last_link
|
|
16
|
-
parts.push this_link
|
|
17
|
-
end
|
|
18
|
-
parts.push HTMLEntities.new.encode(pin.detail) unless pin.kind == Solargraph::Pin::NAMESPACE or pin.detail.nil?
|
|
19
|
-
parts.push pin.documentation unless pin.documentation.nil? or pin.documentation.empty?
|
|
20
|
-
contents.push parts.join("\n\n") unless parts.empty?
|
|
21
|
-
last_link = this_link unless this_link.nil?
|
|
22
|
-
end
|
|
23
|
-
set_result(
|
|
24
|
-
contents: {
|
|
25
|
-
kind: 'markdown',
|
|
26
|
-
value: contents.join("\n\n")
|
|
27
|
-
}
|
|
28
|
-
)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
1
|
+
require 'uri'
|
|
2
|
+
require 'htmlentities'
|
|
3
|
+
|
|
4
|
+
module Solargraph::LanguageServer::Message::TextDocument
|
|
5
|
+
class Hover < Base
|
|
6
|
+
def process
|
|
7
|
+
line = params['position']['line']
|
|
8
|
+
col = params['position']['character']
|
|
9
|
+
contents = []
|
|
10
|
+
suggestions = host.definitions_at(params['textDocument']['uri'], line, col)
|
|
11
|
+
last_link = nil
|
|
12
|
+
suggestions.each do |pin|
|
|
13
|
+
parts = []
|
|
14
|
+
this_link = pin.link_documentation
|
|
15
|
+
if !this_link.nil? and this_link != last_link
|
|
16
|
+
parts.push this_link
|
|
17
|
+
end
|
|
18
|
+
parts.push HTMLEntities.new.encode(pin.detail) unless pin.kind == Solargraph::Pin::NAMESPACE or pin.detail.nil?
|
|
19
|
+
parts.push pin.documentation unless pin.documentation.nil? or pin.documentation.empty?
|
|
20
|
+
contents.push parts.join("\n\n") unless parts.empty?
|
|
21
|
+
last_link = this_link unless this_link.nil?
|
|
22
|
+
end
|
|
23
|
+
set_result(
|
|
24
|
+
contents: {
|
|
25
|
+
kind: 'markdown',
|
|
26
|
+
value: contents.join("\n\n")
|
|
27
|
+
}
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
module Solargraph
|
|
2
|
-
module LanguageServer
|
|
3
|
-
module Message
|
|
4
|
-
module TextDocument
|
|
5
|
-
class OnTypeFormatting < Base
|
|
6
|
-
def process
|
|
7
|
-
# @todo Temporarily disabled due to conflicts with VSCode formatting on type
|
|
8
|
-
# src = host.send(:library).checkout(uri_to_file(params['textDocument']['uri']))
|
|
9
|
-
# fragment = src.fragment_at(params['position']['line'], params['position']['character'] - 1)
|
|
10
|
-
# offset = fragment.send(:offset)
|
|
11
|
-
# if fragment.string? and params['ch'] == '{' and src.code[offset - 1, 2] == '#{'
|
|
12
|
-
# set_result(
|
|
13
|
-
# [
|
|
14
|
-
# {
|
|
15
|
-
# range: {
|
|
16
|
-
# start: params['position'],
|
|
17
|
-
# end: params['position']
|
|
18
|
-
# },
|
|
19
|
-
# newText: '}'
|
|
20
|
-
# }
|
|
21
|
-
# ]
|
|
22
|
-
# )
|
|
23
|
-
# else
|
|
24
|
-
# # @todo Is `nil` or `[]` more appropriate here?
|
|
25
|
-
# set_result nil
|
|
26
|
-
# end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
1
|
+
module Solargraph
|
|
2
|
+
module LanguageServer
|
|
3
|
+
module Message
|
|
4
|
+
module TextDocument
|
|
5
|
+
class OnTypeFormatting < Base
|
|
6
|
+
def process
|
|
7
|
+
# @todo Temporarily disabled due to conflicts with VSCode formatting on type
|
|
8
|
+
# src = host.send(:library).checkout(uri_to_file(params['textDocument']['uri']))
|
|
9
|
+
# fragment = src.fragment_at(params['position']['line'], params['position']['character'] - 1)
|
|
10
|
+
# offset = fragment.send(:offset)
|
|
11
|
+
# if fragment.string? and params['ch'] == '{' and src.code[offset - 1, 2] == '#{'
|
|
12
|
+
# set_result(
|
|
13
|
+
# [
|
|
14
|
+
# {
|
|
15
|
+
# range: {
|
|
16
|
+
# start: params['position'],
|
|
17
|
+
# end: params['position']
|
|
18
|
+
# },
|
|
19
|
+
# newText: '}'
|
|
20
|
+
# }
|
|
21
|
+
# ]
|
|
22
|
+
# )
|
|
23
|
+
# else
|
|
24
|
+
# # @todo Is `nil` or `[]` more appropriate here?
|
|
25
|
+
# set_result nil
|
|
26
|
+
# end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
module Solargraph::LanguageServer::Message::TextDocument
|
|
2
|
-
class PrepareRename < Base
|
|
3
|
-
def process
|
|
4
|
-
line = params['position']['line']
|
|
5
|
-
col = params['position']['character']
|
|
6
|
-
set_result host.sources.find(params['textDocument']['uri']).cursor_at(Solargraph::Position.new(line, col)).range.to_hash
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
1
|
+
module Solargraph::LanguageServer::Message::TextDocument
|
|
2
|
+
class PrepareRename < Base
|
|
3
|
+
def process
|
|
4
|
+
line = params['position']['line']
|
|
5
|
+
col = params['position']['character']
|
|
6
|
+
set_result host.sources.find(params['textDocument']['uri']).cursor_at(Solargraph::Position.new(line, col)).range.to_hash
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
module Solargraph::LanguageServer::Message::TextDocument
|
|
2
|
-
class References < Base
|
|
3
|
-
def process
|
|
4
|
-
locs = host.references_from(params['textDocument']['uri'], params['position']['line'], params['position']['character'])
|
|
5
|
-
result = locs.map do |loc|
|
|
6
|
-
{
|
|
7
|
-
uri: file_to_uri(loc.filename),
|
|
8
|
-
range: loc.range.to_hash
|
|
9
|
-
}
|
|
10
|
-
end
|
|
11
|
-
set_result result
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
1
|
+
module Solargraph::LanguageServer::Message::TextDocument
|
|
2
|
+
class References < Base
|
|
3
|
+
def process
|
|
4
|
+
locs = host.references_from(params['textDocument']['uri'], params['position']['line'], params['position']['character'])
|
|
5
|
+
result = locs.map do |loc|
|
|
6
|
+
{
|
|
7
|
+
uri: file_to_uri(loc.filename),
|
|
8
|
+
range: loc.range.to_hash
|
|
9
|
+
}
|
|
10
|
+
end
|
|
11
|
+
set_result result
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
module Solargraph::LanguageServer::Message::TextDocument
|
|
2
|
-
class Rename < Base
|
|
3
|
-
def process
|
|
4
|
-
locs = host.references_from(params['textDocument']['uri'], params['position']['line'], params['position']['character'], strip: true)
|
|
5
|
-
changes = {}
|
|
6
|
-
locs.each do |loc|
|
|
7
|
-
uri = file_to_uri(loc.filename)
|
|
8
|
-
changes[uri] ||= []
|
|
9
|
-
changes[uri].push({
|
|
10
|
-
range: loc.range.to_hash,
|
|
11
|
-
newText: params['newName']
|
|
12
|
-
})
|
|
13
|
-
end
|
|
14
|
-
set_result changes: changes
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
1
|
+
module Solargraph::LanguageServer::Message::TextDocument
|
|
2
|
+
class Rename < Base
|
|
3
|
+
def process
|
|
4
|
+
locs = host.references_from(params['textDocument']['uri'], params['position']['line'], params['position']['character'], strip: true)
|
|
5
|
+
changes = {}
|
|
6
|
+
locs.each do |loc|
|
|
7
|
+
uri = file_to_uri(loc.filename)
|
|
8
|
+
changes[uri] ||= []
|
|
9
|
+
changes[uri].push({
|
|
10
|
+
range: loc.range.to_hash,
|
|
11
|
+
newText: params['newName']
|
|
12
|
+
})
|
|
13
|
+
end
|
|
14
|
+
set_result changes: changes
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
module Solargraph
|
|
2
|
-
module LanguageServer
|
|
3
|
-
module Message
|
|
4
|
-
module TextDocument
|
|
5
|
-
class SignatureHelp < TextDocument::Base
|
|
6
|
-
def process
|
|
7
|
-
line = params['position']['line']
|
|
8
|
-
col = params['position']['character']
|
|
9
|
-
suggestions = host.signatures_at(params['textDocument']['uri'], line, col)
|
|
10
|
-
info = suggestions.map(&:signature_help)
|
|
11
|
-
set_result({
|
|
12
|
-
signatures: info
|
|
13
|
-
})
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
1
|
+
module Solargraph
|
|
2
|
+
module LanguageServer
|
|
3
|
+
module Message
|
|
4
|
+
module TextDocument
|
|
5
|
+
class SignatureHelp < TextDocument::Base
|
|
6
|
+
def process
|
|
7
|
+
line = params['position']['line']
|
|
8
|
+
col = params['position']['character']
|
|
9
|
+
suggestions = host.signatures_at(params['textDocument']['uri'], line, col)
|
|
10
|
+
info = suggestions.map(&:signature_help)
|
|
11
|
+
set_result({
|
|
12
|
+
signatures: info
|
|
13
|
+
})
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
module Solargraph
|
|
2
|
-
module LanguageServer
|
|
3
|
-
module Message
|
|
4
|
-
module Workspace
|
|
5
|
-
autoload :DidChangeWatchedFiles, 'solargraph/language_server/message/workspace/did_change_watched_files'
|
|
6
|
-
autoload :WorkspaceSymbol, 'solargraph/language_server/message/workspace/workspace_symbol'
|
|
7
|
-
autoload :DidChangeConfiguration, 'solargraph/language_server/message/workspace/did_change_configuration'
|
|
8
|
-
autoload :DidChangeWorkspaceFolders, 'solargraph/language_server/message/workspace/did_change_workspace_folders'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
1
|
+
module Solargraph
|
|
2
|
+
module LanguageServer
|
|
3
|
+
module Message
|
|
4
|
+
module Workspace
|
|
5
|
+
autoload :DidChangeWatchedFiles, 'solargraph/language_server/message/workspace/did_change_watched_files'
|
|
6
|
+
autoload :WorkspaceSymbol, 'solargraph/language_server/message/workspace/workspace_symbol'
|
|
7
|
+
autoload :DidChangeConfiguration, 'solargraph/language_server/message/workspace/did_change_configuration'
|
|
8
|
+
autoload :DidChangeWorkspaceFolders, 'solargraph/language_server/message/workspace/did_change_workspace_folders'
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
require 'uri'
|
|
2
|
-
|
|
3
|
-
module Solargraph::LanguageServer::Message::Workspace
|
|
4
|
-
class DidChangeConfiguration < Solargraph::LanguageServer::Message::Base
|
|
5
|
-
def process
|
|
6
|
-
return unless params['settings']
|
|
7
|
-
update = params['settings']['solargraph']
|
|
8
|
-
host.configure update
|
|
9
|
-
register_from_options
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
private
|
|
13
|
-
|
|
14
|
-
def register_from_options
|
|
15
|
-
y = []
|
|
16
|
-
n = []
|
|
17
|
-
(host.options['completion'] ? y : n).push('textDocument/completion')
|
|
18
|
-
(host.options['hover'] ? y : n).push('textDocument/hover', 'textDocument/signatureHelp')
|
|
19
|
-
(host.options['autoformat'] ? y : n).push('textDocument/onTypeFormatting')
|
|
20
|
-
(host.options['formatting'] ? y : n).push('textDocument/formatting')
|
|
21
|
-
(host.options['symbols'] ? y : n).push('textDocument/documentSymbol', 'workspace/symbol')
|
|
22
|
-
(host.options['definitions'] ? y : n).push('textDocument/definition')
|
|
23
|
-
(host.options['references'] ? y : n).push('textDocument/references')
|
|
24
|
-
(host.options['folding'] ? y : n).push('textDocument/folding')
|
|
25
|
-
host.register_capabilities y
|
|
26
|
-
host.unregister_capabilities n
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
1
|
+
require 'uri'
|
|
2
|
+
|
|
3
|
+
module Solargraph::LanguageServer::Message::Workspace
|
|
4
|
+
class DidChangeConfiguration < Solargraph::LanguageServer::Message::Base
|
|
5
|
+
def process
|
|
6
|
+
return unless params['settings']
|
|
7
|
+
update = params['settings']['solargraph']
|
|
8
|
+
host.configure update
|
|
9
|
+
register_from_options
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def register_from_options
|
|
15
|
+
y = []
|
|
16
|
+
n = []
|
|
17
|
+
(host.options['completion'] ? y : n).push('textDocument/completion')
|
|
18
|
+
(host.options['hover'] ? y : n).push('textDocument/hover', 'textDocument/signatureHelp')
|
|
19
|
+
(host.options['autoformat'] ? y : n).push('textDocument/onTypeFormatting')
|
|
20
|
+
(host.options['formatting'] ? y : n).push('textDocument/formatting')
|
|
21
|
+
(host.options['symbols'] ? y : n).push('textDocument/documentSymbol', 'workspace/symbol')
|
|
22
|
+
(host.options['definitions'] ? y : n).push('textDocument/definition')
|
|
23
|
+
(host.options['references'] ? y : n).push('textDocument/references')
|
|
24
|
+
(host.options['folding'] ? y : n).push('textDocument/folding')
|
|
25
|
+
host.register_capabilities y
|
|
26
|
+
host.unregister_capabilities n
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
require 'uri'
|
|
2
|
-
|
|
3
|
-
module Solargraph::LanguageServer::Message::Workspace
|
|
4
|
-
class DidChangeWatchedFiles < Solargraph::LanguageServer::Message::Base
|
|
5
|
-
CREATED = 1
|
|
6
|
-
CHANGED = 2
|
|
7
|
-
DELETED = 3
|
|
8
|
-
|
|
9
|
-
include Solargraph::LanguageServer::UriHelpers
|
|
10
|
-
|
|
11
|
-
def process
|
|
12
|
-
# @param change [Hash]
|
|
13
|
-
params['changes'].each do |change|
|
|
14
|
-
# @todo Changes might need to be handled here even if the file is open
|
|
15
|
-
if change['type'] == CREATED
|
|
16
|
-
host.create change['uri'] #unless host.open?(change['uri'])
|
|
17
|
-
elsif change['type'] == CHANGED
|
|
18
|
-
host.create change['uri'] #unless host.open?(change['uri'])
|
|
19
|
-
elsif change['type'] == DELETED
|
|
20
|
-
host.delete change['uri']
|
|
21
|
-
else
|
|
22
|
-
set_error Solargraph::LanguageServer::ErrorCodes::INVALID_PARAMS, "Unknown change type ##{change['type']} for #{uri_to_file(change['uri'])}"
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
end
|
|
1
|
+
require 'uri'
|
|
2
|
+
|
|
3
|
+
module Solargraph::LanguageServer::Message::Workspace
|
|
4
|
+
class DidChangeWatchedFiles < Solargraph::LanguageServer::Message::Base
|
|
5
|
+
CREATED = 1
|
|
6
|
+
CHANGED = 2
|
|
7
|
+
DELETED = 3
|
|
8
|
+
|
|
9
|
+
include Solargraph::LanguageServer::UriHelpers
|
|
10
|
+
|
|
11
|
+
def process
|
|
12
|
+
# @param change [Hash]
|
|
13
|
+
params['changes'].each do |change|
|
|
14
|
+
# @todo Changes might need to be handled here even if the file is open
|
|
15
|
+
if change['type'] == CREATED
|
|
16
|
+
host.create change['uri'] #unless host.open?(change['uri'])
|
|
17
|
+
elsif change['type'] == CHANGED
|
|
18
|
+
host.create change['uri'] #unless host.open?(change['uri'])
|
|
19
|
+
elsif change['type'] == DELETED
|
|
20
|
+
host.delete change['uri']
|
|
21
|
+
else
|
|
22
|
+
set_error Solargraph::LanguageServer::ErrorCodes::INVALID_PARAMS, "Unknown change type ##{change['type']} for #{uri_to_file(change['uri'])}"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
# Force host to catalog libraries after file changes (see castwide/solargraph#139)
|
|
26
|
+
host.catalog
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
require 'uri'
|
|
2
|
-
|
|
3
|
-
module Solargraph::LanguageServer::Message::Workspace
|
|
4
|
-
class DidChangeWorkspaceFolders < Solargraph::LanguageServer::Message::Base
|
|
5
|
-
def process
|
|
6
|
-
add_folders
|
|
7
|
-
remove_folders
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
private
|
|
11
|
-
|
|
12
|
-
def add_folders
|
|
13
|
-
return unless params['event'] && params['event']['added']
|
|
14
|
-
host.prepare_folders params['event']['added']
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def remove_folders
|
|
18
|
-
return unless params['event'] && params['event']['removed']
|
|
19
|
-
params['event']['removed'].each do |folder|
|
|
20
|
-
host.remove_folders params['event']['removed']
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
1
|
+
require 'uri'
|
|
2
|
+
|
|
3
|
+
module Solargraph::LanguageServer::Message::Workspace
|
|
4
|
+
class DidChangeWorkspaceFolders < Solargraph::LanguageServer::Message::Base
|
|
5
|
+
def process
|
|
6
|
+
add_folders
|
|
7
|
+
remove_folders
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def add_folders
|
|
13
|
+
return unless params['event'] && params['event']['added']
|
|
14
|
+
host.prepare_folders params['event']['added']
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def remove_folders
|
|
18
|
+
return unless params['event'] && params['event']['removed']
|
|
19
|
+
params['event']['removed'].each do |folder|
|
|
20
|
+
host.remove_folders params['event']['removed']
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|