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.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +6 -0
  5. data/.travis.yml +25 -0
  6. data/EXAMPLES.md +76 -0
  7. data/Gemfile +3 -0
  8. data/LANGUAGE_SERVER.md +51 -0
  9. data/LICENSE +21 -0
  10. data/OVERVIEW.md +37 -0
  11. data/README.md +106 -0
  12. data/Rakefile +14 -0
  13. data/SERVER.md +95 -0
  14. data/bin/solargraph +0 -0
  15. data/bin/solargraph-runtime +5 -5
  16. data/lib/solargraph.rb +54 -54
  17. data/lib/solargraph/api_map.rb +659 -659
  18. data/lib/solargraph/api_map/cache.rb +49 -49
  19. data/lib/solargraph/api_map/source_to_yard.rb +67 -67
  20. data/lib/solargraph/api_map/store.rb +201 -201
  21. data/lib/solargraph/bundle.rb +24 -24
  22. data/lib/solargraph/complex_type.rb +150 -150
  23. data/lib/solargraph/complex_type/type_methods.rb +124 -124
  24. data/lib/solargraph/complex_type/unique_type.rb +44 -44
  25. data/lib/solargraph/core_fills.rb +37 -37
  26. data/lib/solargraph/diagnostics.rb +52 -52
  27. data/lib/solargraph/diagnostics/base.rb +20 -20
  28. data/lib/solargraph/diagnostics/require_not_found.rb +28 -28
  29. data/lib/solargraph/diagnostics/rubocop.rb +98 -98
  30. data/lib/solargraph/diagnostics/rubocop_helpers.rb +46 -46
  31. data/lib/solargraph/diagnostics/type_not_defined.rb +108 -108
  32. data/lib/solargraph/diagnostics/update_errors.rb +38 -38
  33. data/lib/solargraph/language_server/completion_item_kinds.rb +33 -33
  34. data/lib/solargraph/language_server/error_codes.rb +18 -18
  35. data/lib/solargraph/language_server/host.rb +684 -681
  36. data/lib/solargraph/language_server/host/cataloger.rb +54 -79
  37. data/lib/solargraph/language_server/host/diagnoser.rb +80 -80
  38. data/lib/solargraph/language_server/host/dispatch.rb +112 -113
  39. data/lib/solargraph/language_server/host/sources.rb +138 -138
  40. data/lib/solargraph/language_server/message.rb +90 -90
  41. data/lib/solargraph/language_server/message/base.rb +83 -83
  42. data/lib/solargraph/language_server/message/completion_item/resolve.rb +40 -40
  43. data/lib/solargraph/language_server/message/exit_notification.rb +11 -11
  44. data/lib/solargraph/language_server/message/extended.rb +19 -19
  45. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +86 -86
  46. data/lib/solargraph/language_server/message/extended/document.rb +18 -18
  47. data/lib/solargraph/language_server/message/extended/document_gems.rb +30 -30
  48. data/lib/solargraph/language_server/message/extended/environment.rb +20 -20
  49. data/lib/solargraph/language_server/message/extended/search.rb +18 -18
  50. data/lib/solargraph/language_server/message/initialize.rb +141 -141
  51. data/lib/solargraph/language_server/message/initialized.rb +23 -23
  52. data/lib/solargraph/language_server/message/shutdown.rb +11 -11
  53. data/lib/solargraph/language_server/message/text_document.rb +25 -25
  54. data/lib/solargraph/language_server/message/text_document/completion.rb +51 -51
  55. data/lib/solargraph/language_server/message/text_document/definition.rb +18 -18
  56. data/lib/solargraph/language_server/message/text_document/did_change.rb +13 -13
  57. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +21 -21
  58. data/lib/solargraph/language_server/message/text_document/folding_range.rb +24 -24
  59. data/lib/solargraph/language_server/message/text_document/formatting.rb +50 -50
  60. data/lib/solargraph/language_server/message/text_document/hover.rb +31 -31
  61. data/lib/solargraph/language_server/message/text_document/on_type_formatting.rb +32 -32
  62. data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +9 -9
  63. data/lib/solargraph/language_server/message/text_document/references.rb +14 -14
  64. data/lib/solargraph/language_server/message/text_document/rename.rb +17 -17
  65. data/lib/solargraph/language_server/message/text_document/signature_help.rb +19 -19
  66. data/lib/solargraph/language_server/message/workspace.rb +12 -12
  67. data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +29 -29
  68. data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +29 -27
  69. data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +24 -24
  70. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +21 -21
  71. data/lib/solargraph/language_server/request.rb +22 -22
  72. data/lib/solargraph/language_server/symbol_kinds.rb +34 -34
  73. data/lib/solargraph/language_server/transport.rb +11 -11
  74. data/lib/solargraph/language_server/transport/adapter.rb +60 -60
  75. data/lib/solargraph/language_server/transport/data_reader.rb +66 -66
  76. data/lib/solargraph/language_server/uri_helpers.rb +25 -25
  77. data/lib/solargraph/library.rb +421 -419
  78. data/lib/solargraph/live_map.rb +126 -126
  79. data/lib/solargraph/live_map/cache.rb +38 -38
  80. data/lib/solargraph/location.rb +31 -31
  81. data/lib/solargraph/logging.rb +25 -25
  82. data/lib/solargraph/page.rb +68 -68
  83. data/lib/solargraph/pin.rb +50 -50
  84. data/lib/solargraph/pin/attribute.rb +41 -41
  85. data/lib/solargraph/pin/base.rb +280 -280
  86. data/lib/solargraph/pin/base_method.rb +76 -76
  87. data/lib/solargraph/pin/base_variable.rb +72 -72
  88. data/lib/solargraph/pin/block.rb +32 -32
  89. data/lib/solargraph/pin/block_parameter.rb +103 -103
  90. data/lib/solargraph/pin/class_variable.rb +9 -9
  91. data/lib/solargraph/pin/constant.rb +30 -30
  92. data/lib/solargraph/pin/conversions.rb +79 -79
  93. data/lib/solargraph/pin/documenting.rb +41 -41
  94. data/lib/solargraph/pin/duck_method.rb +14 -14
  95. data/lib/solargraph/pin/global_variable.rb +9 -9
  96. data/lib/solargraph/pin/instance_variable.rb +9 -9
  97. data/lib/solargraph/pin/keyword.rb +17 -17
  98. data/lib/solargraph/pin/local_variable.rb +23 -23
  99. data/lib/solargraph/pin/localized.rb +22 -22
  100. data/lib/solargraph/pin/method.rb +126 -126
  101. data/lib/solargraph/pin/method_alias.rb +30 -30
  102. data/lib/solargraph/pin/method_parameter.rb +40 -40
  103. data/lib/solargraph/pin/namespace.rb +54 -54
  104. data/lib/solargraph/pin/plugin/method.rb +25 -25
  105. data/lib/solargraph/pin/proxy_type.rb +35 -35
  106. data/lib/solargraph/pin/reference.rb +22 -22
  107. data/lib/solargraph/pin/reference/extend.rb +11 -11
  108. data/lib/solargraph/pin/reference/include.rb +11 -11
  109. data/lib/solargraph/pin/reference/require.rb +15 -15
  110. data/lib/solargraph/pin/reference/superclass.rb +11 -11
  111. data/lib/solargraph/pin/symbol.rb +44 -44
  112. data/lib/solargraph/pin/yard_pin.rb +10 -10
  113. data/lib/solargraph/pin/yard_pin/constant.rb +14 -14
  114. data/lib/solargraph/pin/yard_pin/method.rb +35 -35
  115. data/lib/solargraph/pin/yard_pin/namespace.rb +19 -19
  116. data/lib/solargraph/pin/yard_pin/yard_mixin.rb +14 -14
  117. data/lib/solargraph/plugin.rb +8 -8
  118. data/lib/solargraph/plugin/base.rb +41 -41
  119. data/lib/solargraph/plugin/canceler.rb +11 -11
  120. data/lib/solargraph/plugin/process.rb +172 -172
  121. data/lib/solargraph/plugin/runtime.rb +134 -134
  122. data/lib/solargraph/position.rb +110 -110
  123. data/lib/solargraph/range.rb +83 -83
  124. data/lib/solargraph/server_methods.rb +14 -14
  125. data/lib/solargraph/shell.rb +102 -102
  126. data/lib/solargraph/source.rb +521 -521
  127. data/lib/solargraph/source/chain.rb +120 -120
  128. data/lib/solargraph/source/chain/call.rb +107 -107
  129. data/lib/solargraph/source/chain/class_variable.rb +11 -11
  130. data/lib/solargraph/source/chain/constant.rb +30 -30
  131. data/lib/solargraph/source/chain/global_variable.rb +11 -11
  132. data/lib/solargraph/source/chain/head.rb +33 -33
  133. data/lib/solargraph/source/chain/instance_variable.rb +11 -11
  134. data/lib/solargraph/source/chain/link.rb +33 -33
  135. data/lib/solargraph/source/chain/literal.rb +21 -21
  136. data/lib/solargraph/source/chain/variable.rb +11 -11
  137. data/lib/solargraph/source/change.rb +77 -77
  138. data/lib/solargraph/source/cursor.rb +157 -157
  139. data/lib/solargraph/source/node_chainer.rb +96 -96
  140. data/lib/solargraph/source/node_methods.rb +225 -225
  141. data/lib/solargraph/source/source_chainer.rb +183 -183
  142. data/lib/solargraph/source_map.rb +169 -169
  143. data/lib/solargraph/source_map/clip.rb +145 -145
  144. data/lib/solargraph/source_map/completion.rb +21 -21
  145. data/lib/solargraph/source_map/mapper.rb +149 -149
  146. data/lib/solargraph/source_map/node_processor.rb +78 -78
  147. data/lib/solargraph/source_map/node_processor/alias_node.rb +19 -19
  148. data/lib/solargraph/source_map/node_processor/args_node.rb +28 -28
  149. data/lib/solargraph/source_map/node_processor/base.rb +68 -68
  150. data/lib/solargraph/source_map/node_processor/begin_node.rb +11 -11
  151. data/lib/solargraph/source_map/node_processor/block_node.rb +14 -14
  152. data/lib/solargraph/source_map/node_processor/casgn_node.rb +14 -14
  153. data/lib/solargraph/source_map/node_processor/cvasgn_node.rb +14 -14
  154. data/lib/solargraph/source_map/node_processor/def_node.rb +54 -54
  155. data/lib/solargraph/source_map/node_processor/defs_node.rb +21 -21
  156. data/lib/solargraph/source_map/node_processor/gvasgn_node.rb +12 -12
  157. data/lib/solargraph/source_map/node_processor/ivasgn_node.rb +18 -18
  158. data/lib/solargraph/source_map/node_processor/lvasgn_node.rb +16 -16
  159. data/lib/solargraph/source_map/node_processor/namespace_node.rb +26 -26
  160. data/lib/solargraph/source_map/node_processor/orasgn_node.rb +12 -12
  161. data/lib/solargraph/source_map/node_processor/sclass_node.rb +11 -11
  162. data/lib/solargraph/source_map/node_processor/send_node.rb +162 -162
  163. data/lib/solargraph/source_map/node_processor/sym_node.rb +11 -11
  164. data/lib/solargraph/source_map/region.rb +58 -58
  165. data/lib/solargraph/version.rb +3 -3
  166. data/lib/solargraph/views/environment.erb +53 -53
  167. data/lib/solargraph/workspace.rb +183 -183
  168. data/lib/solargraph/workspace/config.rb +170 -170
  169. data/lib/solargraph/yard_map.rb +298 -298
  170. data/lib/solargraph/yard_map/cache.rb +17 -17
  171. data/lib/solargraph/yard_map/core_docs.rb +163 -163
  172. data/lib/solargraph/yard_map/core_gen.rb +76 -76
  173. data/lib/yard-coregen.rb +16 -16
  174. data/lib/yard-solargraph.rb +18 -18
  175. data/solargraph.gemspec +37 -0
  176. data/travis-bundler.rb +10 -0
  177. metadata +19 -6
@@ -1,21 +1,21 @@
1
- class Solargraph::LanguageServer::Message::Workspace::WorkspaceSymbol < Solargraph::LanguageServer::Message::Base
2
- include Solargraph::LanguageServer::UriHelpers
3
-
4
- def process
5
- pins = host.query_symbols(params['query'])
6
- info = pins.map do |pin|
7
- uri = file_to_uri(pin.location.filename)
8
- {
9
- name: pin.name,
10
- containerName: pin.namespace,
11
- kind: pin.symbol_kind,
12
- location: {
13
- uri: uri,
14
- range: pin.location.range.to_hash
15
- },
16
- deprecated: pin.deprecated?
17
- }
18
- end
19
- set_result info
20
- end
21
- end
1
+ class Solargraph::LanguageServer::Message::Workspace::WorkspaceSymbol < Solargraph::LanguageServer::Message::Base
2
+ include Solargraph::LanguageServer::UriHelpers
3
+
4
+ def process
5
+ pins = host.query_symbols(params['query'])
6
+ info = pins.map do |pin|
7
+ uri = file_to_uri(pin.location.filename)
8
+ {
9
+ name: pin.name,
10
+ containerName: pin.namespace,
11
+ kind: pin.symbol_kind,
12
+ location: {
13
+ uri: uri,
14
+ range: pin.location.range.to_hash
15
+ },
16
+ deprecated: pin.deprecated?
17
+ }
18
+ end
19
+ set_result info
20
+ end
21
+ end
@@ -1,22 +1,22 @@
1
- module Solargraph
2
- module LanguageServer
3
- class Request
4
- # @param id [Integer]
5
- # @param &block The block that processes the client's response
6
- def initialize id, &block
7
- @id = id
8
- @block = block
9
- end
10
-
11
- # @param result [Object]
12
- # @return [void]
13
- def process result
14
- @block.call(result) unless @block.nil?
15
- end
16
-
17
- def send_response
18
- # noop
19
- end
20
- end
21
- end
22
- end
1
+ module Solargraph
2
+ module LanguageServer
3
+ class Request
4
+ # @param id [Integer]
5
+ # @param &block The block that processes the client's response
6
+ def initialize id, &block
7
+ @id = id
8
+ @block = block
9
+ end
10
+
11
+ # @param result [Object]
12
+ # @return [void]
13
+ def process result
14
+ @block.call(result) unless @block.nil?
15
+ end
16
+
17
+ def send_response
18
+ # noop
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,34 +1,34 @@
1
- module Solargraph
2
- module LanguageServer
3
- # The SymbolKind constants for the language server protocol.
4
- #
5
- module SymbolKinds
6
- FILE = 1
7
- MODULE = 2
8
- NAMESPACE = 3
9
- PACKAGE = 4
10
- CLASS = 5
11
- METHOD = 6
12
- PROPERTY = 7
13
- FIELD = 8
14
- CONSTRUCTOR = 9
15
- ENUM = 10
16
- INTERFACE = 11
17
- FUNCTION = 12
18
- VARIABLE = 13
19
- CONSTANT = 14
20
- STRING = 15
21
- NUMBER = 16
22
- BOOLEAN = 17
23
- ARRAY = 18
24
- OBJECT = 19
25
- KEY = 20
26
- NULL = 21
27
- ENUM_MEMBER = 22
28
- STRUCT = 23
29
- EVENT = 24
30
- OPERATOR = 25
31
- TYPE_PARAMETER = 26
32
- end
33
- end
34
- end
1
+ module Solargraph
2
+ module LanguageServer
3
+ # The SymbolKind constants for the language server protocol.
4
+ #
5
+ module SymbolKinds
6
+ FILE = 1
7
+ MODULE = 2
8
+ NAMESPACE = 3
9
+ PACKAGE = 4
10
+ CLASS = 5
11
+ METHOD = 6
12
+ PROPERTY = 7
13
+ FIELD = 8
14
+ CONSTRUCTOR = 9
15
+ ENUM = 10
16
+ INTERFACE = 11
17
+ FUNCTION = 12
18
+ VARIABLE = 13
19
+ CONSTANT = 14
20
+ STRING = 15
21
+ NUMBER = 16
22
+ BOOLEAN = 17
23
+ ARRAY = 18
24
+ OBJECT = 19
25
+ KEY = 20
26
+ NULL = 21
27
+ ENUM_MEMBER = 22
28
+ STRUCT = 23
29
+ EVENT = 24
30
+ OPERATOR = 25
31
+ TYPE_PARAMETER = 26
32
+ end
33
+ end
34
+ end
@@ -1,11 +1,11 @@
1
- module Solargraph
2
- module LanguageServer
3
- # The Transport namespace contains concrete implementations of
4
- # communication protocols for language servers.
5
- #
6
- module Transport
7
- autoload :Adapter, 'solargraph/language_server/transport/adapter'
8
- autoload :DataReader, 'solargraph/language_server/transport/data_reader'
9
- end
10
- end
11
- end
1
+ module Solargraph
2
+ module LanguageServer
3
+ # The Transport namespace contains concrete implementations of
4
+ # communication protocols for language servers.
5
+ #
6
+ module Transport
7
+ autoload :Adapter, 'solargraph/language_server/transport/adapter'
8
+ autoload :DataReader, 'solargraph/language_server/transport/data_reader'
9
+ end
10
+ end
11
+ end
@@ -1,60 +1,60 @@
1
- require 'backport'
2
-
3
- module Solargraph
4
- module LanguageServer
5
- module Transport
6
- # A common module for running language servers in Backport.
7
- #
8
- module Adapter
9
- def opening
10
- @host = Solargraph::LanguageServer::Host.new
11
- @host.start
12
- @data_reader = Solargraph::LanguageServer::Transport::DataReader.new
13
- @data_reader.set_message_handler do |message|
14
- process message
15
- end
16
- start_timer
17
- end
18
-
19
- def closing
20
- @host.stop
21
- end
22
-
23
- # @param data [String]
24
- def receiving data
25
- @data_reader.receive data
26
- end
27
- # @todo Temporary alias to avoid problems due to a breaking change in
28
- # the Backport API
29
- alias sending receiving
30
-
31
- private
32
-
33
- # @param request [String]
34
- # @return [void]
35
- def process request
36
- message = @host.receive(request)
37
- message.send_response
38
- tmp = @host.flush
39
- write tmp unless tmp.empty?
40
- end
41
-
42
- def start_timer
43
- Backport.prepare_interval 0.1 do |server|
44
- if @host.stopped?
45
- server.stop
46
- shutdown
47
- else
48
- tmp = @host.flush
49
- write tmp unless tmp.empty?
50
- end
51
- end
52
- end
53
-
54
- def shutdown
55
- Backport.stop unless @host.options['transport'] == 'external'
56
- end
57
- end
58
- end
59
- end
60
- end
1
+ require 'backport'
2
+
3
+ module Solargraph
4
+ module LanguageServer
5
+ module Transport
6
+ # A common module for running language servers in Backport.
7
+ #
8
+ module Adapter
9
+ def opening
10
+ @host = Solargraph::LanguageServer::Host.new
11
+ @host.start
12
+ @data_reader = Solargraph::LanguageServer::Transport::DataReader.new
13
+ @data_reader.set_message_handler do |message|
14
+ process message
15
+ end
16
+ start_timer
17
+ end
18
+
19
+ def closing
20
+ @host.stop
21
+ end
22
+
23
+ # @param data [String]
24
+ def receiving data
25
+ @data_reader.receive data
26
+ end
27
+ # @todo Temporary alias to avoid problems due to a breaking change in
28
+ # the Backport API
29
+ alias sending receiving
30
+
31
+ private
32
+
33
+ # @param request [String]
34
+ # @return [void]
35
+ def process request
36
+ message = @host.receive(request)
37
+ message.send_response
38
+ tmp = @host.flush
39
+ write tmp unless tmp.empty?
40
+ end
41
+
42
+ def start_timer
43
+ Backport.prepare_interval 0.1 do |server|
44
+ if @host.stopped?
45
+ server.stop
46
+ shutdown
47
+ else
48
+ tmp = @host.flush
49
+ write tmp unless tmp.empty?
50
+ end
51
+ end
52
+ end
53
+
54
+ def shutdown
55
+ Backport.stop unless @host.options['transport'] == 'external'
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -1,66 +1,66 @@
1
- module Solargraph
2
- module LanguageServer
3
- module Transport
4
- class DataReader
5
- def initialize
6
- @in_header = true
7
- @content_length = 0
8
- @buffer = ''
9
- end
10
-
11
- # Declare a block to be executed for each message received from the
12
- # client.
13
- #
14
- # @yieldparam [Hash] The message received from the client
15
- def set_message_handler &block
16
- @message_handler = block
17
- end
18
-
19
- # Process raw data received from the client. The data will be parsed
20
- # into messages based on the JSON-RPC protocol. Each message will be
21
- # passed to the block declared via set_message_handler. Incomplete data
22
- # will be buffered and subsequent data will be appended to the buffer.
23
- #
24
- # @param data [String]
25
- def receive data
26
- data.each_char do |char|
27
- @buffer.concat char
28
- if @in_header
29
- prepare_to_parse_message if @buffer.end_with?("\r\n\r\n")
30
- else
31
- parse_message_from_buffer if @buffer.bytesize == @content_length
32
- end
33
- end
34
- end
35
-
36
- private
37
-
38
- def prepare_to_parse_message
39
- @in_header = false
40
- @buffer.each_line do |line|
41
- parts = line.split(':').map(&:strip)
42
- if parts[0] == 'Content-Length'
43
- @content_length = parts[1].to_i
44
- break
45
- end
46
- end
47
- @buffer.clear
48
- end
49
-
50
- def parse_message_from_buffer
51
- begin
52
- msg = JSON.parse(@buffer)
53
- @message_handler.call msg unless @message_handler.nil?
54
- rescue JSON::ParserError => e
55
- Solargraph::Logging.logger.warn "Failed to parse request: #{e.message}"
56
- Solargraph::Logging.logger.debug "Buffer: #{@buffer}"
57
- ensure
58
- @buffer.clear
59
- @in_header = true
60
- @content_length = 0
61
- end
62
- end
63
- end
64
- end
65
- end
66
- end
1
+ module Solargraph
2
+ module LanguageServer
3
+ module Transport
4
+ class DataReader
5
+ def initialize
6
+ @in_header = true
7
+ @content_length = 0
8
+ @buffer = ''
9
+ end
10
+
11
+ # Declare a block to be executed for each message received from the
12
+ # client.
13
+ #
14
+ # @yieldparam [Hash] The message received from the client
15
+ def set_message_handler &block
16
+ @message_handler = block
17
+ end
18
+
19
+ # Process raw data received from the client. The data will be parsed
20
+ # into messages based on the JSON-RPC protocol. Each message will be
21
+ # passed to the block declared via set_message_handler. Incomplete data
22
+ # will be buffered and subsequent data will be appended to the buffer.
23
+ #
24
+ # @param data [String]
25
+ def receive data
26
+ data.each_char do |char|
27
+ @buffer.concat char
28
+ if @in_header
29
+ prepare_to_parse_message if @buffer.end_with?("\r\n\r\n")
30
+ else
31
+ parse_message_from_buffer if @buffer.bytesize == @content_length
32
+ end
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def prepare_to_parse_message
39
+ @in_header = false
40
+ @buffer.each_line do |line|
41
+ parts = line.split(':').map(&:strip)
42
+ if parts[0] == 'Content-Length'
43
+ @content_length = parts[1].to_i
44
+ break
45
+ end
46
+ end
47
+ @buffer.clear
48
+ end
49
+
50
+ def parse_message_from_buffer
51
+ begin
52
+ msg = JSON.parse(@buffer)
53
+ @message_handler.call msg unless @message_handler.nil?
54
+ rescue JSON::ParserError => e
55
+ Solargraph::Logging.logger.warn "Failed to parse request: #{e.message}"
56
+ Solargraph::Logging.logger.debug "Buffer: #{@buffer}"
57
+ ensure
58
+ @buffer.clear
59
+ @in_header = true
60
+ @content_length = 0
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,25 +1,25 @@
1
- module Solargraph
2
- module LanguageServer
3
- # Methods to handle conversions between file URIs and paths.
4
- #
5
- module UriHelpers
6
- module_function
7
-
8
- # Convert a file URI to a path.
9
- #
10
- # @param uri [String]
11
- # @return [String]
12
- def uri_to_file uri
13
- URI.decode(uri).sub(/^file\:\/\//, '').sub(/^\/([a-z]\:)/i, '\1')
14
- end
15
-
16
- # Convert a file path to a URI.
17
- #
18
- # @param file [String]
19
- # @return [String]
20
- def file_to_uri file
21
- "file://#{URI.encode(file.gsub(/^([a-z]\:)/i, '/\1'))}"
22
- end
23
- end
24
- end
25
- end
1
+ module Solargraph
2
+ module LanguageServer
3
+ # Methods to handle conversions between file URIs and paths.
4
+ #
5
+ module UriHelpers
6
+ module_function
7
+
8
+ # Convert a file URI to a path.
9
+ #
10
+ # @param uri [String]
11
+ # @return [String]
12
+ def uri_to_file uri
13
+ URI.decode(uri).sub(/^file\:\/\//, '').sub(/^\/([a-z]\:)/i, '\1')
14
+ end
15
+
16
+ # Convert a file path to a URI.
17
+ #
18
+ # @param file [String]
19
+ # @return [String]
20
+ def file_to_uri file
21
+ "file://#{URI.encode(file.gsub(/^([a-z]\:)/i, '/\1'))}"
22
+ end
23
+ end
24
+ end
25
+ end