solargraph 0.33.2 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/README.md +1 -1
  4. data/lib/solargraph.rb +5 -0
  5. data/lib/solargraph/api_map.rb +36 -18
  6. data/lib/solargraph/api_map/cache.rb +2 -0
  7. data/lib/solargraph/api_map/source_to_yard.rb +14 -5
  8. data/lib/solargraph/api_map/store.rb +17 -19
  9. data/lib/solargraph/bundle.rb +2 -0
  10. data/lib/solargraph/complex_type.rb +18 -4
  11. data/lib/solargraph/complex_type/type_methods.rb +2 -0
  12. data/lib/solargraph/complex_type/unique_type.rb +2 -0
  13. data/lib/solargraph/convention.rb +38 -0
  14. data/lib/solargraph/convention/base.rb +28 -0
  15. data/lib/solargraph/convention/gemfile.rb +18 -0
  16. data/lib/solargraph/convention/gemspec.rb +25 -0
  17. data/lib/solargraph/convention/rspec.rb +23 -0
  18. data/lib/solargraph/core_fills.rb +66 -42
  19. data/lib/solargraph/diagnostics.rb +2 -0
  20. data/lib/solargraph/diagnostics/base.rb +2 -0
  21. data/lib/solargraph/diagnostics/require_not_found.rb +2 -0
  22. data/lib/solargraph/diagnostics/rubocop.rb +2 -0
  23. data/lib/solargraph/diagnostics/rubocop_helpers.rb +2 -0
  24. data/lib/solargraph/diagnostics/severities.rb +15 -13
  25. data/lib/solargraph/diagnostics/type_check.rb +2 -0
  26. data/lib/solargraph/diagnostics/update_errors.rb +2 -0
  27. data/lib/solargraph/documentor.rb +42 -0
  28. data/lib/solargraph/environ.rb +40 -0
  29. data/lib/solargraph/language_server.rb +19 -17
  30. data/lib/solargraph/language_server/completion_item_kinds.rb +2 -0
  31. data/lib/solargraph/language_server/error_codes.rb +2 -0
  32. data/lib/solargraph/language_server/host.rb +3 -1
  33. data/lib/solargraph/language_server/host/cataloger.rb +2 -0
  34. data/lib/solargraph/language_server/host/diagnoser.rb +2 -0
  35. data/lib/solargraph/language_server/host/dispatch.rb +2 -0
  36. data/lib/solargraph/language_server/host/sources.rb +2 -0
  37. data/lib/solargraph/language_server/message.rb +2 -0
  38. data/lib/solargraph/language_server/message/base.rb +2 -0
  39. data/lib/solargraph/language_server/message/cancel_request.rb +13 -11
  40. data/lib/solargraph/language_server/message/client.rb +11 -9
  41. data/lib/solargraph/language_server/message/client/register_capability.rb +15 -13
  42. data/lib/solargraph/language_server/message/completion_item.rb +11 -9
  43. data/lib/solargraph/language_server/message/completion_item/resolve.rb +2 -0
  44. data/lib/solargraph/language_server/message/exit_notification.rb +2 -0
  45. data/lib/solargraph/language_server/message/extended.rb +2 -0
  46. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +2 -0
  47. data/lib/solargraph/language_server/message/extended/document.rb +2 -0
  48. data/lib/solargraph/language_server/message/extended/document_gems.rb +2 -0
  49. data/lib/solargraph/language_server/message/extended/download_core.rb +27 -25
  50. data/lib/solargraph/language_server/message/extended/environment.rb +5 -0
  51. data/lib/solargraph/language_server/message/extended/search.rb +2 -0
  52. data/lib/solargraph/language_server/message/initialize.rb +2 -0
  53. data/lib/solargraph/language_server/message/initialized.rb +2 -0
  54. data/lib/solargraph/language_server/message/method_not_found.rb +16 -14
  55. data/lib/solargraph/language_server/message/method_not_implemented.rb +14 -12
  56. data/lib/solargraph/language_server/message/shutdown.rb +2 -0
  57. data/lib/solargraph/language_server/message/text_document.rb +2 -0
  58. data/lib/solargraph/language_server/message/text_document/base.rb +19 -17
  59. data/lib/solargraph/language_server/message/text_document/code_action.rb +2 -0
  60. data/lib/solargraph/language_server/message/text_document/completion.rb +3 -1
  61. data/lib/solargraph/language_server/message/text_document/definition.rb +2 -0
  62. data/lib/solargraph/language_server/message/text_document/did_change.rb +2 -0
  63. data/lib/solargraph/language_server/message/text_document/did_close.rb +15 -13
  64. data/lib/solargraph/language_server/message/text_document/did_open.rb +15 -13
  65. data/lib/solargraph/language_server/message/text_document/did_save.rb +17 -15
  66. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +2 -0
  67. data/lib/solargraph/language_server/message/text_document/folding_range.rb +2 -0
  68. data/lib/solargraph/language_server/message/text_document/formatting.rb +8 -1
  69. data/lib/solargraph/language_server/message/text_document/hover.rb +3 -1
  70. data/lib/solargraph/language_server/message/text_document/on_type_formatting.rb +2 -0
  71. data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +2 -0
  72. data/lib/solargraph/language_server/message/text_document/references.rb +2 -0
  73. data/lib/solargraph/language_server/message/text_document/rename.rb +2 -0
  74. data/lib/solargraph/language_server/message/text_document/signature_help.rb +7 -1
  75. data/lib/solargraph/language_server/message/workspace.rb +2 -0
  76. data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +2 -0
  77. data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +2 -0
  78. data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +2 -0
  79. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +2 -0
  80. data/lib/solargraph/language_server/message_types.rb +14 -12
  81. data/lib/solargraph/language_server/request.rb +2 -0
  82. data/lib/solargraph/language_server/symbol_kinds.rb +2 -0
  83. data/lib/solargraph/language_server/transport.rb +2 -0
  84. data/lib/solargraph/language_server/transport/adapter.rb +2 -0
  85. data/lib/solargraph/language_server/transport/data_reader.rb +3 -1
  86. data/lib/solargraph/language_server/uri_helpers.rb +2 -0
  87. data/lib/solargraph/library.rb +2 -0
  88. data/lib/solargraph/location.rb +2 -0
  89. data/lib/solargraph/logging.rb +2 -0
  90. data/lib/solargraph/page.rb +2 -0
  91. data/lib/solargraph/pin.rb +3 -20
  92. data/lib/solargraph/pin/attribute.rb +2 -4
  93. data/lib/solargraph/pin/base.rb +3 -5
  94. data/lib/solargraph/pin/base_method.rb +2 -4
  95. data/lib/solargraph/pin/base_variable.rb +2 -0
  96. data/lib/solargraph/pin/block.rb +2 -4
  97. data/lib/solargraph/pin/class_variable.rb +2 -3
  98. data/lib/solargraph/pin/closure.rb +9 -0
  99. data/lib/solargraph/pin/common.rb +3 -5
  100. data/lib/solargraph/pin/constant.rb +2 -4
  101. data/lib/solargraph/pin/conversions.rb +4 -2
  102. data/lib/solargraph/pin/documenting.rb +2 -0
  103. data/lib/solargraph/pin/duck_method.rb +2 -0
  104. data/lib/solargraph/pin/global_variable.rb +2 -3
  105. data/lib/solargraph/pin/instance_variable.rb +2 -4
  106. data/lib/solargraph/pin/keyword.rb +2 -4
  107. data/lib/solargraph/pin/keyword_param.rb +8 -0
  108. data/lib/solargraph/pin/local_variable.rb +2 -4
  109. data/lib/solargraph/pin/localized.rb +2 -0
  110. data/lib/solargraph/pin/method.rb +14 -4
  111. data/lib/solargraph/pin/method_alias.rb +2 -4
  112. data/lib/solargraph/pin/namespace.rb +22 -14
  113. data/lib/solargraph/pin/parameter.rb +4 -6
  114. data/lib/solargraph/pin/proxy_type.rb +2 -0
  115. data/lib/solargraph/pin/reference.rb +2 -0
  116. data/lib/solargraph/pin/reference/extend.rb +2 -3
  117. data/lib/solargraph/pin/reference/include.rb +2 -3
  118. data/lib/solargraph/pin/reference/override.rb +12 -3
  119. data/lib/solargraph/pin/reference/require.rb +2 -4
  120. data/lib/solargraph/pin/reference/superclass.rb +2 -3
  121. data/lib/solargraph/pin/singleton.rb +2 -0
  122. data/lib/solargraph/pin/symbol.rb +2 -4
  123. data/lib/solargraph/pin/yard_pin.rb +2 -0
  124. data/lib/solargraph/pin/yard_pin/constant.rb +7 -3
  125. data/lib/solargraph/pin/yard_pin/method.rb +12 -10
  126. data/lib/solargraph/pin/yard_pin/namespace.rb +9 -4
  127. data/lib/solargraph/pin/yard_pin/yard_mixin.rb +30 -3
  128. data/lib/solargraph/position.rb +2 -0
  129. data/lib/solargraph/range.rb +2 -0
  130. data/lib/solargraph/server_methods.rb +2 -0
  131. data/lib/solargraph/shell.rb +33 -2
  132. data/lib/solargraph/source.rb +2 -0
  133. data/lib/solargraph/source/chain.rb +2 -0
  134. data/lib/solargraph/source/chain/call.rb +63 -14
  135. data/lib/solargraph/source/chain/class_variable.rb +2 -0
  136. data/lib/solargraph/source/chain/constant.rb +18 -11
  137. data/lib/solargraph/source/chain/global_variable.rb +2 -0
  138. data/lib/solargraph/source/chain/head.rb +2 -0
  139. data/lib/solargraph/source/chain/instance_variable.rb +2 -0
  140. data/lib/solargraph/source/chain/link.rb +2 -0
  141. data/lib/solargraph/source/chain/literal.rb +2 -0
  142. data/lib/solargraph/source/chain/or.rb +2 -0
  143. data/lib/solargraph/source/chain/variable.rb +2 -0
  144. data/lib/solargraph/source/change.rb +2 -0
  145. data/lib/solargraph/source/cursor.rb +4 -1
  146. data/lib/solargraph/source/encoding_fixes.rb +2 -0
  147. data/lib/solargraph/source/flawed_builder.rb +15 -13
  148. data/lib/solargraph/source/node_chainer.rb +2 -0
  149. data/lib/solargraph/source/node_methods.rb +9 -5
  150. data/lib/solargraph/source/source_chainer.rb +2 -0
  151. data/lib/solargraph/source/updater.rb +52 -50
  152. data/lib/solargraph/source_map.rb +15 -7
  153. data/lib/solargraph/source_map/clip.rb +35 -3
  154. data/lib/solargraph/source_map/completion.rb +2 -0
  155. data/lib/solargraph/source_map/mapper.rb +2 -0
  156. data/lib/solargraph/source_map/node_processor.rb +2 -0
  157. data/lib/solargraph/source_map/node_processor/alias_node.rb +2 -0
  158. data/lib/solargraph/source_map/node_processor/args_node.rb +2 -0
  159. data/lib/solargraph/source_map/node_processor/base.rb +5 -3
  160. data/lib/solargraph/source_map/node_processor/begin_node.rb +2 -0
  161. data/lib/solargraph/source_map/node_processor/block_node.rb +2 -0
  162. data/lib/solargraph/source_map/node_processor/casgn_node.rb +2 -0
  163. data/lib/solargraph/source_map/node_processor/cvasgn_node.rb +2 -0
  164. data/lib/solargraph/source_map/node_processor/def_node.rb +2 -0
  165. data/lib/solargraph/source_map/node_processor/defs_node.rb +2 -0
  166. data/lib/solargraph/source_map/node_processor/gvasgn_node.rb +2 -0
  167. data/lib/solargraph/source_map/node_processor/ivasgn_node.rb +3 -1
  168. data/lib/solargraph/source_map/node_processor/lvasgn_node.rb +2 -0
  169. data/lib/solargraph/source_map/node_processor/namespace_node.rb +4 -1
  170. data/lib/solargraph/source_map/node_processor/orasgn_node.rb +2 -0
  171. data/lib/solargraph/source_map/node_processor/resbody_node.rb +2 -0
  172. data/lib/solargraph/source_map/node_processor/sclass_node.rb +2 -0
  173. data/lib/solargraph/source_map/node_processor/send_node.rb +11 -6
  174. data/lib/solargraph/source_map/node_processor/sym_node.rb +2 -0
  175. data/lib/solargraph/source_map/region.rb +2 -0
  176. data/lib/solargraph/type_checker.rb +35 -17
  177. data/lib/solargraph/type_checker/param_def.rb +2 -0
  178. data/lib/solargraph/type_checker/problem.rb +2 -0
  179. data/lib/solargraph/version.rb +3 -1
  180. data/lib/solargraph/views/document.erb +3 -3
  181. data/lib/solargraph/views/environment.erb +3 -0
  182. data/lib/solargraph/workspace.rb +5 -1
  183. data/lib/solargraph/workspace/config.rb +14 -0
  184. data/lib/solargraph/yard_map.rb +64 -5
  185. data/lib/solargraph/yard_map/cache.rb +2 -0
  186. data/lib/solargraph/yard_map/core_docs.rb +2 -0
  187. data/lib/solargraph/yard_map/core_gen.rb +2 -0
  188. data/lib/solargraph/yard_map/mapper.rb +15 -14
  189. data/lib/solargraph/yard_map/rdoc_to_yard.rb +129 -0
  190. data/lib/yard-solargraph.rb +8 -0
  191. metadata +11 -2
@@ -1,13 +1,15 @@
1
- module Solargraph
2
- module LanguageServer
3
- module Message
4
- module TextDocument
5
- class DidOpen < Base
6
- def process
7
- host.open params['textDocument']['uri'], params['textDocument']['text'], params['textDocument']['version']
8
- end
9
- end
10
- end
11
- end
12
- end
13
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Solargraph
4
+ module LanguageServer
5
+ module Message
6
+ module TextDocument
7
+ class DidOpen < Base
8
+ def process
9
+ host.open params['textDocument']['uri'], params['textDocument']['text'], params['textDocument']['version']
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,15 +1,17 @@
1
- module Solargraph
2
- module LanguageServer
3
- module Message
4
- module TextDocument
5
- class DidSave < Base
6
- def process
7
- # @todo The server might not need to do anything in response to
8
- # this notification. See https://github.com/castwide/solargraph/issues/73
9
- # host.save params
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 TextDocument
7
+ class DidSave < Base
8
+ def process
9
+ # @todo The server might not need to do anything in response to
10
+ # this notification. See https://github.com/castwide/solargraph/issues/73
11
+ # host.save params
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Solargraph::LanguageServer::Message::TextDocument::DocumentSymbol < Solargraph::LanguageServer::Message::Base
2
4
  include Solargraph::LanguageServer::UriHelpers
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open3'
2
4
 
3
5
  module Solargraph
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open3'
2
4
  require 'shellwords'
3
5
 
@@ -12,7 +14,12 @@ module Solargraph
12
14
  original = host.read_text(params['textDocument']['uri'])
13
15
  cmd = "rubocop -a -f fi -s #{Shellwords.escape(filename)}"
14
16
  o, e, s = Open3.capture3(cmd, stdin_data: original)
15
- lines = o.lines
17
+ return format(original, o) if o && !o.empty?
18
+ set_error(Solargraph::LanguageServer::ErrorCodes::INTERNAL_ERROR, e)
19
+ end
20
+
21
+ def format original, result
22
+ lines = result.lines
16
23
  index = lines.index{|l| l.start_with?('====================')}
17
24
  formatted = lines[index+1..-1].join
18
25
  # The response is required to send an explicit range. Text edits
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
  require 'htmlentities'
3
5
 
@@ -18,7 +20,7 @@ module Solargraph
18
20
  if !this_link.nil? && this_link != last_link
19
21
  parts.push this_link
20
22
  end
21
- parts.push HTMLEntities.new.encode(pin.detail) unless pin.kind == Solargraph::Pin::NAMESPACE or pin.detail.nil?
23
+ parts.push HTMLEntities.new.encode(pin.detail) unless pin.is_a?(Pin::Namespace) || pin.detail.nil?
22
24
  parts.push pin.documentation unless pin.documentation.nil? or pin.documentation.empty?
23
25
  contents.push parts.join("\n\n") unless parts.empty?
24
26
  last_link = this_link unless this_link.nil?
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module LanguageServer
3
5
  module Message
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph::LanguageServer::Message::TextDocument
2
4
  class PrepareRename < Base
3
5
  def process
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph::LanguageServer::Message::TextDocument
2
4
  class References < Base
3
5
  def process
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph::LanguageServer::Message::TextDocument
2
4
  class Rename < Base
3
5
  def process
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module LanguageServer
3
5
  module Message
@@ -7,7 +9,11 @@ module Solargraph
7
9
  line = params['position']['line']
8
10
  col = params['position']['character']
9
11
  suggestions = host.signatures_at(params['textDocument']['uri'], line, col)
10
- info = suggestions.map(&:signature_help)
12
+ info = []
13
+ suggestions.each do |pin|
14
+ info.concat pin.overloads.map(&:signature_help)
15
+ info.push pin.signature_help
16
+ end
11
17
  set_result({
12
18
  signatures: info
13
19
  })
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module LanguageServer
3
5
  module Message
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Solargraph::LanguageServer::Message::Workspace
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Solargraph::LanguageServer::Message::Workspace
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
 
3
5
  module Solargraph::LanguageServer::Message::Workspace
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Solargraph::LanguageServer::Message::Workspace::WorkspaceSymbol < Solargraph::LanguageServer::Message::Base
2
4
  include Solargraph::LanguageServer::UriHelpers
3
5
 
@@ -1,12 +1,14 @@
1
- module Solargraph
2
- module LanguageServer
3
- # The MessageType constants from the language server specification.
4
- #
5
- module MessageTypes
6
- ERROR = 1
7
- WARNING = 2
8
- INFO = 3
9
- LOG = 4
10
- end
11
- end
12
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Solargraph
4
+ module LanguageServer
5
+ # The MessageType constants from the language server specification.
6
+ #
7
+ module MessageTypes
8
+ ERROR = 1
9
+ WARNING = 2
10
+ INFO = 3
11
+ LOG = 4
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module LanguageServer
3
5
  class Request
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module LanguageServer
3
5
  # The SymbolKind constants for the language server protocol.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module LanguageServer
3
5
  # The Transport namespace contains concrete implementations of
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'backport'
2
4
 
3
5
  module Solargraph
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module LanguageServer
3
5
  module Transport
@@ -5,7 +7,7 @@ module Solargraph
5
7
  def initialize
6
8
  @in_header = true
7
9
  @content_length = 0
8
- @buffer = ''
10
+ @buffer = String.new
9
11
  end
10
12
 
11
13
  # Declare a block to be executed for each message received from the
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module LanguageServer
3
5
  # Methods to handle conversions between file URIs and paths.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  # A Library handles coordination between a Workspace and an ApiMap.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  # A section of text identified by its filename and range.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logger'
2
4
 
3
5
  module Solargraph
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ostruct'
2
4
  require 'tilt'
3
5
  require 'kramdown'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  # The namespace for pins used in maps.
3
5
  #
@@ -28,27 +30,8 @@ module Solargraph
28
30
  autoload :DuckMethod, 'solargraph/pin/duck_method'
29
31
  autoload :YardPin, 'solargraph/pin/yard_pin'
30
32
  autoload :Singleton, 'solargraph/pin/singleton'
33
+ autoload :KeywordParam, 'solargraph/pin/keyword_param'
31
34
 
32
- ATTRIBUTE = 1
33
- CLASS_VARIABLE = 2
34
- CONSTANT = 3
35
- GLOBAL_VARIABLE = 4
36
- INSTANCE_VARIABLE = 5
37
- KEYWORD = 6
38
- LOCAL_VARIABLE = 7
39
- METHOD = 8
40
- NAMESPACE = 9
41
- SYMBOL = 10
42
- BLOCK = 11
43
- BLOCK_PARAMETER = 12
44
- REQUIRE_REFERENCE = 13
45
- SUPERCLASS_REFERENCE = 14
46
- INCLUDE_REFERENCE = 15
47
- EXTEND_REFERENCE = 16
48
- METHOD_ALIAS = 17
49
- OVERRIDE_REFERENCE = 18
50
-
51
- # ROOT_PIN = Pin::Namespace.new(nil, '', '', '', :class, :public)
52
35
  ROOT_PIN = Pin::Namespace.new(type: :class, name: '', closure: nil)
53
36
  end
54
37
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module Pin
3
5
  class Attribute < BaseMethod
@@ -10,10 +12,6 @@ module Solargraph
10
12
  @access = access
11
13
  end
12
14
 
13
- def kind
14
- Solargraph::Pin::ATTRIBUTE
15
- end
16
-
17
15
  def completion_item_kind
18
16
  Solargraph::LanguageServer::CompletionItemKinds::PROPERTY
19
17
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module Pin
3
5
  # The base class for map pins.
@@ -16,9 +18,6 @@ module Solargraph
16
18
  # @return [String]
17
19
  attr_reader :name
18
20
 
19
- # @return [Integer]
20
- attr_reader :kind
21
-
22
21
  # @return [String]
23
22
  attr_reader :path
24
23
 
@@ -27,9 +26,8 @@ module Solargraph
27
26
  # @param closure [String]
28
27
  # @param name [String]
29
28
  # @param comments [String]
30
- def initialize location: nil, kind: KEYWORD, closure: nil, name: '', comments: ''
29
+ def initialize location: nil, closure: nil, name: '', comments: ''
31
30
  @location = location
32
- @kind = kind
33
31
  @closure = closure
34
32
  @name = name
35
33
  @comments = comments
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module Pin
3
5
  # The base class for method and attribute pins.
@@ -43,10 +45,6 @@ module Solargraph
43
45
  # @return [ComplexType]
44
46
  def generate_complex_type
45
47
  tag = docstring.tag(:return)
46
- if tag.nil?
47
- ol = docstring.tag(:overload)
48
- tag = ol.tag(:return) unless ol.nil?
49
- end
50
48
  return ComplexType::UNDEFINED if tag.nil? or tag.types.nil? or tag.types.empty?
51
49
  ComplexType.try_parse *tag.types
52
50
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module Pin
3
5
  class BaseVariable < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module Pin
3
5
  class Block < Closure
@@ -25,10 +27,6 @@ module Solargraph
25
27
  @binder || context
26
28
  end
27
29
 
28
- def kind
29
- Pin::BLOCK
30
- end
31
-
32
30
  # @return [Array<String>]
33
31
  def parameters
34
32
  @parameters ||= []
@@ -1,9 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module Pin
3
5
  class ClassVariable < BaseVariable
4
- def kind
5
- Pin::CLASS_VARIABLE
6
- end
7
6
  end
8
7
  end
9
8
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Solargraph
2
4
  module Pin
3
5
  class Closure < Base
@@ -23,6 +25,13 @@ module Solargraph
23
25
  def binder
24
26
  @binder || context
25
27
  end
28
+
29
+ # @return [Array<String>]
30
+ def gates
31
+ # @todo This check might not be necessary. There should always be a
32
+ # root pin
33
+ closure ? closure.gates : ['']
34
+ end
26
35
  end
27
36
  end
28
37
  end