solargraph 0.54.4 → 0.58.3

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 (238) 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 +185 -6
  5. data/.github/workflows/rspec.yml +55 -5
  6. data/.github/workflows/typecheck.yml +8 -3
  7. data/.gitignore +8 -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 +143 -0
  14. data/README.md +20 -6
  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 -167
  20. data/lib/solargraph/api_map/source_to_yard.rb +97 -88
  21. data/lib/solargraph/api_map/store.rb +384 -241
  22. data/lib/solargraph/api_map.rb +945 -875
  23. data/lib/solargraph/bench.rb +45 -28
  24. data/lib/solargraph/complex_type/type_methods.rb +228 -217
  25. data/lib/solargraph/complex_type/unique_type.rb +482 -386
  26. data/lib/solargraph/complex_type.rb +444 -394
  27. data/lib/solargraph/convention/active_support_concern.rb +111 -0
  28. data/lib/solargraph/convention/base.rb +20 -3
  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/gemfile.rb +15 -15
  33. data/lib/solargraph/convention/gemspec.rb +23 -22
  34. data/lib/solargraph/convention/rakefile.rb +17 -17
  35. data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +61 -0
  36. data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +102 -0
  37. data/lib/solargraph/convention/struct_definition.rb +164 -0
  38. data/lib/solargraph/convention.rb +78 -47
  39. data/lib/solargraph/converters/dd.rb +17 -17
  40. data/lib/solargraph/converters/dl.rb +15 -15
  41. data/lib/solargraph/converters/dt.rb +15 -15
  42. data/lib/solargraph/converters/misc.rb +1 -1
  43. data/lib/solargraph/diagnostics/require_not_found.rb +53 -53
  44. data/lib/solargraph/diagnostics/rubocop.rb +118 -113
  45. data/lib/solargraph/diagnostics/rubocop_helpers.rb +68 -66
  46. data/lib/solargraph/diagnostics/type_check.rb +55 -55
  47. data/lib/solargraph/diagnostics/update_errors.rb +41 -41
  48. data/lib/solargraph/doc_map.rb +439 -188
  49. data/lib/solargraph/environ.rb +9 -2
  50. data/lib/solargraph/equality.rb +34 -33
  51. data/lib/solargraph/gem_pins.rb +98 -72
  52. data/lib/solargraph/language_server/error_codes.rb +20 -20
  53. data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
  54. data/lib/solargraph/language_server/host/dispatch.rb +130 -128
  55. data/lib/solargraph/language_server/host/message_worker.rb +112 -106
  56. data/lib/solargraph/language_server/host/sources.rb +99 -99
  57. data/lib/solargraph/language_server/host.rb +878 -861
  58. data/lib/solargraph/language_server/message/base.rb +97 -96
  59. data/lib/solargraph/language_server/message/client/register_capability.rb +15 -15
  60. data/lib/solargraph/language_server/message/completion_item/resolve.rb +60 -60
  61. data/lib/solargraph/language_server/message/extended/check_gem_version.rb +114 -112
  62. data/lib/solargraph/language_server/message/extended/document.rb +23 -20
  63. data/lib/solargraph/language_server/message/extended/document_gems.rb +32 -32
  64. data/lib/solargraph/language_server/message/extended/download_core.rb +19 -19
  65. data/lib/solargraph/language_server/message/extended/search.rb +20 -20
  66. data/lib/solargraph/language_server/message/initialize.rb +191 -191
  67. data/lib/solargraph/language_server/message/text_document/completion.rb +56 -56
  68. data/lib/solargraph/language_server/message/text_document/definition.rb +40 -38
  69. data/lib/solargraph/language_server/message/text_document/document_highlight.rb +16 -16
  70. data/lib/solargraph/language_server/message/text_document/document_symbol.rb +26 -26
  71. data/lib/solargraph/language_server/message/text_document/formatting.rb +148 -131
  72. data/lib/solargraph/language_server/message/text_document/hover.rb +58 -58
  73. data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +11 -11
  74. data/lib/solargraph/language_server/message/text_document/references.rb +16 -16
  75. data/lib/solargraph/language_server/message/text_document/rename.rb +19 -19
  76. data/lib/solargraph/language_server/message/text_document/signature_help.rb +24 -24
  77. data/lib/solargraph/language_server/message/text_document/type_definition.rb +25 -24
  78. data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +35 -35
  79. data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +40 -40
  80. data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +26 -24
  81. data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +23 -23
  82. data/lib/solargraph/language_server/message.rb +94 -94
  83. data/lib/solargraph/language_server/progress.rb +8 -0
  84. data/lib/solargraph/language_server/request.rb +27 -24
  85. data/lib/solargraph/language_server/transport/data_reader.rb +74 -74
  86. data/lib/solargraph/language_server/uri_helpers.rb +49 -49
  87. data/lib/solargraph/library.rb +683 -662
  88. data/lib/solargraph/location.rb +82 -58
  89. data/lib/solargraph/logging.rb +37 -27
  90. data/lib/solargraph/page.rb +92 -89
  91. data/lib/solargraph/parser/comment_ripper.rb +69 -56
  92. data/lib/solargraph/parser/flow_sensitive_typing.rb +255 -0
  93. data/lib/solargraph/parser/node_processor/base.rb +92 -87
  94. data/lib/solargraph/parser/node_processor.rb +62 -45
  95. data/lib/solargraph/parser/parser_gem/class_methods.rb +149 -157
  96. data/lib/solargraph/parser/parser_gem/flawed_builder.rb +19 -18
  97. data/lib/solargraph/parser/parser_gem/node_chainer.rb +166 -164
  98. data/lib/solargraph/parser/parser_gem/node_methods.rb +486 -495
  99. data/lib/solargraph/parser/parser_gem/node_processors/alias_node.rb +2 -1
  100. data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +22 -0
  101. data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +59 -57
  102. data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +15 -15
  103. data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +46 -43
  104. data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +2 -1
  105. data/lib/solargraph/parser/parser_gem/node_processors/cvasgn_node.rb +2 -1
  106. data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +53 -50
  107. data/lib/solargraph/parser/parser_gem/node_processors/defs_node.rb +37 -36
  108. data/lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb +2 -1
  109. data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +23 -0
  110. data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +40 -38
  111. data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +29 -28
  112. data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +59 -53
  113. data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +8 -7
  114. data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +98 -0
  115. data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +17 -16
  116. data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +38 -36
  117. data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +52 -42
  118. data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +291 -259
  119. data/lib/solargraph/parser/parser_gem/node_processors/sym_node.rb +3 -1
  120. data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +29 -0
  121. data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +29 -0
  122. data/lib/solargraph/parser/parser_gem/node_processors.rb +70 -56
  123. data/lib/solargraph/parser/parser_gem.rb +12 -12
  124. data/lib/solargraph/parser/region.rb +69 -66
  125. data/lib/solargraph/parser/snippet.rb +17 -15
  126. data/lib/solargraph/parser.rb +23 -22
  127. data/lib/solargraph/pin/base.rb +729 -378
  128. data/lib/solargraph/pin/base_variable.rb +126 -118
  129. data/lib/solargraph/pin/block.rb +104 -101
  130. data/lib/solargraph/pin/breakable.rb +9 -0
  131. data/lib/solargraph/pin/callable.rb +231 -147
  132. data/lib/solargraph/pin/closure.rb +72 -57
  133. data/lib/solargraph/pin/common.rb +79 -70
  134. data/lib/solargraph/pin/constant.rb +45 -43
  135. data/lib/solargraph/pin/conversions.rb +123 -123
  136. data/lib/solargraph/pin/delegated_method.rb +120 -101
  137. data/lib/solargraph/pin/documenting.rb +114 -98
  138. data/lib/solargraph/pin/instance_variable.rb +34 -34
  139. data/lib/solargraph/pin/keyword.rb +20 -15
  140. data/lib/solargraph/pin/local_variable.rb +75 -67
  141. data/lib/solargraph/pin/method.rb +672 -527
  142. data/lib/solargraph/pin/method_alias.rb +34 -31
  143. data/lib/solargraph/pin/namespace.rb +115 -107
  144. data/lib/solargraph/pin/parameter.rb +275 -212
  145. data/lib/solargraph/pin/proxy_type.rb +39 -29
  146. data/lib/solargraph/pin/reference/override.rb +47 -29
  147. data/lib/solargraph/pin/reference/require.rb +2 -2
  148. data/lib/solargraph/pin/reference/superclass.rb +15 -10
  149. data/lib/solargraph/pin/reference.rb +39 -22
  150. data/lib/solargraph/pin/search.rb +61 -56
  151. data/lib/solargraph/pin/signature.rb +61 -17
  152. data/lib/solargraph/pin/singleton.rb +1 -1
  153. data/lib/solargraph/pin/symbol.rb +53 -47
  154. data/lib/solargraph/pin/until.rb +18 -0
  155. data/lib/solargraph/pin/while.rb +18 -0
  156. data/lib/solargraph/pin.rb +44 -41
  157. data/lib/solargraph/pin_cache.rb +245 -0
  158. data/lib/solargraph/position.rb +132 -107
  159. data/lib/solargraph/range.rb +112 -98
  160. data/lib/solargraph/rbs_map/conversions.rb +823 -646
  161. data/lib/solargraph/rbs_map/core_fills.rb +84 -50
  162. data/lib/solargraph/rbs_map/core_map.rb +58 -28
  163. data/lib/solargraph/rbs_map/stdlib_map.rb +43 -33
  164. data/lib/solargraph/rbs_map.rb +163 -93
  165. data/lib/solargraph/server_methods.rb +16 -16
  166. data/lib/solargraph/shell.rb +363 -269
  167. data/lib/solargraph/source/chain/array.rb +37 -33
  168. data/lib/solargraph/source/chain/block_symbol.rb +1 -1
  169. data/lib/solargraph/source/chain/block_variable.rb +1 -1
  170. data/lib/solargraph/source/chain/call.rb +337 -303
  171. data/lib/solargraph/source/chain/class_variable.rb +13 -13
  172. data/lib/solargraph/source/chain/constant.rb +26 -89
  173. data/lib/solargraph/source/chain/global_variable.rb +13 -13
  174. data/lib/solargraph/source/chain/hash.rb +34 -33
  175. data/lib/solargraph/source/chain/head.rb +1 -1
  176. data/lib/solargraph/source/chain/if.rb +28 -28
  177. data/lib/solargraph/source/chain/instance_variable.rb +13 -13
  178. data/lib/solargraph/source/chain/link.rb +109 -98
  179. data/lib/solargraph/source/chain/literal.rb +48 -28
  180. data/lib/solargraph/source/chain/or.rb +23 -23
  181. data/lib/solargraph/source/chain/q_call.rb +11 -11
  182. data/lib/solargraph/source/chain/variable.rb +13 -13
  183. data/lib/solargraph/source/chain/z_super.rb +30 -30
  184. data/lib/solargraph/source/chain.rb +291 -252
  185. data/lib/solargraph/source/change.rb +82 -82
  186. data/lib/solargraph/source/cursor.rb +166 -167
  187. data/lib/solargraph/source/encoding_fixes.rb +23 -23
  188. data/lib/solargraph/source/source_chainer.rb +194 -194
  189. data/lib/solargraph/source/updater.rb +55 -55
  190. data/lib/solargraph/source.rb +498 -495
  191. data/lib/solargraph/source_map/clip.rb +226 -232
  192. data/lib/solargraph/source_map/data.rb +34 -30
  193. data/lib/solargraph/source_map/mapper.rb +259 -255
  194. data/lib/solargraph/source_map.rb +212 -217
  195. data/lib/solargraph/type_checker/checks.rb +124 -120
  196. data/lib/solargraph/type_checker/param_def.rb +37 -35
  197. data/lib/solargraph/type_checker/problem.rb +32 -32
  198. data/lib/solargraph/type_checker/rules.rb +84 -62
  199. data/lib/solargraph/type_checker.rb +814 -672
  200. data/lib/solargraph/version.rb +5 -5
  201. data/lib/solargraph/views/_method.erb +10 -10
  202. data/lib/solargraph/views/_namespace.erb +3 -3
  203. data/lib/solargraph/views/document.erb +10 -10
  204. data/lib/solargraph/workspace/config.rb +255 -239
  205. data/lib/solargraph/workspace/require_paths.rb +97 -0
  206. data/lib/solargraph/workspace.rb +220 -239
  207. data/lib/solargraph/yard_map/helpers.rb +44 -16
  208. data/lib/solargraph/yard_map/mapper/to_constant.rb +7 -5
  209. data/lib/solargraph/yard_map/mapper/to_method.rb +130 -94
  210. data/lib/solargraph/yard_map/mapper/to_namespace.rb +31 -28
  211. data/lib/solargraph/yard_map/mapper.rb +79 -78
  212. data/lib/solargraph/yard_map/to_method.rb +89 -86
  213. data/lib/solargraph/yard_tags.rb +20 -20
  214. data/lib/solargraph/yardoc.rb +87 -52
  215. data/lib/solargraph.rb +105 -72
  216. data/rbs/fills/bundler/0/bundler.rbs +4271 -0
  217. data/rbs/fills/open3/0/open3.rbs +172 -0
  218. data/rbs/fills/rubygems/0/basic_specification.rbs +326 -0
  219. data/rbs/fills/rubygems/0/errors.rbs +364 -0
  220. data/rbs/fills/rubygems/0/spec_fetcher.rbs +107 -0
  221. data/rbs/fills/rubygems/0/specification.rbs +1753 -0
  222. data/rbs/fills/tuple/tuple.rbs +149 -0
  223. data/rbs/shims/ast/0/node.rbs +5 -0
  224. data/rbs/shims/ast/2.4/.rbs_meta.yaml +9 -0
  225. data/rbs/shims/ast/2.4/ast.rbs +73 -0
  226. data/rbs/shims/parser/3.2.0.1/builders/default.rbs +195 -0
  227. data/rbs/shims/parser/3.2.0.1/manifest.yaml +7 -0
  228. data/rbs/shims/parser/3.2.0.1/parser.rbs +201 -0
  229. data/rbs/shims/parser/3.2.0.1/polyfill.rbs +4 -0
  230. data/rbs/shims/thor/1.2.0.1/.rbs_meta.yaml +9 -0
  231. data/rbs/shims/thor/1.2.0.1/manifest.yaml +7 -0
  232. data/rbs/shims/thor/1.2.0.1/thor.rbs +17 -0
  233. data/rbs_collection.yaml +19 -0
  234. data/solargraph.gemspec +27 -5
  235. metadata +215 -18
  236. data/lib/.rubocop.yml +0 -22
  237. data/lib/solargraph/cache.rb +0 -77
  238. data/lib/solargraph/parser/node_methods.rb +0 -83
@@ -1,56 +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 :CvasgnNode, 'solargraph/parser/parser_gem/node_processors/cvasgn_node'
17
- autoload :LvasgnNode, 'solargraph/parser/parser_gem/node_processors/lvasgn_node'
18
- autoload :GvasgnNode, 'solargraph/parser/parser_gem/node_processors/gvasgn_node'
19
- autoload :CasgnNode, 'solargraph/parser/parser_gem/node_processors/casgn_node'
20
- autoload :MasgnNode, 'solargraph/parser/parser_gem/node_processors/masgn_node'
21
- autoload :AliasNode, 'solargraph/parser/parser_gem/node_processors/alias_node'
22
- autoload :ArgsNode, 'solargraph/parser/parser_gem/node_processors/args_node'
23
- autoload :BlockNode, 'solargraph/parser/parser_gem/node_processors/block_node'
24
- autoload :OrasgnNode, 'solargraph/parser/parser_gem/node_processors/orasgn_node'
25
- autoload :SymNode, 'solargraph/parser/parser_gem/node_processors/sym_node'
26
- autoload :ResbodyNode, 'solargraph/parser/parser_gem/node_processors/resbody_node'
27
- end
28
- end
29
-
30
- module NodeProcessor
31
- register :source, ParserGem::NodeProcessors::BeginNode
32
- register :begin, ParserGem::NodeProcessors::BeginNode
33
- register :kwbegin, ParserGem::NodeProcessors::BeginNode
34
- register :rescue, ParserGem::NodeProcessors::BeginNode
35
- register :resbody, ParserGem::NodeProcessors::ResbodyNode
36
- register :def, ParserGem::NodeProcessors::DefNode
37
- register :defs, ParserGem::NodeProcessors::DefsNode
38
- register :send, ParserGem::NodeProcessors::SendNode
39
- register :class, ParserGem::NodeProcessors::NamespaceNode
40
- register :module, ParserGem::NodeProcessors::NamespaceNode
41
- register :sclass, ParserGem::NodeProcessors::SclassNode
42
- register :ivasgn, ParserGem::NodeProcessors::IvasgnNode
43
- register :cvasgn, ParserGem::NodeProcessors::CvasgnNode
44
- register :lvasgn, ParserGem::NodeProcessors::LvasgnNode
45
- register :gvasgn, ParserGem::NodeProcessors::GvasgnNode
46
- register :casgn, ParserGem::NodeProcessors::CasgnNode
47
- register :masgn, ParserGem::NodeProcessors::MasgnNode
48
- register :alias, ParserGem::NodeProcessors::AliasNode
49
- register :args, ParserGem::NodeProcessors::ArgsNode
50
- register :forward_args, ParserGem::NodeProcessors::ArgsNode
51
- register :block, ParserGem::NodeProcessors::BlockNode
52
- register :or_asgn, ParserGem::NodeProcessors::OrasgnNode
53
- register :sym, ParserGem::NodeProcessors::SymNode
54
- end
55
- end
56
- 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,12 +1,12 @@
1
- module Solargraph
2
- module Parser
3
- module ParserGem
4
- autoload :FlawedBuilder, 'solargraph/parser/parser_gem/flawed_builder'
5
- autoload :ClassMethods, 'solargraph/parser/parser_gem/class_methods'
6
- autoload :NodeMethods, 'solargraph/parser/parser_gem/node_methods'
7
- autoload :NodeChainer, 'solargraph/parser/parser_gem/node_chainer'
8
- end
9
- end
10
- end
11
-
12
- require 'solargraph/parser/parser_gem/node_processors'
1
+ module Solargraph
2
+ module Parser
3
+ module ParserGem
4
+ autoload :FlawedBuilder, 'solargraph/parser/parser_gem/flawed_builder'
5
+ autoload :ClassMethods, 'solargraph/parser/parser_gem/class_methods'
6
+ autoload :NodeMethods, 'solargraph/parser/parser_gem/node_methods'
7
+ autoload :NodeChainer, 'solargraph/parser/parser_gem/node_chainer'
8
+ end
9
+ end
10
+ end
11
+
12
+ require 'solargraph/parser/parser_gem/node_processors'
@@ -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)
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
@@ -1,22 +1,23 @@
1
- module Solargraph
2
- module Parser
3
- autoload :CommentRipper, 'solargraph/parser/comment_ripper'
4
- autoload :ParserGem, 'solargraph/parser/parser_gem'
5
- autoload :Region, 'solargraph/parser/region'
6
- autoload :NodeProcessor, 'solargraph/parser/node_processor'
7
- autoload :Snippet, 'solargraph/parser/snippet'
8
-
9
- class SyntaxError < StandardError
10
- end
11
-
12
- # @deprecated
13
- Legacy = ParserGem
14
-
15
- ClassMethods = ParserGem::ClassMethods
16
- # @todo should be able to just 'extend ClassMethods' here and
17
- # typecheck things off it in strict mode
18
- extend ParserGem::ClassMethods
19
-
20
- NodeMethods = ParserGem::NodeMethods
21
- end
22
- end
1
+ module Solargraph
2
+ module Parser
3
+ autoload :CommentRipper, 'solargraph/parser/comment_ripper'
4
+ autoload :ParserGem, 'solargraph/parser/parser_gem'
5
+ autoload :Region, 'solargraph/parser/region'
6
+ autoload :NodeProcessor, 'solargraph/parser/node_processor'
7
+ autoload :FlowSensitiveTyping, 'solargraph/parser/flow_sensitive_typing'
8
+ autoload :Snippet, 'solargraph/parser/snippet'
9
+
10
+ class SyntaxError < StandardError
11
+ end
12
+
13
+ # @deprecated
14
+ Legacy = ParserGem
15
+
16
+ ClassMethods = ParserGem::ClassMethods
17
+ # @todo should be able to just 'extend ClassMethods' here and
18
+ # typecheck things off it in strict mode
19
+ extend ParserGem::ClassMethods
20
+
21
+ NodeMethods = ParserGem::NodeMethods
22
+ end
23
+ end