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
@@ -0,0 +1,19 @@
1
+ # Download sources
2
+ sources:
3
+ - type: local
4
+ name: shims
5
+ path: rbs/shims
6
+
7
+ - type: git
8
+ name: ruby/gem_rbs_collection
9
+ remote: https://github.com/ruby/gem_rbs_collection.git
10
+ revision: main
11
+ repo_dir: gems
12
+
13
+ # A directory to install the downloaded RBSs
14
+ path: .gem_rbs_collection
15
+
16
+ # gems:
17
+ # # If you want to avoid installing rbs files for gems, you can specify them here.
18
+ # - name: GEM_NAME
19
+ # ignore: true
data/solargraph.gemspec CHANGED
@@ -2,6 +2,7 @@ $LOAD_PATH.unshift File.dirname(__FILE__) + '/lib'
2
2
  require 'solargraph/version'
3
3
  require 'date'
4
4
 
5
+ # @param s [Gem::Specification]
5
6
  Gem::Specification.new do |s|
6
7
  s.name = 'solargraph'
7
8
  s.version = Solargraph::VERSION
@@ -11,7 +12,10 @@ Gem::Specification.new do |s|
11
12
  s.authors = ["Fred Snyder"]
12
13
  s.email = 'admin@castwide.com'
13
14
  s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
14
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
+ # @sg-ignore Need backtick support
16
+ # @type [String]
17
+ all_files = `git ls-files -z`
18
+ all_files.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
19
  end
16
20
  s.homepage = 'https://solargraph.org'
17
21
  s.license = 'MIT'
@@ -20,12 +24,14 @@ Gem::Specification.new do |s|
20
24
  s.metadata["bug_tracker_uri"] = "https://github.com/castwide/solargraph/issues"
21
25
  s.metadata["changelog_uri"] = "https://github.com/castwide/solargraph/blob/master/CHANGELOG.md"
22
26
  s.metadata["source_code_uri"] = "https://github.com/castwide/solargraph"
27
+ s.metadata["rubygems_mfa_required"] = "true"
23
28
 
24
29
  s.required_ruby_version = '>= 3.0'
25
30
 
31
+ s.add_runtime_dependency 'ast', '~> 2.4.3'
26
32
  s.add_runtime_dependency 'backport', '~> 1.2'
27
33
  s.add_runtime_dependency 'benchmark', '~> 0.4'
28
- s.add_runtime_dependency 'bundler', '~> 2.0'
34
+ s.add_runtime_dependency 'bundler', '>= 2.0'
29
35
  s.add_runtime_dependency 'diff-lcs', '~> 1.4'
30
36
  s.add_runtime_dependency 'jaro_winkler', '~> 1.6', '>= 1.6.1'
31
37
  s.add_runtime_dependency 'kramdown', '~> 2.3'
@@ -33,20 +39,36 @@ Gem::Specification.new do |s|
33
39
  s.add_runtime_dependency 'logger', '~> 1.6'
34
40
  s.add_runtime_dependency 'observer', '~> 0.1'
35
41
  s.add_runtime_dependency 'ostruct', '~> 0.6'
42
+ s.add_runtime_dependency 'open3', '~> 0.2.1'
36
43
  s.add_runtime_dependency 'parser', '~> 3.0'
37
- s.add_runtime_dependency 'rbs', '~> 3.3'
44
+ s.add_runtime_dependency 'prism', '~> 1.4'
45
+ s.add_runtime_dependency 'rbs', ['>= 3.6.1', '<= 4.0.0.dev.4']
38
46
  s.add_runtime_dependency 'reverse_markdown', '~> 3.0'
39
- s.add_runtime_dependency 'rubocop', '~> 1.38'
47
+ s.add_runtime_dependency 'rubocop', '~> 1.76'
40
48
  s.add_runtime_dependency 'thor', '~> 1.0'
41
49
  s.add_runtime_dependency 'tilt', '~> 2.0'
42
50
  s.add_runtime_dependency 'yard', '~> 0.9', '>= 0.9.24'
43
51
  s.add_runtime_dependency 'yard-solargraph', '~> 0.1'
52
+ s.add_runtime_dependency 'yard-activesupport-concern', '~> 0.0'
44
53
 
45
54
  s.add_development_dependency 'pry', '~> 0.15'
46
55
  s.add_development_dependency 'public_suffix', '~> 3.1'
47
56
  s.add_development_dependency 'rake', '~> 13.2'
48
57
  s.add_development_dependency 'rspec', '~> 3.5'
49
- s.add_development_dependency 'simplecov', '~> 0.14'
58
+ #
59
+ # very specific development-time RuboCop version patterns for CI
60
+ # stability - feel free to update in an isolated PR
61
+ #
62
+ # even more specific on RuboCop itself, which is written into _todo
63
+ # file.
64
+ s.add_development_dependency 'rubocop', '~> 1.80.0.0'
65
+ s.add_development_dependency 'rubocop-rake', '~> 0.7.1'
66
+ s.add_development_dependency 'rubocop-rspec', '~> 3.6.0'
67
+ s.add_development_dependency 'rubocop-yard', '~> 1.0.0'
68
+ s.add_development_dependency 'simplecov', '~> 0.21'
69
+ s.add_development_dependency 'simplecov-lcov', '~> 0.8'
70
+ s.add_development_dependency 'undercover', '~> 0.7'
71
+ s.add_development_dependency 'overcommit', '~> 0.68.0'
50
72
  s.add_development_dependency 'webmock', '~> 3.6'
51
73
  # work around missing yard dependency needed as of Ruby 3.5
52
74
  s.add_development_dependency 'irb', '~> 1.15'
metadata CHANGED
@@ -1,15 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solargraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.54.4
4
+ version: 0.58.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-05-14 00:00:00.000000000 Z
10
+ date: 2026-03-09 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: ast
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 2.4.3
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: 2.4.3
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: backport
15
28
  requirement: !ruby/object:Gem::Requirement
@@ -42,14 +55,14 @@ dependencies:
42
55
  name: bundler
43
56
  requirement: !ruby/object:Gem::Requirement
44
57
  requirements:
45
- - - "~>"
58
+ - - ">="
46
59
  - !ruby/object:Gem::Version
47
60
  version: '2.0'
48
61
  type: :runtime
49
62
  prerelease: false
50
63
  version_requirements: !ruby/object:Gem::Requirement
51
64
  requirements:
52
- - - "~>"
65
+ - - ">="
53
66
  - !ruby/object:Gem::Version
54
67
  version: '2.0'
55
68
  - !ruby/object:Gem::Dependency
@@ -156,6 +169,20 @@ dependencies:
156
169
  - - "~>"
157
170
  - !ruby/object:Gem::Version
158
171
  version: '0.6'
172
+ - !ruby/object:Gem::Dependency
173
+ name: open3
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: 0.2.1
179
+ type: :runtime
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: 0.2.1
159
186
  - !ruby/object:Gem::Dependency
160
187
  name: parser
161
188
  requirement: !ruby/object:Gem::Requirement
@@ -171,19 +198,39 @@ dependencies:
171
198
  - !ruby/object:Gem::Version
172
199
  version: '3.0'
173
200
  - !ruby/object:Gem::Dependency
174
- name: rbs
201
+ name: prism
175
202
  requirement: !ruby/object:Gem::Requirement
176
203
  requirements:
177
204
  - - "~>"
178
205
  - !ruby/object:Gem::Version
179
- version: '3.3'
206
+ version: '1.4'
180
207
  type: :runtime
181
208
  prerelease: false
182
209
  version_requirements: !ruby/object:Gem::Requirement
183
210
  requirements:
184
211
  - - "~>"
185
212
  - !ruby/object:Gem::Version
186
- version: '3.3'
213
+ version: '1.4'
214
+ - !ruby/object:Gem::Dependency
215
+ name: rbs
216
+ requirement: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: 3.6.1
221
+ - - "<="
222
+ - !ruby/object:Gem::Version
223
+ version: 4.0.0.dev.4
224
+ type: :runtime
225
+ prerelease: false
226
+ version_requirements: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: 3.6.1
231
+ - - "<="
232
+ - !ruby/object:Gem::Version
233
+ version: 4.0.0.dev.4
187
234
  - !ruby/object:Gem::Dependency
188
235
  name: reverse_markdown
189
236
  requirement: !ruby/object:Gem::Requirement
@@ -204,14 +251,14 @@ dependencies:
204
251
  requirements:
205
252
  - - "~>"
206
253
  - !ruby/object:Gem::Version
207
- version: '1.38'
254
+ version: '1.76'
208
255
  type: :runtime
209
256
  prerelease: false
210
257
  version_requirements: !ruby/object:Gem::Requirement
211
258
  requirements:
212
259
  - - "~>"
213
260
  - !ruby/object:Gem::Version
214
- version: '1.38'
261
+ version: '1.76'
215
262
  - !ruby/object:Gem::Dependency
216
263
  name: thor
217
264
  requirement: !ruby/object:Gem::Requirement
@@ -274,6 +321,20 @@ dependencies:
274
321
  - - "~>"
275
322
  - !ruby/object:Gem::Version
276
323
  version: '0.1'
324
+ - !ruby/object:Gem::Dependency
325
+ name: yard-activesupport-concern
326
+ requirement: !ruby/object:Gem::Requirement
327
+ requirements:
328
+ - - "~>"
329
+ - !ruby/object:Gem::Version
330
+ version: '0.0'
331
+ type: :runtime
332
+ prerelease: false
333
+ version_requirements: !ruby/object:Gem::Requirement
334
+ requirements:
335
+ - - "~>"
336
+ - !ruby/object:Gem::Version
337
+ version: '0.0'
277
338
  - !ruby/object:Gem::Dependency
278
339
  name: pry
279
340
  requirement: !ruby/object:Gem::Requirement
@@ -330,20 +391,118 @@ dependencies:
330
391
  - - "~>"
331
392
  - !ruby/object:Gem::Version
332
393
  version: '3.5'
394
+ - !ruby/object:Gem::Dependency
395
+ name: rubocop
396
+ requirement: !ruby/object:Gem::Requirement
397
+ requirements:
398
+ - - "~>"
399
+ - !ruby/object:Gem::Version
400
+ version: 1.80.0.0
401
+ type: :development
402
+ prerelease: false
403
+ version_requirements: !ruby/object:Gem::Requirement
404
+ requirements:
405
+ - - "~>"
406
+ - !ruby/object:Gem::Version
407
+ version: 1.80.0.0
408
+ - !ruby/object:Gem::Dependency
409
+ name: rubocop-rake
410
+ requirement: !ruby/object:Gem::Requirement
411
+ requirements:
412
+ - - "~>"
413
+ - !ruby/object:Gem::Version
414
+ version: 0.7.1
415
+ type: :development
416
+ prerelease: false
417
+ version_requirements: !ruby/object:Gem::Requirement
418
+ requirements:
419
+ - - "~>"
420
+ - !ruby/object:Gem::Version
421
+ version: 0.7.1
422
+ - !ruby/object:Gem::Dependency
423
+ name: rubocop-rspec
424
+ requirement: !ruby/object:Gem::Requirement
425
+ requirements:
426
+ - - "~>"
427
+ - !ruby/object:Gem::Version
428
+ version: 3.6.0
429
+ type: :development
430
+ prerelease: false
431
+ version_requirements: !ruby/object:Gem::Requirement
432
+ requirements:
433
+ - - "~>"
434
+ - !ruby/object:Gem::Version
435
+ version: 3.6.0
436
+ - !ruby/object:Gem::Dependency
437
+ name: rubocop-yard
438
+ requirement: !ruby/object:Gem::Requirement
439
+ requirements:
440
+ - - "~>"
441
+ - !ruby/object:Gem::Version
442
+ version: 1.0.0
443
+ type: :development
444
+ prerelease: false
445
+ version_requirements: !ruby/object:Gem::Requirement
446
+ requirements:
447
+ - - "~>"
448
+ - !ruby/object:Gem::Version
449
+ version: 1.0.0
333
450
  - !ruby/object:Gem::Dependency
334
451
  name: simplecov
335
452
  requirement: !ruby/object:Gem::Requirement
336
453
  requirements:
337
454
  - - "~>"
338
455
  - !ruby/object:Gem::Version
339
- version: '0.14'
456
+ version: '0.21'
457
+ type: :development
458
+ prerelease: false
459
+ version_requirements: !ruby/object:Gem::Requirement
460
+ requirements:
461
+ - - "~>"
462
+ - !ruby/object:Gem::Version
463
+ version: '0.21'
464
+ - !ruby/object:Gem::Dependency
465
+ name: simplecov-lcov
466
+ requirement: !ruby/object:Gem::Requirement
467
+ requirements:
468
+ - - "~>"
469
+ - !ruby/object:Gem::Version
470
+ version: '0.8'
471
+ type: :development
472
+ prerelease: false
473
+ version_requirements: !ruby/object:Gem::Requirement
474
+ requirements:
475
+ - - "~>"
476
+ - !ruby/object:Gem::Version
477
+ version: '0.8'
478
+ - !ruby/object:Gem::Dependency
479
+ name: undercover
480
+ requirement: !ruby/object:Gem::Requirement
481
+ requirements:
482
+ - - "~>"
483
+ - !ruby/object:Gem::Version
484
+ version: '0.7'
485
+ type: :development
486
+ prerelease: false
487
+ version_requirements: !ruby/object:Gem::Requirement
488
+ requirements:
489
+ - - "~>"
490
+ - !ruby/object:Gem::Version
491
+ version: '0.7'
492
+ - !ruby/object:Gem::Dependency
493
+ name: overcommit
494
+ requirement: !ruby/object:Gem::Requirement
495
+ requirements:
496
+ - - "~>"
497
+ - !ruby/object:Gem::Version
498
+ version: 0.68.0
340
499
  type: :development
341
500
  prerelease: false
342
501
  version_requirements: !ruby/object:Gem::Requirement
343
502
  requirements:
344
503
  - - "~>"
345
504
  - !ruby/object:Gem::Version
346
- version: '0.14'
505
+ version: 0.68.0
347
506
  - !ruby/object:Gem::Dependency
348
507
  name: webmock
349
508
  requirement: !ruby/object:Gem::Requirement
@@ -379,12 +538,17 @@ executables:
379
538
  extensions: []
380
539
  extra_rdoc_files: []
381
540
  files:
541
+ - ".gitattributes"
382
542
  - ".github/FUNDING.yml"
543
+ - ".github/workflows/linting.yml"
383
544
  - ".github/workflows/plugins.yml"
384
545
  - ".github/workflows/rspec.yml"
385
546
  - ".github/workflows/typecheck.yml"
386
547
  - ".gitignore"
548
+ - ".overcommit.yml"
387
549
  - ".rspec"
550
+ - ".rubocop.yml"
551
+ - ".rubocop_todo.yml"
388
552
  - ".yardopts"
389
553
  - CHANGELOG.md
390
554
  - Gemfile
@@ -393,23 +557,29 @@ files:
393
557
  - Rakefile
394
558
  - SPONSORS.md
395
559
  - bin/solargraph
396
- - lib/.rubocop.yml
397
560
  - lib/solargraph.rb
398
561
  - lib/solargraph/api_map.rb
399
562
  - lib/solargraph/api_map/cache.rb
563
+ - lib/solargraph/api_map/constants.rb
400
564
  - lib/solargraph/api_map/index.rb
401
565
  - lib/solargraph/api_map/source_to_yard.rb
402
566
  - lib/solargraph/api_map/store.rb
403
567
  - lib/solargraph/bench.rb
404
- - lib/solargraph/cache.rb
405
568
  - lib/solargraph/complex_type.rb
406
569
  - lib/solargraph/complex_type/type_methods.rb
407
570
  - lib/solargraph/complex_type/unique_type.rb
408
571
  - lib/solargraph/convention.rb
572
+ - lib/solargraph/convention/active_support_concern.rb
409
573
  - lib/solargraph/convention/base.rb
574
+ - lib/solargraph/convention/data_definition.rb
575
+ - lib/solargraph/convention/data_definition/data_assignment_node.rb
576
+ - lib/solargraph/convention/data_definition/data_definition_node.rb
410
577
  - lib/solargraph/convention/gemfile.rb
411
578
  - lib/solargraph/convention/gemspec.rb
412
579
  - lib/solargraph/convention/rakefile.rb
580
+ - lib/solargraph/convention/struct_definition.rb
581
+ - lib/solargraph/convention/struct_definition/struct_assignment_node.rb
582
+ - lib/solargraph/convention/struct_definition/struct_definition_node.rb
413
583
  - lib/solargraph/converters/dd.rb
414
584
  - lib/solargraph/converters/dl.rb
415
585
  - lib/solargraph/converters/dt.rb
@@ -493,7 +663,7 @@ files:
493
663
  - lib/solargraph/page.rb
494
664
  - lib/solargraph/parser.rb
495
665
  - lib/solargraph/parser/comment_ripper.rb
496
- - lib/solargraph/parser/node_methods.rb
666
+ - lib/solargraph/parser/flow_sensitive_typing.rb
497
667
  - lib/solargraph/parser/node_processor.rb
498
668
  - lib/solargraph/parser/node_processor/base.rb
499
669
  - lib/solargraph/parser/parser_gem.rb
@@ -503,6 +673,7 @@ files:
503
673
  - lib/solargraph/parser/parser_gem/node_methods.rb
504
674
  - lib/solargraph/parser/parser_gem/node_processors.rb
505
675
  - lib/solargraph/parser/parser_gem/node_processors/alias_node.rb
676
+ - lib/solargraph/parser/parser_gem/node_processors/and_node.rb
506
677
  - lib/solargraph/parser/parser_gem/node_processors/args_node.rb
507
678
  - lib/solargraph/parser/parser_gem/node_processors/begin_node.rb
508
679
  - lib/solargraph/parser/parser_gem/node_processors/block_node.rb
@@ -511,21 +682,26 @@ files:
511
682
  - lib/solargraph/parser/parser_gem/node_processors/def_node.rb
512
683
  - lib/solargraph/parser/parser_gem/node_processors/defs_node.rb
513
684
  - lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb
685
+ - lib/solargraph/parser/parser_gem/node_processors/if_node.rb
514
686
  - lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb
515
687
  - lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb
516
688
  - lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb
517
689
  - lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb
690
+ - lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb
518
691
  - lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb
519
692
  - lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb
520
693
  - lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb
521
694
  - lib/solargraph/parser/parser_gem/node_processors/send_node.rb
522
695
  - lib/solargraph/parser/parser_gem/node_processors/sym_node.rb
696
+ - lib/solargraph/parser/parser_gem/node_processors/until_node.rb
697
+ - lib/solargraph/parser/parser_gem/node_processors/while_node.rb
523
698
  - lib/solargraph/parser/region.rb
524
699
  - lib/solargraph/parser/snippet.rb
525
700
  - lib/solargraph/pin.rb
526
701
  - lib/solargraph/pin/base.rb
527
702
  - lib/solargraph/pin/base_variable.rb
528
703
  - lib/solargraph/pin/block.rb
704
+ - lib/solargraph/pin/breakable.rb
529
705
  - lib/solargraph/pin/callable.rb
530
706
  - lib/solargraph/pin/class_variable.rb
531
707
  - lib/solargraph/pin/closure.rb
@@ -556,6 +732,9 @@ files:
556
732
  - lib/solargraph/pin/signature.rb
557
733
  - lib/solargraph/pin/singleton.rb
558
734
  - lib/solargraph/pin/symbol.rb
735
+ - lib/solargraph/pin/until.rb
736
+ - lib/solargraph/pin/while.rb
737
+ - lib/solargraph/pin_cache.rb
559
738
  - lib/solargraph/position.rb
560
739
  - lib/solargraph/range.rb
561
740
  - lib/solargraph/rbs_map.rb
@@ -609,6 +788,7 @@ files:
609
788
  - lib/solargraph/views/search.erb
610
789
  - lib/solargraph/workspace.rb
611
790
  - lib/solargraph/workspace/config.rb
791
+ - lib/solargraph/workspace/require_paths.rb
612
792
  - lib/solargraph/yard_map.rb
613
793
  - lib/solargraph/yard_map/cache.rb
614
794
  - lib/solargraph/yard_map/helpers.rb
@@ -619,6 +799,24 @@ files:
619
799
  - lib/solargraph/yard_map/to_method.rb
620
800
  - lib/solargraph/yard_tags.rb
621
801
  - lib/solargraph/yardoc.rb
802
+ - rbs/fills/bundler/0/bundler.rbs
803
+ - rbs/fills/open3/0/open3.rbs
804
+ - rbs/fills/rubygems/0/basic_specification.rbs
805
+ - rbs/fills/rubygems/0/errors.rbs
806
+ - rbs/fills/rubygems/0/spec_fetcher.rbs
807
+ - rbs/fills/rubygems/0/specification.rbs
808
+ - rbs/fills/tuple/tuple.rbs
809
+ - rbs/shims/ast/0/node.rbs
810
+ - rbs/shims/ast/2.4/.rbs_meta.yaml
811
+ - rbs/shims/ast/2.4/ast.rbs
812
+ - rbs/shims/parser/3.2.0.1/builders/default.rbs
813
+ - rbs/shims/parser/3.2.0.1/manifest.yaml
814
+ - rbs/shims/parser/3.2.0.1/parser.rbs
815
+ - rbs/shims/parser/3.2.0.1/polyfill.rbs
816
+ - rbs/shims/thor/1.2.0.1/.rbs_meta.yaml
817
+ - rbs/shims/thor/1.2.0.1/manifest.yaml
818
+ - rbs/shims/thor/1.2.0.1/thor.rbs
819
+ - rbs_collection.yaml
622
820
  - solargraph.gemspec
623
821
  homepage: https://solargraph.org
624
822
  licenses:
@@ -628,7 +826,7 @@ metadata:
628
826
  bug_tracker_uri: https://github.com/castwide/solargraph/issues
629
827
  changelog_uri: https://github.com/castwide/solargraph/blob/master/CHANGELOG.md
630
828
  source_code_uri: https://github.com/castwide/solargraph
631
- post_install_message:
829
+ rubygems_mfa_required: 'true'
632
830
  rdoc_options: []
633
831
  require_paths:
634
832
  - lib
@@ -643,8 +841,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
643
841
  - !ruby/object:Gem::Version
644
842
  version: '0'
645
843
  requirements: []
646
- rubygems_version: 3.3.7
647
- signing_key:
844
+ rubygems_version: 3.6.7
648
845
  specification_version: 4
649
846
  summary: A Ruby language server
650
847
  test_files: []
data/lib/.rubocop.yml DELETED
@@ -1,22 +0,0 @@
1
- AllCops:
2
- NewCops: enable
3
- Style/MethodDefParentheses:
4
- Enabled: false
5
- Layout/EmptyLineAfterGuardClause:
6
- Enabled: false
7
- Layout/SpaceAroundMethodCallOperator:
8
- Enabled: true
9
- Lint/RaiseException:
10
- Enabled: true
11
- Lint/StructNewOverride:
12
- Enabled: true
13
- Metrics/MethodLength:
14
- Max: 25
15
- Style/ExponentialNotation:
16
- Enabled: true
17
- Style/HashEachMethods:
18
- Enabled: true
19
- Style/HashTransformKeys:
20
- Enabled: true
21
- Style/HashTransformValues:
22
- Enabled: true
@@ -1,77 +0,0 @@
1
- require 'fileutils'
2
- require 'rbs'
3
-
4
- module Solargraph
5
- module Cache
6
- class << self
7
- # The base directory where cached documentation is installed.
8
- #
9
- # @return [String]
10
- def base_dir
11
- # The directory is not stored in a variable so it can be overridden
12
- # in specs.
13
- ENV['SOLARGRAPH_CACHE'] ||
14
- (ENV['XDG_CACHE_HOME'] ? File.join(ENV['XDG_CACHE_HOME'], 'solargraph') : nil) ||
15
- File.join(Dir.home, '.cache', 'solargraph')
16
- end
17
-
18
- # The working directory for the current Ruby, RBS, and Solargraph versions.
19
- #
20
- # @return [String]
21
- def work_dir
22
- # The directory is not stored in a variable so it can be overridden
23
- # in specs.
24
- File.join(base_dir, "ruby-#{RUBY_VERSION}", "rbs-#{RBS::VERSION}", "solargraph-#{Solargraph::VERSION}")
25
- end
26
-
27
- # Append the given path to the current cache directory (`work_dir`).
28
- #
29
- # @example
30
- # Cache.join('date-3.4.1.ser')
31
- #
32
- # @param path [Array<String>]
33
- # @return [String]
34
- def join *path
35
- File.join(work_dir, *path)
36
- end
37
-
38
- # @param path [Array<String>]
39
- # @return [Array<Solargraph::Pin::Base>, nil]
40
- def load *path
41
- file = join(*path)
42
- return nil unless File.file?(file)
43
- Marshal.load(File.read(file, mode: 'rb'))
44
- rescue StandardError => e
45
- Solargraph.logger.warn "Failed to load cached file #{file}: [#{e.class}] #{e.message}"
46
- FileUtils.rm_f file
47
- nil
48
- end
49
-
50
- def exist? *path
51
- File.file? join(*path)
52
- end
53
-
54
- # @param path [Array<String>]
55
- # @param pins [Array<Pin::Base>]
56
- # @return [void]
57
- def save *path, pins
58
- file = File.join(work_dir, *path)
59
- base = File.dirname(file)
60
- FileUtils.mkdir_p base unless File.directory?(base)
61
- ser = Marshal.dump(pins)
62
- File.write file, ser, mode: 'wb'
63
- end
64
-
65
- # @return [void]
66
- # @param path [Array<String>]
67
- def uncache *path
68
- FileUtils.rm_rf File.join(work_dir, *path), secure: true
69
- end
70
-
71
- # @return [void]
72
- def clear
73
- FileUtils.rm_rf base_dir, secure: true
74
- end
75
- end
76
- end
77
- end