solargraph 0.56.0 → 0.58.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 (191) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +2 -0
  3. data/.github/workflows/linting.yml +127 -0
  4. data/.github/workflows/plugins.yml +183 -7
  5. data/.github/workflows/rspec.yml +55 -5
  6. data/.github/workflows/typecheck.yml +6 -3
  7. data/.gitignore +6 -0
  8. data/.overcommit.yml +72 -0
  9. data/.rspec +1 -0
  10. data/.rubocop.yml +66 -0
  11. data/.rubocop_todo.yml +1279 -0
  12. data/.yardopts +1 -0
  13. data/CHANGELOG.md +92 -1
  14. data/README.md +8 -4
  15. data/Rakefile +125 -13
  16. data/bin/solargraph +3 -0
  17. data/lib/solargraph/api_map/cache.rb +110 -109
  18. data/lib/solargraph/api_map/constants.rb +279 -0
  19. data/lib/solargraph/api_map/index.rb +193 -175
  20. data/lib/solargraph/api_map/source_to_yard.rb +97 -88
  21. data/lib/solargraph/api_map/store.rb +384 -266
  22. data/lib/solargraph/api_map.rb +945 -973
  23. data/lib/solargraph/bench.rb +1 -0
  24. data/lib/solargraph/complex_type/type_methods.rb +228 -222
  25. data/lib/solargraph/complex_type/unique_type.rb +482 -475
  26. data/lib/solargraph/complex_type.rb +444 -423
  27. data/lib/solargraph/convention/active_support_concern.rb +111 -0
  28. data/lib/solargraph/convention/base.rb +17 -0
  29. data/lib/solargraph/convention/data_definition/data_assignment_node.rb +61 -0
  30. data/lib/solargraph/convention/data_definition/data_definition_node.rb +91 -0
  31. data/lib/solargraph/convention/data_definition.rb +105 -0
  32. data/lib/solargraph/convention/gemspec.rb +3 -2
  33. data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +61 -60
  34. data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +102 -100
  35. data/lib/solargraph/convention/struct_definition.rb +164 -101
  36. data/lib/solargraph/convention.rb +32 -2
  37. data/lib/solargraph/diagnostics/require_not_found.rb +53 -53
  38. data/lib/solargraph/diagnostics/rubocop.rb +118 -113
  39. data/lib/solargraph/diagnostics/rubocop_helpers.rb +68 -66
  40. data/lib/solargraph/diagnostics/type_check.rb +55 -55
  41. data/lib/solargraph/doc_map.rb +439 -405
  42. data/lib/solargraph/environ.rb +9 -2
  43. data/lib/solargraph/equality.rb +34 -33
  44. data/lib/solargraph/gem_pins.rb +98 -88
  45. data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
  46. data/lib/solargraph/language_server/host/dispatch.rb +130 -128
  47. data/lib/solargraph/language_server/host/message_worker.rb +112 -109
  48. data/lib/solargraph/language_server/host/sources.rb +99 -99
  49. data/lib/solargraph/language_server/host.rb +878 -871
  50. data/lib/solargraph/language_server/message/base.rb +2 -1
  51. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +114 -114
  52. data/lib/solargraph/language_server/message/extended/document.rb +23 -23
  53. data/lib/solargraph/language_server/message/text_document/completion.rb +56 -56
  54. data/lib/solargraph/language_server/message/text_document/definition.rb +40 -38
  55. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +26 -26
  56. data/lib/solargraph/language_server/message/text_document/formatting.rb +148 -131
  57. data/lib/solargraph/language_server/message/text_document/hover.rb +58 -58
  58. data/lib/solargraph/language_server/message/text_document/signature_help.rb +24 -24
  59. data/lib/solargraph/language_server/message/text_document/type_definition.rb +25 -24
  60. data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +2 -0
  61. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +23 -23
  62. data/lib/solargraph/language_server/progress.rb +8 -0
  63. data/lib/solargraph/language_server/request.rb +4 -1
  64. data/lib/solargraph/library.rb +683 -666
  65. data/lib/solargraph/location.rb +82 -79
  66. data/lib/solargraph/logging.rb +37 -28
  67. data/lib/solargraph/page.rb +3 -0
  68. data/lib/solargraph/parser/comment_ripper.rb +69 -62
  69. data/lib/solargraph/parser/flow_sensitive_typing.rb +255 -227
  70. data/lib/solargraph/parser/node_processor/base.rb +92 -87
  71. data/lib/solargraph/parser/node_processor.rb +62 -46
  72. data/lib/solargraph/parser/parser_gem/class_methods.rb +149 -159
  73. data/lib/solargraph/parser/parser_gem/flawed_builder.rb +1 -0
  74. data/lib/solargraph/parser/parser_gem/node_chainer.rb +166 -164
  75. data/lib/solargraph/parser/parser_gem/node_methods.rb +486 -497
  76. data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +22 -21
  77. data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +59 -59
  78. data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +15 -15
  79. data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +46 -45
  80. data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +1 -21
  81. data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +53 -53
  82. data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +23 -21
  83. data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +40 -40
  84. data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +29 -29
  85. data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +59 -53
  86. data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +0 -22
  87. data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +98 -41
  88. data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +17 -16
  89. data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +38 -37
  90. data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +52 -43
  91. data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +291 -271
  92. data/lib/solargraph/parser/parser_gem/node_processors/sym_node.rb +1 -0
  93. data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +29 -29
  94. data/lib/solargraph/parser/parser_gem/node_processors.rb +70 -66
  95. data/lib/solargraph/parser/region.rb +69 -66
  96. data/lib/solargraph/parser/snippet.rb +17 -15
  97. data/lib/solargraph/pin/base.rb +729 -651
  98. data/lib/solargraph/pin/base_variable.rb +126 -125
  99. data/lib/solargraph/pin/block.rb +104 -103
  100. data/lib/solargraph/pin/breakable.rb +9 -9
  101. data/lib/solargraph/pin/callable.rb +231 -218
  102. data/lib/solargraph/pin/closure.rb +72 -74
  103. data/lib/solargraph/pin/common.rb +79 -75
  104. data/lib/solargraph/pin/constant.rb +2 -0
  105. data/lib/solargraph/pin/conversions.rb +123 -123
  106. data/lib/solargraph/pin/delegated_method.rb +120 -120
  107. data/lib/solargraph/pin/documenting.rb +114 -114
  108. data/lib/solargraph/pin/instance_variable.rb +34 -34
  109. data/lib/solargraph/pin/keyword.rb +20 -20
  110. data/lib/solargraph/pin/local_variable.rb +75 -76
  111. data/lib/solargraph/pin/method.rb +672 -651
  112. data/lib/solargraph/pin/method_alias.rb +34 -31
  113. data/lib/solargraph/pin/namespace.rb +115 -115
  114. data/lib/solargraph/pin/parameter.rb +275 -261
  115. data/lib/solargraph/pin/proxy_type.rb +39 -35
  116. data/lib/solargraph/pin/reference/override.rb +47 -33
  117. data/lib/solargraph/pin/reference/superclass.rb +15 -10
  118. data/lib/solargraph/pin/reference.rb +39 -22
  119. data/lib/solargraph/pin/search.rb +61 -56
  120. data/lib/solargraph/pin/signature.rb +61 -59
  121. data/lib/solargraph/pin/symbol.rb +53 -48
  122. data/lib/solargraph/pin/until.rb +18 -18
  123. data/lib/solargraph/pin/while.rb +18 -18
  124. data/lib/solargraph/pin.rb +44 -44
  125. data/lib/solargraph/pin_cache.rb +245 -185
  126. data/lib/solargraph/position.rb +132 -116
  127. data/lib/solargraph/range.rb +112 -107
  128. data/lib/solargraph/rbs_map/conversions.rb +823 -773
  129. data/lib/solargraph/rbs_map/core_fills.rb +18 -0
  130. data/lib/solargraph/rbs_map/core_map.rb +58 -51
  131. data/lib/solargraph/rbs_map/stdlib_map.rb +43 -43
  132. data/lib/solargraph/rbs_map.rb +163 -150
  133. data/lib/solargraph/shell.rb +352 -268
  134. data/lib/solargraph/source/chain/call.rb +337 -333
  135. data/lib/solargraph/source/chain/constant.rb +26 -89
  136. data/lib/solargraph/source/chain/hash.rb +34 -34
  137. data/lib/solargraph/source/chain/if.rb +28 -28
  138. data/lib/solargraph/source/chain/instance_variable.rb +13 -13
  139. data/lib/solargraph/source/chain/link.rb +11 -2
  140. data/lib/solargraph/source/chain/literal.rb +48 -48
  141. data/lib/solargraph/source/chain/or.rb +23 -23
  142. data/lib/solargraph/source/chain.rb +291 -282
  143. data/lib/solargraph/source/change.rb +82 -82
  144. data/lib/solargraph/source/cursor.rb +166 -167
  145. data/lib/solargraph/source/encoding_fixes.rb +23 -23
  146. data/lib/solargraph/source/source_chainer.rb +194 -194
  147. data/lib/solargraph/source/updater.rb +55 -55
  148. data/lib/solargraph/source.rb +498 -495
  149. data/lib/solargraph/source_map/clip.rb +226 -234
  150. data/lib/solargraph/source_map/data.rb +34 -30
  151. data/lib/solargraph/source_map/mapper.rb +259 -259
  152. data/lib/solargraph/source_map.rb +212 -200
  153. data/lib/solargraph/type_checker/checks.rb +124 -124
  154. data/lib/solargraph/type_checker/param_def.rb +37 -35
  155. data/lib/solargraph/type_checker/problem.rb +32 -32
  156. data/lib/solargraph/type_checker/rules.rb +84 -62
  157. data/lib/solargraph/type_checker.rb +814 -699
  158. data/lib/solargraph/version.rb +5 -5
  159. data/lib/solargraph/workspace/config.rb +255 -239
  160. data/lib/solargraph/workspace/require_paths.rb +97 -0
  161. data/lib/solargraph/workspace.rb +220 -249
  162. data/lib/solargraph/yard_map/helpers.rb +44 -16
  163. data/lib/solargraph/yard_map/mapper/to_constant.rb +5 -5
  164. data/lib/solargraph/yard_map/mapper/to_method.rb +130 -134
  165. data/lib/solargraph/yard_map/mapper/to_namespace.rb +31 -30
  166. data/lib/solargraph/yard_map/mapper.rb +79 -79
  167. data/lib/solargraph/yard_map/to_method.rb +89 -88
  168. data/lib/solargraph/yardoc.rb +87 -49
  169. data/lib/solargraph.rb +105 -90
  170. data/rbs/fills/bundler/0/bundler.rbs +4271 -0
  171. data/rbs/fills/open3/0/open3.rbs +172 -0
  172. data/rbs/fills/rubygems/0/basic_specification.rbs +326 -0
  173. data/rbs/fills/rubygems/0/errors.rbs +364 -0
  174. data/rbs/fills/rubygems/0/spec_fetcher.rbs +107 -0
  175. data/rbs/fills/rubygems/0/specification.rbs +1753 -0
  176. data/rbs/fills/{tuple.rbs → tuple/tuple.rbs} +2 -3
  177. data/rbs/shims/ast/0/node.rbs +5 -0
  178. data/rbs/shims/ast/2.4/.rbs_meta.yaml +9 -0
  179. data/rbs/shims/ast/2.4/ast.rbs +73 -0
  180. data/rbs/shims/parser/3.2.0.1/builders/default.rbs +195 -0
  181. data/rbs/shims/parser/3.2.0.1/manifest.yaml +7 -0
  182. data/rbs/shims/parser/3.2.0.1/parser.rbs +201 -0
  183. data/rbs/shims/parser/3.2.0.1/polyfill.rbs +4 -0
  184. data/rbs/shims/thor/1.2.0.1/.rbs_meta.yaml +9 -0
  185. data/rbs/shims/thor/1.2.0.1/manifest.yaml +7 -0
  186. data/rbs/shims/thor/1.2.0.1/thor.rbs +17 -0
  187. data/rbs_collection.yaml +4 -4
  188. data/solargraph.gemspec +26 -5
  189. metadata +187 -15
  190. data/lib/.rubocop.yml +0 -22
  191. data/lib/solargraph/parser/node_methods.rb +0 -97
@@ -1,66 +1,70 @@
1
- # frozen_string_literal: true
2
-
3
- require 'solargraph/parser/node_processor'
4
-
5
- module Solargraph
6
- module Parser
7
- module ParserGem
8
- module NodeProcessors
9
- autoload :BeginNode, 'solargraph/parser/parser_gem/node_processors/begin_node'
10
- autoload :DefNode, 'solargraph/parser/parser_gem/node_processors/def_node'
11
- autoload :DefsNode, 'solargraph/parser/parser_gem/node_processors/defs_node'
12
- autoload :SendNode, 'solargraph/parser/parser_gem/node_processors/send_node'
13
- autoload :NamespaceNode, 'solargraph/parser/parser_gem/node_processors/namespace_node'
14
- autoload :SclassNode, 'solargraph/parser/parser_gem/node_processors/sclass_node'
15
- autoload :IvasgnNode, 'solargraph/parser/parser_gem/node_processors/ivasgn_node'
16
- autoload :IfNode, 'solargraph/parser/parser_gem/node_processors/if_node'
17
- autoload :CvasgnNode, 'solargraph/parser/parser_gem/node_processors/cvasgn_node'
18
- autoload :LvasgnNode, 'solargraph/parser/parser_gem/node_processors/lvasgn_node'
19
- autoload :GvasgnNode, 'solargraph/parser/parser_gem/node_processors/gvasgn_node'
20
- autoload :CasgnNode, 'solargraph/parser/parser_gem/node_processors/casgn_node'
21
- autoload :MasgnNode, 'solargraph/parser/parser_gem/node_processors/masgn_node'
22
- autoload :AliasNode, 'solargraph/parser/parser_gem/node_processors/alias_node'
23
- autoload :ArgsNode, 'solargraph/parser/parser_gem/node_processors/args_node'
24
- autoload :BlockNode, 'solargraph/parser/parser_gem/node_processors/block_node'
25
- autoload :OrasgnNode, 'solargraph/parser/parser_gem/node_processors/orasgn_node'
26
- autoload :OpasgnNode, 'solargraph/parser/parser_gem/node_processors/opasgn_node'
27
- autoload :SymNode, 'solargraph/parser/parser_gem/node_processors/sym_node'
28
- autoload :ResbodyNode, 'solargraph/parser/parser_gem/node_processors/resbody_node'
29
- autoload :UntilNode, 'solargraph/parser/parser_gem/node_processors/until_node'
30
- autoload :WhileNode, 'solargraph/parser/parser_gem/node_processors/while_node'
31
- autoload :AndNode, 'solargraph/parser/parser_gem/node_processors/and_node'
32
- end
33
- end
34
-
35
- module NodeProcessor
36
- register :source, ParserGem::NodeProcessors::BeginNode
37
- register :begin, ParserGem::NodeProcessors::BeginNode
38
- register :kwbegin, ParserGem::NodeProcessors::BeginNode
39
- register :rescue, ParserGem::NodeProcessors::BeginNode
40
- register :resbody, ParserGem::NodeProcessors::ResbodyNode
41
- register :def, ParserGem::NodeProcessors::DefNode
42
- register :defs, ParserGem::NodeProcessors::DefsNode
43
- register :if, ParserGem::NodeProcessors::IfNode
44
- register :send, ParserGem::NodeProcessors::SendNode
45
- register :class, ParserGem::NodeProcessors::NamespaceNode
46
- register :module, ParserGem::NodeProcessors::NamespaceNode
47
- register :sclass, ParserGem::NodeProcessors::SclassNode
48
- register :ivasgn, ParserGem::NodeProcessors::IvasgnNode
49
- register :cvasgn, ParserGem::NodeProcessors::CvasgnNode
50
- register :lvasgn, ParserGem::NodeProcessors::LvasgnNode
51
- register :gvasgn, ParserGem::NodeProcessors::GvasgnNode
52
- register :casgn, ParserGem::NodeProcessors::CasgnNode
53
- register :masgn, ParserGem::NodeProcessors::MasgnNode
54
- register :alias, ParserGem::NodeProcessors::AliasNode
55
- register :args, ParserGem::NodeProcessors::ArgsNode
56
- register :forward_args, ParserGem::NodeProcessors::ArgsNode
57
- register :block, ParserGem::NodeProcessors::BlockNode
58
- register :or_asgn, ParserGem::NodeProcessors::OrasgnNode
59
- register :op_asgn, ParserGem::NodeProcessors::OpasgnNode
60
- register :sym, ParserGem::NodeProcessors::SymNode
61
- register :until, ParserGem::NodeProcessors::UntilNode
62
- register :while, ParserGem::NodeProcessors::WhileNode
63
- register :and, ParserGem::NodeProcessors::AndNode
64
- end
65
- end
66
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'solargraph/parser/node_processor'
4
+
5
+ module Solargraph
6
+ module Parser
7
+ module ParserGem
8
+ module NodeProcessors
9
+ autoload :BeginNode, 'solargraph/parser/parser_gem/node_processors/begin_node'
10
+ autoload :DefNode, 'solargraph/parser/parser_gem/node_processors/def_node'
11
+ autoload :DefsNode, 'solargraph/parser/parser_gem/node_processors/defs_node'
12
+ autoload :SendNode, 'solargraph/parser/parser_gem/node_processors/send_node'
13
+ autoload :NamespaceNode, 'solargraph/parser/parser_gem/node_processors/namespace_node'
14
+ autoload :SclassNode, 'solargraph/parser/parser_gem/node_processors/sclass_node'
15
+ autoload :IvasgnNode, 'solargraph/parser/parser_gem/node_processors/ivasgn_node'
16
+ autoload :IfNode, 'solargraph/parser/parser_gem/node_processors/if_node'
17
+ autoload :CvasgnNode, 'solargraph/parser/parser_gem/node_processors/cvasgn_node'
18
+ autoload :LvasgnNode, 'solargraph/parser/parser_gem/node_processors/lvasgn_node'
19
+ autoload :GvasgnNode, 'solargraph/parser/parser_gem/node_processors/gvasgn_node'
20
+ autoload :CasgnNode, 'solargraph/parser/parser_gem/node_processors/casgn_node'
21
+ autoload :MasgnNode, 'solargraph/parser/parser_gem/node_processors/masgn_node'
22
+ autoload :AliasNode, 'solargraph/parser/parser_gem/node_processors/alias_node'
23
+ autoload :ArgsNode, 'solargraph/parser/parser_gem/node_processors/args_node'
24
+ autoload :BlockNode, 'solargraph/parser/parser_gem/node_processors/block_node'
25
+ autoload :OrasgnNode, 'solargraph/parser/parser_gem/node_processors/orasgn_node'
26
+ autoload :OpasgnNode, 'solargraph/parser/parser_gem/node_processors/opasgn_node'
27
+ autoload :SymNode, 'solargraph/parser/parser_gem/node_processors/sym_node'
28
+ autoload :ResbodyNode, 'solargraph/parser/parser_gem/node_processors/resbody_node'
29
+ autoload :UntilNode, 'solargraph/parser/parser_gem/node_processors/until_node'
30
+ autoload :WhileNode, 'solargraph/parser/parser_gem/node_processors/while_node'
31
+ autoload :AndNode, 'solargraph/parser/parser_gem/node_processors/and_node'
32
+ end
33
+ end
34
+
35
+ module NodeProcessor
36
+ register :source, ParserGem::NodeProcessors::BeginNode
37
+ register :begin, ParserGem::NodeProcessors::BeginNode
38
+ register :kwbegin, ParserGem::NodeProcessors::BeginNode
39
+ register :rescue, ParserGem::NodeProcessors::BeginNode
40
+ register :resbody, ParserGem::NodeProcessors::ResbodyNode
41
+ register :def, ParserGem::NodeProcessors::DefNode
42
+ register :defs, ParserGem::NodeProcessors::DefsNode
43
+ register :if, ParserGem::NodeProcessors::IfNode
44
+ register :send, ParserGem::NodeProcessors::SendNode
45
+ register :class, Convention::StructDefinition::NodeProcessors::StructNode
46
+ register :class, Convention::DataDefinition::NodeProcessors::DataNode
47
+ register :class, ParserGem::NodeProcessors::NamespaceNode
48
+ register :module, ParserGem::NodeProcessors::NamespaceNode
49
+ register :sclass, ParserGem::NodeProcessors::SclassNode
50
+ register :ivasgn, ParserGem::NodeProcessors::IvasgnNode
51
+ register :cvasgn, ParserGem::NodeProcessors::CvasgnNode
52
+ register :lvasgn, ParserGem::NodeProcessors::LvasgnNode
53
+ register :gvasgn, ParserGem::NodeProcessors::GvasgnNode
54
+ register :casgn, Convention::StructDefinition::NodeProcessors::StructNode
55
+ register :casgn, Convention::DataDefinition::NodeProcessors::DataNode
56
+ register :casgn, ParserGem::NodeProcessors::CasgnNode
57
+ register :masgn, ParserGem::NodeProcessors::MasgnNode
58
+ register :alias, ParserGem::NodeProcessors::AliasNode
59
+ register :args, ParserGem::NodeProcessors::ArgsNode
60
+ register :forward_args, ParserGem::NodeProcessors::ArgsNode
61
+ register :block, ParserGem::NodeProcessors::BlockNode
62
+ register :or_asgn, ParserGem::NodeProcessors::OrasgnNode
63
+ register :op_asgn, ParserGem::NodeProcessors::OpasgnNode
64
+ register :sym, ParserGem::NodeProcessors::SymNode
65
+ register :until, ParserGem::NodeProcessors::UntilNode
66
+ register :while, ParserGem::NodeProcessors::WhileNode
67
+ register :and, ParserGem::NodeProcessors::AndNode
68
+ end
69
+ end
70
+ end
@@ -1,66 +1,69 @@
1
- # frozen_string_literal: true
2
-
3
- module Solargraph
4
- module Parser
5
- # Data used by the parser to track context at various locations in a
6
- # source.
7
- #
8
- class Region
9
- # @return [Pin::Closure]
10
- attr_reader :closure
11
-
12
- # @return [Symbol]
13
- attr_reader :scope
14
-
15
- # @return [Symbol]
16
- attr_reader :visibility
17
-
18
- # @return [Solargraph::Source]
19
- attr_reader :source
20
-
21
- # @return [Array<Symbol>]
22
- attr_reader :lvars
23
-
24
- # @param source [Source]
25
- # @param namespace [String]
26
- # @param scope [Symbol, nil]
27
- # @param visibility [Symbol]
28
- def initialize source: Solargraph::Source.load_string(''), closure: nil,
29
- scope: nil, visibility: :public, lvars: []
30
- @source = source
31
- # @closure = closure
32
- @closure = closure || Pin::Namespace.new(name: '', location: source.location, source: :parser)
33
- @scope = scope
34
- @visibility = visibility
35
- @lvars = lvars
36
- end
37
-
38
- # @return [String]
39
- def filename
40
- source.filename
41
- end
42
-
43
- # Generate a new Region with the provided attribute changes.
44
- #
45
- # @param closure [Pin::Closure, nil]
46
- # @param scope [Symbol, nil]
47
- # @param visibility [Symbol, nil]
48
- # @return [Region]
49
- def update closure: nil, scope: nil, visibility: nil, lvars: nil
50
- Region.new(
51
- source: source,
52
- closure: closure || self.closure,
53
- scope: scope || self.scope,
54
- visibility: visibility || self.visibility,
55
- lvars: lvars || self.lvars
56
- )
57
- end
58
-
59
- # @param node [Parser::AST::Node]
60
- # @return [String]
61
- def code_for node
62
- source.code_for(node)
63
- end
64
- end
65
- end
66
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Solargraph
4
+ module Parser
5
+ # Data used by the parser to track context at various locations in a
6
+ # source.
7
+ #
8
+ class Region
9
+ # @return [Pin::Closure]
10
+ attr_reader :closure
11
+
12
+ # @return [Symbol]
13
+ attr_reader :scope
14
+
15
+ # @return [Symbol]
16
+ attr_reader :visibility
17
+
18
+ # @return [Solargraph::Source]
19
+ attr_reader :source
20
+
21
+ # @return [Array<Symbol>]
22
+ attr_reader :lvars
23
+
24
+ # @param source [Source]
25
+ # @param namespace [String]
26
+ # @param closure [Pin::Closure, nil]
27
+ # @param scope [Symbol, nil]
28
+ # @param visibility [Symbol]
29
+ # @param lvars [Array<Symbol>]
30
+ def initialize source: Solargraph::Source.load_string(''), closure: nil,
31
+ scope: nil, visibility: :public, lvars: []
32
+ @source = source
33
+ # @closure = closure
34
+ @closure = closure || Pin::Namespace.new(name: '', location: source.location, source: :parser)
35
+ @scope = scope
36
+ @visibility = visibility
37
+ @lvars = lvars
38
+ end
39
+
40
+ # @return [String]
41
+ def filename
42
+ source.filename
43
+ end
44
+
45
+ # Generate a new Region with the provided attribute changes.
46
+ #
47
+ # @param closure [Pin::Closure, nil]
48
+ # @param scope [Symbol, nil]
49
+ # @param visibility [Symbol, nil]
50
+ # @param lvars [Array<Symbol>, nil]
51
+ # @return [Region]
52
+ def update closure: nil, scope: nil, visibility: nil, lvars: nil
53
+ Region.new(
54
+ source: source,
55
+ closure: closure || self.closure,
56
+ scope: scope || self.scope,
57
+ visibility: visibility || self.visibility,
58
+ lvars: lvars || self.lvars
59
+ )
60
+ end
61
+
62
+ # @param node [Parser::AST::Node]
63
+ # @return [String]
64
+ def code_for node
65
+ source.code_for(node)
66
+ end
67
+ end
68
+ end
69
+ end
@@ -1,15 +1,17 @@
1
- module Solargraph
2
- module Parser
3
- class Snippet
4
- # @return [Range]
5
- attr_reader :range
6
- # @return [String]
7
- attr_reader :text
8
-
9
- def initialize range, text
10
- @range = range
11
- @text = text
12
- end
13
- end
14
- end
15
- end
1
+ module Solargraph
2
+ module Parser
3
+ class Snippet
4
+ # @return [Range]
5
+ attr_reader :range
6
+ # @return [String]
7
+ attr_reader :text
8
+
9
+ # @param range [Solargraph::Range]
10
+ # @param text [String]
11
+ def initialize range, text
12
+ @range = range
13
+ @text = text
14
+ end
15
+ end
16
+ end
17
+ end