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,9 +1,9 @@
1
- module Solargraph
2
- module Pin
3
- class ClassVariable < BaseVariable
4
- def kind
5
- Pin::CLASS_VARIABLE
6
- end
7
- end
8
- end
9
- end
1
+ module Solargraph
2
+ module Pin
3
+ class ClassVariable < BaseVariable
4
+ def kind
5
+ Pin::CLASS_VARIABLE
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,30 +1,30 @@
1
- module Solargraph
2
- module Pin
3
- class Constant < BaseVariable
4
- attr_reader :visibility
5
-
6
- def initialize location, namespace, name, comments, assignment, literal, context, visibility
7
- super(location, namespace, name, comments, assignment, literal, context)
8
- @visibility = visibility
9
- end
10
-
11
- def kind
12
- Pin::CONSTANT
13
- end
14
-
15
- def completion_item_kind
16
- Solargraph::LanguageServer::CompletionItemKinds::CONSTANT
17
- end
18
-
19
- # @return [Integer]
20
- def symbol_kind
21
- LanguageServer::SymbolKinds::CONSTANT
22
- end
23
-
24
- def path
25
- return name if namespace.empty?
26
- "#{namespace}::#{name}"
27
- end
28
- end
29
- end
30
- end
1
+ module Solargraph
2
+ module Pin
3
+ class Constant < BaseVariable
4
+ attr_reader :visibility
5
+
6
+ def initialize location, namespace, name, comments, assignment, literal, context, visibility
7
+ super(location, namespace, name, comments, assignment, literal, context)
8
+ @visibility = visibility
9
+ end
10
+
11
+ def kind
12
+ Pin::CONSTANT
13
+ end
14
+
15
+ def completion_item_kind
16
+ Solargraph::LanguageServer::CompletionItemKinds::CONSTANT
17
+ end
18
+
19
+ # @return [Integer]
20
+ def symbol_kind
21
+ LanguageServer::SymbolKinds::CONSTANT
22
+ end
23
+
24
+ def path
25
+ return name if namespace.empty?
26
+ "#{namespace}::#{name}"
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,79 +1,79 @@
1
- module Solargraph
2
- module Pin
3
- # @todo Move this stuff. It should be the responsibility of the language server.
4
- module Conversions
5
- # @return [Hash]
6
- def completion_item
7
- @completion_item ||= {
8
- label: name,
9
- kind: completion_item_kind,
10
- detail: detail,
11
- data: {
12
- path: path,
13
- return_type: return_type.tag,
14
- location: (location ? location.to_hash : nil),
15
- deprecated: deprecated?
16
- }
17
- }
18
- end
19
-
20
- # @return [Hash]
21
- def resolve_completion_item
22
- if @resolve_completion_item.nil?
23
- extra = {}
24
- alldoc = ''
25
- alldoc += link_documentation unless link_documentation.nil?
26
- alldoc += "\n\n" unless alldoc.empty?
27
- alldoc += documentation unless documentation.nil?
28
- extra[:documentation] = alldoc unless alldoc.empty?
29
- @resolve_completion_item = completion_item.merge(extra)
30
- end
31
- @resolve_completion_item
32
- end
33
-
34
- # @return [Hash]
35
- def signature_help
36
- @signature_help ||= {
37
- label: name + '(' + parameters.join(', ') + ')',
38
- documentation: documentation
39
- }
40
- end
41
-
42
- # @return [String]
43
- def detail
44
- if @detail.nil?
45
- @detail = ''
46
- @detail += "(#{parameters.join(', ')}) " unless kind != Pin::METHOD or parameters.empty?
47
- @detail += "=> #{return_complex_type}" unless return_complex_type.undefined?
48
- @detail.strip!
49
- end
50
- return nil if @detail.empty?
51
- @detail
52
- end
53
-
54
- # Get a markdown-flavored link to a documentation page.
55
- #
56
- # @return [String]
57
- def link_documentation
58
- @link_documentation ||= generate_link
59
- end
60
-
61
- def reset_conversions
62
- @completion_item = nil
63
- @resolve_completion_item = nil
64
- @signature_help = nil
65
- @detail = nil
66
- @link_documentation = nil
67
- end
68
-
69
- private
70
-
71
- def generate_link
72
- this_path = path || return_type.tag
73
- return nil if this_path.nil? || this_path == 'undefined'
74
- # return this_path if comments.empty?
75
- "[#{this_path.gsub('_', '\\\\_')}](solargraph:/document?query=#{URI.escape(this_path)})"
76
- end
77
- end
78
- end
79
- end
1
+ module Solargraph
2
+ module Pin
3
+ # @todo Move this stuff. It should be the responsibility of the language server.
4
+ module Conversions
5
+ # @return [Hash]
6
+ def completion_item
7
+ @completion_item ||= {
8
+ label: name,
9
+ kind: completion_item_kind,
10
+ detail: detail,
11
+ data: {
12
+ path: path,
13
+ return_type: return_type.tag,
14
+ location: (location ? location.to_hash : nil),
15
+ deprecated: deprecated?
16
+ }
17
+ }
18
+ end
19
+
20
+ # @return [Hash]
21
+ def resolve_completion_item
22
+ if @resolve_completion_item.nil?
23
+ extra = {}
24
+ alldoc = ''
25
+ alldoc += link_documentation unless link_documentation.nil?
26
+ alldoc += "\n\n" unless alldoc.empty?
27
+ alldoc += documentation unless documentation.nil?
28
+ extra[:documentation] = alldoc unless alldoc.empty?
29
+ @resolve_completion_item = completion_item.merge(extra)
30
+ end
31
+ @resolve_completion_item
32
+ end
33
+
34
+ # @return [Hash]
35
+ def signature_help
36
+ @signature_help ||= {
37
+ label: name + '(' + parameters.join(', ') + ')',
38
+ documentation: documentation
39
+ }
40
+ end
41
+
42
+ # @return [String]
43
+ def detail
44
+ if @detail.nil?
45
+ @detail = ''
46
+ @detail += "(#{parameters.join(', ')}) " unless kind != Pin::METHOD or parameters.empty?
47
+ @detail += "=> #{return_complex_type}" unless return_complex_type.undefined?
48
+ @detail.strip!
49
+ end
50
+ return nil if @detail.empty?
51
+ @detail
52
+ end
53
+
54
+ # Get a markdown-flavored link to a documentation page.
55
+ #
56
+ # @return [String]
57
+ def link_documentation
58
+ @link_documentation ||= generate_link
59
+ end
60
+
61
+ def reset_conversions
62
+ @completion_item = nil
63
+ @resolve_completion_item = nil
64
+ @signature_help = nil
65
+ @detail = nil
66
+ @link_documentation = nil
67
+ end
68
+
69
+ private
70
+
71
+ def generate_link
72
+ this_path = path || return_type.tag
73
+ return nil if this_path.nil? || this_path == 'undefined'
74
+ # return this_path if comments.empty?
75
+ "[#{this_path.gsub('_', '\\\\_')}](solargraph:/document?query=#{URI.escape(this_path)})"
76
+ end
77
+ end
78
+ end
79
+ end
@@ -1,41 +1,41 @@
1
- require 'rdoc'
2
- require 'reverse_markdown'
3
- require 'kramdown'
4
-
5
- module Solargraph
6
- module Pin
7
- # A module to add the Pin::Base#documentation method.
8
- #
9
- module Documenting
10
- # @return [String]
11
- def documentation
12
- @documentation ||= begin
13
- html = Kramdown::Document.new(
14
- normalize_indentation(docstring.to_s),
15
- input: 'GFM',
16
- entity_output: :symbolic,
17
- syntax_highlighter: nil
18
- ).to_html
19
- ReverseMarkdown.convert(html, github_flavored: true).lines.map(&:rstrip).join("\n")
20
- end
21
- end
22
-
23
- private
24
-
25
- # @param text [String]
26
- # @return [String]
27
- def normalize_indentation text
28
- text.lines.map { |l| remove_odd_spaces(l).gsub(/^ /, "\t") }.join
29
- end
30
-
31
- # @param line [String]
32
- # @return [String]
33
- def remove_odd_spaces line
34
- return line unless line.start_with?(' ')
35
- spaces = line.match(/^ +/)[0].length
36
- return line unless spaces.odd?
37
- line[1..-1]
38
- end
39
- end
40
- end
41
- end
1
+ require 'rdoc'
2
+ require 'reverse_markdown'
3
+ require 'kramdown'
4
+
5
+ module Solargraph
6
+ module Pin
7
+ # A module to add the Pin::Base#documentation method.
8
+ #
9
+ module Documenting
10
+ # @return [String]
11
+ def documentation
12
+ @documentation ||= begin
13
+ html = Kramdown::Document.new(
14
+ normalize_indentation(docstring.to_s),
15
+ input: 'GFM',
16
+ entity_output: :symbolic,
17
+ syntax_highlighter: nil
18
+ ).to_html
19
+ ReverseMarkdown.convert(html, github_flavored: true).lines.map(&:rstrip).join("\n")
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ # @param text [String]
26
+ # @return [String]
27
+ def normalize_indentation text
28
+ text.lines.map { |l| remove_odd_spaces(l).gsub(/^ /, "\t") }.join
29
+ end
30
+
31
+ # @param line [String]
32
+ # @return [String]
33
+ def remove_odd_spaces line
34
+ return line unless line.start_with?(' ')
35
+ spaces = line.match(/^ +/)[0].length
36
+ return line unless spaces.odd?
37
+ line[1..-1]
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,14 +1,14 @@
1
- module Solargraph
2
- module Pin
3
- # DuckMethod pins are used to add completion items for type tags that
4
- # use duck typing, e.g., `@param file [#read]`.
5
- #
6
- class DuckMethod < Pin::Method
7
- # @param location [Solargraph::Location]
8
- # @param name [String]
9
- def initialize location, name
10
- super(location, '', name, nil, :instance, :public, [])
11
- end
12
- end
13
- end
14
- end
1
+ module Solargraph
2
+ module Pin
3
+ # DuckMethod pins are used to add completion items for type tags that
4
+ # use duck typing, e.g., `@param file [#read]`.
5
+ #
6
+ class DuckMethod < Pin::Method
7
+ # @param location [Solargraph::Location]
8
+ # @param name [String]
9
+ def initialize location, name
10
+ super(location, '', name, nil, :instance, :public, [])
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,9 +1,9 @@
1
- module Solargraph
2
- module Pin
3
- class GlobalVariable < BaseVariable
4
- def kind
5
- Pin::GLOBAL_VARIABLE
6
- end
7
- end
8
- end
9
- end
1
+ module Solargraph
2
+ module Pin
3
+ class GlobalVariable < BaseVariable
4
+ def kind
5
+ Pin::GLOBAL_VARIABLE
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,9 +1,9 @@
1
- module Solargraph
2
- module Pin
3
- class InstanceVariable < BaseVariable
4
- def kind
5
- Pin::INSTANCE_VARIABLE
6
- end
7
- end
8
- end
9
- end
1
+ module Solargraph
2
+ module Pin
3
+ class InstanceVariable < BaseVariable
4
+ def kind
5
+ Pin::INSTANCE_VARIABLE
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,17 +1,17 @@
1
- module Solargraph
2
- module Pin
3
- class Keyword < Base
4
- def initialize name
5
- @name = name
6
- end
7
-
8
- def name
9
- @name
10
- end
11
-
12
- def kind
13
- Solargraph::Pin::KEYWORD
14
- end
15
- end
16
- end
17
- end
1
+ module Solargraph
2
+ module Pin
3
+ class Keyword < Base
4
+ def initialize name
5
+ @name = name
6
+ end
7
+
8
+ def name
9
+ @name
10
+ end
11
+
12
+ def kind
13
+ Solargraph::Pin::KEYWORD
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,23 +1,23 @@
1
- module Solargraph
2
- module Pin
3
- class LocalVariable < BaseVariable
4
- include Localized
5
-
6
- def initialize location, namespace, name, comments, assignment, literal, context, block, presence
7
- super(location, namespace, name, comments, assignment, literal, context)
8
- @block = block
9
- @presence = presence
10
- end
11
-
12
- def kind
13
- Pin::LOCAL_VARIABLE
14
- end
15
-
16
- def try_merge! pin
17
- return false unless super
18
- @presence = pin.presence
19
- true
20
- end
21
- end
22
- end
23
- end
1
+ module Solargraph
2
+ module Pin
3
+ class LocalVariable < BaseVariable
4
+ include Localized
5
+
6
+ def initialize location, namespace, name, comments, assignment, literal, context, block, presence
7
+ super(location, namespace, name, comments, assignment, literal, context)
8
+ @block = block
9
+ @presence = presence
10
+ end
11
+
12
+ def kind
13
+ Pin::LOCAL_VARIABLE
14
+ end
15
+
16
+ def try_merge! pin
17
+ return false unless super
18
+ @presence = pin.presence
19
+ true
20
+ end
21
+ end
22
+ end
23
+ end