solargraph 0.57.0 → 0.58.1

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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +2 -0
  3. data/.github/workflows/linting.yml +4 -2
  4. data/.github/workflows/plugins.yml +61 -27
  5. data/.github/workflows/rspec.yml +19 -4
  6. data/.github/workflows/typecheck.yml +2 -2
  7. data/.rubocop.yml +1 -1
  8. data/.rubocop_todo.yml +90 -1438
  9. data/CHANGELOG.md +30 -0
  10. data/Rakefile +1 -1
  11. data/bin/solargraph +3 -0
  12. data/lib/solargraph/api_map/constants.rb +107 -46
  13. data/lib/solargraph/api_map/index.rb +32 -8
  14. data/lib/solargraph/api_map/source_to_yard.rb +5 -2
  15. data/lib/solargraph/api_map/store.rb +22 -12
  16. data/lib/solargraph/api_map.rb +27 -33
  17. data/lib/solargraph/complex_type/type_methods.rb +5 -0
  18. data/lib/solargraph/complex_type/unique_type.rb +12 -5
  19. data/lib/solargraph/complex_type.rb +19 -2
  20. data/lib/solargraph/convention/active_support_concern.rb +1 -1
  21. data/lib/solargraph/convention/data_definition/data_definition_node.rb +1 -1
  22. data/lib/solargraph/diagnostics/rubocop_helpers.rb +4 -2
  23. data/lib/solargraph/doc_map.rb +9 -6
  24. data/lib/solargraph/environ.rb +1 -1
  25. data/lib/solargraph/equality.rb +1 -0
  26. data/lib/solargraph/gem_pins.rb +4 -0
  27. data/lib/solargraph/language_server/host.rb +10 -4
  28. data/lib/solargraph/language_server/message/text_document/definition.rb +2 -2
  29. data/lib/solargraph/language_server/message/text_document/formatting.rb +4 -1
  30. data/lib/solargraph/language_server/message/text_document/type_definition.rb +1 -1
  31. data/lib/solargraph/language_server/progress.rb +1 -1
  32. data/lib/solargraph/language_server/request.rb +3 -1
  33. data/lib/solargraph/library.rb +3 -3
  34. data/lib/solargraph/location.rb +1 -0
  35. data/lib/solargraph/page.rb +0 -1
  36. data/lib/solargraph/parser/flow_sensitive_typing.rb +1 -1
  37. data/lib/solargraph/parser/parser_gem/class_methods.rb +2 -12
  38. data/lib/solargraph/parser/parser_gem/node_methods.rb +1 -14
  39. data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +1 -0
  40. data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +64 -8
  41. data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +12 -3
  42. data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +4 -5
  43. data/lib/solargraph/pin/base.rb +29 -8
  44. data/lib/solargraph/pin/base_variable.rb +5 -3
  45. data/lib/solargraph/pin/block.rb +3 -2
  46. data/lib/solargraph/pin/callable.rb +6 -2
  47. data/lib/solargraph/pin/closure.rb +3 -7
  48. data/lib/solargraph/pin/delegated_method.rb +0 -1
  49. data/lib/solargraph/pin/local_variable.rb +0 -4
  50. data/lib/solargraph/pin/method.rb +20 -4
  51. data/lib/solargraph/pin/parameter.rb +6 -2
  52. data/lib/solargraph/pin/proxy_type.rb +4 -1
  53. data/lib/solargraph/pin/reference.rb +2 -11
  54. data/lib/solargraph/pin/search.rb +3 -0
  55. data/lib/solargraph/pin_cache.rb +5 -5
  56. data/lib/solargraph/position.rb +1 -0
  57. data/lib/solargraph/range.rb +4 -0
  58. data/lib/solargraph/rbs_map/conversions.rb +22 -1
  59. data/lib/solargraph/rbs_map/core_fills.rb +18 -0
  60. data/lib/solargraph/rbs_map/core_map.rb +11 -7
  61. data/lib/solargraph/rbs_map.rb +2 -2
  62. data/lib/solargraph/shell.rb +82 -1
  63. data/lib/solargraph/source/chain/call.rb +7 -3
  64. data/lib/solargraph/source/chain/constant.rb +3 -66
  65. data/lib/solargraph/source/chain/if.rb +1 -1
  66. data/lib/solargraph/source/chain/link.rb +1 -1
  67. data/lib/solargraph/source/chain/or.rb +1 -1
  68. data/lib/solargraph/source/chain.rb +2 -0
  69. data/lib/solargraph/source/encoding_fixes.rb +23 -23
  70. data/lib/solargraph/source.rb +1 -1
  71. data/lib/solargraph/source_map/clip.rb +17 -25
  72. data/lib/solargraph/source_map/mapper.rb +0 -2
  73. data/lib/solargraph/source_map.rb +8 -3
  74. data/lib/solargraph/type_checker/rules.rb +23 -9
  75. data/lib/solargraph/type_checker.rb +133 -71
  76. data/lib/solargraph/version.rb +5 -5
  77. data/lib/solargraph/workspace/config.rb +21 -3
  78. data/lib/solargraph/workspace/require_paths.rb +0 -1
  79. data/lib/solargraph/workspace.rb +14 -19
  80. data/lib/solargraph/yard_map/mapper/to_method.rb +2 -1
  81. data/lib/solargraph/yard_map/mapper/to_namespace.rb +1 -0
  82. data/lib/solargraph/yard_map/to_method.rb +2 -1
  83. data/lib/solargraph/yardoc.rb +27 -4
  84. data/rbs/fills/bundler/0/bundler.rbs +4271 -0
  85. data/rbs/fills/open3/0/open3.rbs +172 -0
  86. data/rbs/fills/rubygems/0/basic_specification.rbs +326 -0
  87. data/rbs/fills/rubygems/0/errors.rbs +364 -0
  88. data/rbs/fills/rubygems/0/spec_fetcher.rbs +107 -0
  89. data/rbs/fills/rubygems/0/specification.rbs +1753 -0
  90. data/rbs_collection.yaml +4 -4
  91. data/sig/shims/ast/0/node.rbs +5 -0
  92. data/sig/shims/ast/2.4/.rbs_meta.yaml +9 -0
  93. data/sig/shims/ast/2.4/ast.rbs +73 -0
  94. data/sig/shims/parser/3.2.0.1/manifest.yaml +7 -0
  95. data/sig/shims/parser/3.2.0.1/parser.rbs +201 -0
  96. data/sig/shims/parser/3.2.0.1/polyfill.rbs +4 -0
  97. data/solargraph.gemspec +15 -4
  98. metadata +67 -12
  99. data/lib/solargraph/parser/node_methods.rb +0 -97
  100. /data/rbs/fills/{tuple.rbs → tuple/tuple.rbs} +0 -0
data/rbs_collection.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  # Download sources
2
2
  sources:
3
+ - type: local
4
+ name: shims
5
+ path: sig/shims
6
+
3
7
  - type: git
4
8
  name: ruby/gem_rbs_collection
5
9
  remote: https://github.com/ruby/gem_rbs_collection.git
6
10
  revision: main
7
11
  repo_dir: gems
8
12
 
9
- # You can specify local directories as sources also.
10
- # - type: local
11
- # path: path/to/your/local/repository
12
-
13
13
  # A directory to install the downloaded RBSs
14
14
  path: .gem_rbs_collection
15
15
 
@@ -0,0 +1,5 @@
1
+ module ::AST
2
+ class Node
3
+ def children: () -> [self, Integer, String, Symbol, nil]
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ ---
2
+ name: ast
3
+ version: '2.4'
4
+ source:
5
+ type: git
6
+ name: ruby/gem_rbs_collection
7
+ revision: c604d278dd6c14a1bb6cf0c0051af643b268a981
8
+ remote: https://github.com/ruby/gem_rbs_collection.git
9
+ repo_dir: gems
@@ -0,0 +1,73 @@
1
+ module AST
2
+ interface _ToAst
3
+ def to_ast: () -> Node
4
+ end
5
+
6
+ interface _ToSym
7
+ def to_sym: () -> Symbol
8
+ end
9
+
10
+ class Node
11
+ public
12
+
13
+ attr_reader children: Array[self]
14
+ attr_reader hash: String
15
+ attr_reader type: Symbol
16
+
17
+ alias + concat
18
+
19
+ alias << append
20
+
21
+ def ==: (untyped other) -> bool
22
+
23
+ def append: (untyped element) -> self
24
+
25
+ alias clone dup
26
+
27
+ def concat: (_ToA[untyped] array) -> self
28
+
29
+ def dup: () -> self
30
+
31
+ def eql?: (untyped other) -> bool
32
+
33
+ def inspect: (?Integer indent) -> String
34
+
35
+ alias to_a children
36
+
37
+ def to_ast: () -> self
38
+
39
+ alias to_s to_sexp
40
+
41
+ def to_sexp: (?Integer indent) -> String
42
+
43
+ def to_sexp_array: () -> Array[untyped]
44
+
45
+ def updated: (?_ToSym? `type`, ?_ToA[untyped]? children, ?Hash[Symbol, untyped]? properties) -> self
46
+
47
+ private
48
+
49
+ def initialize: (_ToSym `type`, ?_ToA[untyped]? children, ?Hash[Symbol, untyped] properties) -> void
50
+
51
+ alias original_dup dup
52
+ end
53
+
54
+ class Processor
55
+ include Mixin
56
+
57
+ module Mixin
58
+ public
59
+
60
+ def handler_missing: (Node node) -> Node?
61
+
62
+ def process: (_ToAst? node) -> Node?
63
+
64
+ def process_all: (Array[_ToAst] nodes) -> Array[Node]
65
+ end
66
+ end
67
+
68
+ module Sexp
69
+ public
70
+
71
+ def s: (_ToSym `type`, *untyped children) -> Node
72
+ end
73
+ end
@@ -0,0 +1,7 @@
1
+ # manifest.yaml describes dependencies which do not appear in the gemspec.
2
+ # If this gem includes such dependencies, comment-out the following lines and
3
+ # declare the dependencies.
4
+ # If all dependencies appear in the gemspec, you should remove this file.
5
+ #
6
+ dependencies:
7
+ - name: ast
@@ -0,0 +1,201 @@
1
+ module Parser
2
+ CurrentRuby: Parser::Base
3
+
4
+ class SyntaxError < StandardError
5
+ end
6
+ class UnknownEncodingInMagicComment < StandardError
7
+ end
8
+
9
+ class Base < Racc::Parser
10
+ def version: -> Integer
11
+ def self.parse: (String string, ?String file, ?Integer line) -> Parser::AST::Node?
12
+ def self.parse_with_comments: (String string, ?String file, ?Integer line) -> [Parser::AST::Node?, Array[Source::Comment]]
13
+ def parse: (Parser::Source::Buffer source_buffer) -> Parser::AST::Node?
14
+ end
15
+
16
+ class Ruby18 < Base
17
+ end
18
+ class Ruby19 < Base
19
+ end
20
+ class Ruby20 < Base
21
+ end
22
+ class Ruby21 < Base
23
+ end
24
+ class Ruby22 < Base
25
+ end
26
+ class Ruby23 < Base
27
+ end
28
+ class Ruby24 < Base
29
+ end
30
+ class Ruby25 < Base
31
+ end
32
+ class Ruby26 < Base
33
+ end
34
+ class Ruby27 < Base
35
+ end
36
+ class Ruby30 < Base
37
+ end
38
+ class Ruby31 < Base
39
+ end
40
+ class Ruby32 < Base
41
+ end
42
+ class Ruby33 < Base
43
+ end
44
+
45
+ module AST
46
+ class Node < ::AST::Node
47
+ attr_reader location: Source::Map
48
+ alias loc location
49
+
50
+ def children: () -> Array[self]
51
+ end
52
+
53
+ class Processor
54
+ module Mixin
55
+ def process: (Node? node) -> Node?
56
+ end
57
+
58
+ include Mixin
59
+ end
60
+ end
61
+
62
+ module Source
63
+ class Range
64
+ attr_reader source_buffer: Buffer
65
+ attr_reader begin_pos: Integer
66
+ attr_reader end_pos: Integer
67
+ def begin: () -> Range
68
+ def end: () -> Range
69
+ def size: () -> Integer
70
+ alias length size
71
+ def line: () -> Integer
72
+ alias first_line line
73
+ def column: () -> Integer
74
+ def last_line: () -> Integer
75
+ def last_column: () -> Integer
76
+ def column_range: () -> ::Range[Integer]
77
+ def source_line: () -> String
78
+ def source: () -> String
79
+ def with: (?begin_pos: Integer, ?end_pos: Integer) -> Range
80
+ def adjust: (?begin_pos: Integer, ?end_pos: Integer) -> Range
81
+ def resize: (Integer new_size) -> Range
82
+ def join: (Range other) -> Range
83
+ def intersect: (Range other) -> Range?
84
+ def disjoint?: (Range other) -> bool
85
+ def overlaps?: (Range other) -> bool
86
+ def contains?: (Range other) -> bool
87
+ def contained?: (Range other) -> bool
88
+ def crossing?: (Range other) -> bool
89
+ def empty?: () -> bool
90
+ end
91
+
92
+ ##
93
+ # A buffer with source code. {Buffer} contains the source code itself,
94
+ # associated location information (name and first line), and takes care
95
+ # of encoding.
96
+ #
97
+ # A source buffer is immutable once populated.
98
+ #
99
+ # @!attribute [r] name
100
+ # Buffer name. If the buffer was created from a file, the name corresponds
101
+ # to relative path to the file.
102
+ # @return [String] buffer name
103
+ #
104
+ # @!attribute [r] first_line
105
+ # First line of the buffer, 1 by default.
106
+ # @return [Integer] first line
107
+ #
108
+ # @api public
109
+ #
110
+ class Buffer
111
+ attr_reader name: String
112
+ attr_reader first_line: Integer
113
+
114
+ def self.recognize_encoding: (String) -> Encoding
115
+ def self.reencode_string: (String) -> String
116
+
117
+ def initialize: (untyped name, ?Integer first_line, ?source: untyped) -> void
118
+ def read: () -> self
119
+ def source: () -> String
120
+ def source=: (String) -> String
121
+ def raw_source: (String) -> String
122
+ def decompose_position: (Integer) -> [Integer, Integer]
123
+ def source_lines: () -> Array[String]
124
+ def source_line: (Integer) -> String
125
+ def line_range: (Integer) -> ::Range[Integer]
126
+ def source_range: () -> ::Range[Integer]
127
+ def last_line: () -> Integer
128
+ end
129
+
130
+ class TreeRewriter
131
+ def replace: (Range range, String content) -> self
132
+ def remove: (Range range) -> self
133
+ def insert_before: (Range range, String content) -> self
134
+ def insert_after: (Range range, String content) -> self
135
+ end
136
+
137
+ class Map
138
+ attr_reader node: AST::Node | nil
139
+ attr_reader expression: Range
140
+ def line: () -> Integer
141
+ def first_line: () -> Integer
142
+ def last_line: () -> Integer
143
+ def column: () -> Integer
144
+ def last_column: () -> Integer
145
+ end
146
+
147
+ class Map::Collection < Map
148
+ attr_reader begin: Range?
149
+ attr_reader end: Range?
150
+ end
151
+
152
+ class Map::Condition < Map
153
+ attr_reader keyword: Range
154
+ attr_reader begin: Range?
155
+ attr_reader else: Range?
156
+ attr_reader end: Range
157
+ end
158
+
159
+ class Map::Heredoc < Map
160
+ attr_reader heredoc_body: Range
161
+ attr_reader heredoc_end: Range
162
+ end
163
+
164
+ class Map::Keyword < Map
165
+ attr_reader keyword: Range
166
+ attr_reader begin: Range?
167
+ attr_reader end: Range?
168
+ end
169
+
170
+ class Map::MethodDefinition < Map
171
+ attr_reader keyword: Range
172
+ attr_reader operator: Range?
173
+ attr_reader name: Range?
174
+ attr_reader end: Range?
175
+ attr_reader assignment: Range?
176
+ end
177
+
178
+ class Map::Operator < Map
179
+ attr_reader operator: Range?
180
+ end
181
+
182
+ class Map::Send < Map
183
+ attr_reader dot: Range?
184
+ attr_reader selector: Range
185
+ attr_reader operator: Range?
186
+ attr_reader begin: Range?
187
+ attr_reader end: Range?
188
+ end
189
+
190
+ class Map::Ternary < Map
191
+ attr_reader question: Range?
192
+ attr_reader colon: Range
193
+ end
194
+
195
+ class Comment
196
+ attr_reader text: String
197
+ attr_reader location: Map
198
+ alias loc location
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,4 @@
1
+ module Racc
2
+ class Parser
3
+ end
4
+ end
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
@@ -23,12 +24,14 @@ Gem::Specification.new do |s|
23
24
  s.metadata["bug_tracker_uri"] = "https://github.com/castwide/solargraph/issues"
24
25
  s.metadata["changelog_uri"] = "https://github.com/castwide/solargraph/blob/master/CHANGELOG.md"
25
26
  s.metadata["source_code_uri"] = "https://github.com/castwide/solargraph"
27
+ s.metadata["rubygems_mfa_required"] = "true"
26
28
 
27
29
  s.required_ruby_version = '>= 3.0'
28
30
 
31
+ s.add_runtime_dependency 'ast', '~> 2.4.3'
29
32
  s.add_runtime_dependency 'backport', '~> 1.2'
30
33
  s.add_runtime_dependency 'benchmark', '~> 0.4'
31
- s.add_runtime_dependency 'bundler', '~> 2.0'
34
+ s.add_runtime_dependency 'bundler', '>= 2.0'
32
35
  s.add_runtime_dependency 'diff-lcs', '~> 1.4'
33
36
  s.add_runtime_dependency 'jaro_winkler', '~> 1.6', '>= 1.6.1'
34
37
  s.add_runtime_dependency 'kramdown', '~> 2.3'
@@ -36,6 +39,7 @@ Gem::Specification.new do |s|
36
39
  s.add_runtime_dependency 'logger', '~> 1.6'
37
40
  s.add_runtime_dependency 'observer', '~> 0.1'
38
41
  s.add_runtime_dependency 'ostruct', '~> 0.6'
42
+ s.add_runtime_dependency 'open3', '~> 0.2.1'
39
43
  s.add_runtime_dependency 'parser', '~> 3.0'
40
44
  s.add_runtime_dependency 'prism', '~> 1.4'
41
45
  s.add_runtime_dependency 'rbs', ['>= 3.6.1', '<= 4.0.0.dev.4']
@@ -51,9 +55,16 @@ Gem::Specification.new do |s|
51
55
  s.add_development_dependency 'public_suffix', '~> 3.1'
52
56
  s.add_development_dependency 'rake', '~> 13.2'
53
57
  s.add_development_dependency 'rspec', '~> 3.5'
54
- s.add_development_dependency 'rubocop-rake', '~> 0.7'
55
- s.add_development_dependency 'rubocop-rspec', '~> 3.6'
56
- s.add_development_dependency 'rubocop-yard', '~> 1.0'
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'
57
68
  s.add_development_dependency 'simplecov', '~> 0.21'
58
69
  s.add_development_dependency 'simplecov-lcov', '~> 0.8'
59
70
  s.add_development_dependency 'undercover', '~> 0.7'
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solargraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.57.0
4
+ version: 0.58.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-09-16 00:00:00.000000000 Z
10
+ date: 2026-01-02 00:00:00.000000000 Z
11
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
12
26
  - !ruby/object:Gem::Dependency
13
27
  name: backport
14
28
  requirement: !ruby/object:Gem::Requirement
@@ -41,14 +55,14 @@ dependencies:
41
55
  name: bundler
42
56
  requirement: !ruby/object:Gem::Requirement
43
57
  requirements:
44
- - - "~>"
58
+ - - ">="
45
59
  - !ruby/object:Gem::Version
46
60
  version: '2.0'
47
61
  type: :runtime
48
62
  prerelease: false
49
63
  version_requirements: !ruby/object:Gem::Requirement
50
64
  requirements:
51
- - - "~>"
65
+ - - ">="
52
66
  - !ruby/object:Gem::Version
53
67
  version: '2.0'
54
68
  - !ruby/object:Gem::Dependency
@@ -155,6 +169,20 @@ dependencies:
155
169
  - - "~>"
156
170
  - !ruby/object:Gem::Version
157
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
158
186
  - !ruby/object:Gem::Dependency
159
187
  name: parser
160
188
  requirement: !ruby/object:Gem::Requirement
@@ -363,48 +391,62 @@ dependencies:
363
391
  - - "~>"
364
392
  - !ruby/object:Gem::Version
365
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
366
408
  - !ruby/object:Gem::Dependency
367
409
  name: rubocop-rake
368
410
  requirement: !ruby/object:Gem::Requirement
369
411
  requirements:
370
412
  - - "~>"
371
413
  - !ruby/object:Gem::Version
372
- version: '0.7'
414
+ version: 0.7.1
373
415
  type: :development
374
416
  prerelease: false
375
417
  version_requirements: !ruby/object:Gem::Requirement
376
418
  requirements:
377
419
  - - "~>"
378
420
  - !ruby/object:Gem::Version
379
- version: '0.7'
421
+ version: 0.7.1
380
422
  - !ruby/object:Gem::Dependency
381
423
  name: rubocop-rspec
382
424
  requirement: !ruby/object:Gem::Requirement
383
425
  requirements:
384
426
  - - "~>"
385
427
  - !ruby/object:Gem::Version
386
- version: '3.6'
428
+ version: 3.6.0
387
429
  type: :development
388
430
  prerelease: false
389
431
  version_requirements: !ruby/object:Gem::Requirement
390
432
  requirements:
391
433
  - - "~>"
392
434
  - !ruby/object:Gem::Version
393
- version: '3.6'
435
+ version: 3.6.0
394
436
  - !ruby/object:Gem::Dependency
395
437
  name: rubocop-yard
396
438
  requirement: !ruby/object:Gem::Requirement
397
439
  requirements:
398
440
  - - "~>"
399
441
  - !ruby/object:Gem::Version
400
- version: '1.0'
442
+ version: 1.0.0
401
443
  type: :development
402
444
  prerelease: false
403
445
  version_requirements: !ruby/object:Gem::Requirement
404
446
  requirements:
405
447
  - - "~>"
406
448
  - !ruby/object:Gem::Version
407
- version: '1.0'
449
+ version: 1.0.0
408
450
  - !ruby/object:Gem::Dependency
409
451
  name: simplecov
410
452
  requirement: !ruby/object:Gem::Requirement
@@ -496,6 +538,7 @@ executables:
496
538
  extensions: []
497
539
  extra_rdoc_files: []
498
540
  files:
541
+ - ".gitattributes"
499
542
  - ".github/FUNDING.yml"
500
543
  - ".github/workflows/linting.yml"
501
544
  - ".github/workflows/plugins.yml"
@@ -621,7 +664,6 @@ files:
621
664
  - lib/solargraph/parser.rb
622
665
  - lib/solargraph/parser/comment_ripper.rb
623
666
  - lib/solargraph/parser/flow_sensitive_typing.rb
624
- - lib/solargraph/parser/node_methods.rb
625
667
  - lib/solargraph/parser/node_processor.rb
626
668
  - lib/solargraph/parser/node_processor/base.rb
627
669
  - lib/solargraph/parser/parser_gem.rb
@@ -757,9 +799,21 @@ files:
757
799
  - lib/solargraph/yard_map/to_method.rb
758
800
  - lib/solargraph/yard_tags.rb
759
801
  - lib/solargraph/yardoc.rb
760
- - rbs/fills/tuple.rbs
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
761
809
  - rbs_collection.yaml
810
+ - sig/shims/ast/0/node.rbs
811
+ - sig/shims/ast/2.4/.rbs_meta.yaml
812
+ - sig/shims/ast/2.4/ast.rbs
762
813
  - sig/shims/parser/3.2.0.1/builders/default.rbs
814
+ - sig/shims/parser/3.2.0.1/manifest.yaml
815
+ - sig/shims/parser/3.2.0.1/parser.rbs
816
+ - sig/shims/parser/3.2.0.1/polyfill.rbs
763
817
  - sig/shims/thor/1.2.0.1/.rbs_meta.yaml
764
818
  - sig/shims/thor/1.2.0.1/manifest.yaml
765
819
  - sig/shims/thor/1.2.0.1/thor.rbs
@@ -772,6 +826,7 @@ metadata:
772
826
  bug_tracker_uri: https://github.com/castwide/solargraph/issues
773
827
  changelog_uri: https://github.com/castwide/solargraph/blob/master/CHANGELOG.md
774
828
  source_code_uri: https://github.com/castwide/solargraph
829
+ rubygems_mfa_required: 'true'
775
830
  rdoc_options: []
776
831
  require_paths:
777
832
  - lib
@@ -1,97 +0,0 @@
1
- module Solargraph
2
- module Parser
3
- module NodeMethods
4
- module_function
5
-
6
- # @abstract
7
- # @param node [Parser::AST::Node]
8
- # @return [String]
9
- def unpack_name node
10
- raise NotImplementedError
11
- end
12
-
13
- # @abstract
14
- # @todo Temporarily here for testing. Move to Solargraph::Parser.
15
- # @param node [Parser::AST::Node]
16
- # @return [Array<Parser::AST::Node>]
17
- def call_nodes_from node
18
- raise NotImplementedError
19
- end
20
-
21
- # Find all the nodes within the provided node that potentially return a
22
- # value.
23
- #
24
- # The node parameter typically represents a method's logic, e.g., the
25
- # second child (after the :args node) of a :def node. A simple one-line
26
- # method would typically return itself, while a node with conditions
27
- # would return the resulting node from each conditional branch. Nodes
28
- # that follow a :return node are assumed to be unreachable. Nil values
29
- # are converted to nil node types.
30
- #
31
- # @abstract
32
- # @param node [Parser::AST::Node]
33
- # @return [Array<Parser::AST::Node>]
34
- def returns_from_method_body node
35
- raise NotImplementedError
36
- end
37
-
38
- # @abstract
39
- # @param node [Parser::AST::Node]
40
- #
41
- # @return [Array<Parser::AST::Node>]
42
- def const_nodes_from node
43
- raise NotImplementedError
44
- end
45
-
46
- # @abstract
47
- # @param cursor [Solargraph::Source::Cursor]
48
- # @return [Parser::AST::Node, nil]
49
- def find_recipient_node cursor
50
- raise NotImplementedError
51
- end
52
-
53
- # @abstract
54
- # @param node [Parser::AST::Node]
55
- # @return [Array<AST::Node>] low-level value nodes in
56
- # value position. Does not include explicit return
57
- # statements
58
- def value_position_nodes_only(node)
59
- raise NotImplementedError
60
- end
61
-
62
- # @abstract
63
- # @param nodes [Enumerable<Parser::AST::Node>]
64
- def any_splatted_call?(nodes)
65
- raise NotImplementedError
66
- end
67
-
68
- # @abstract
69
- # @param node [Parser::AST::Node]
70
- # @return [void]
71
- def process node
72
- raise NotImplementedError
73
- end
74
-
75
- # @abstract
76
- # @param node [Parser::AST::Node]
77
- # @return [Hash{Symbol => Source::Chain}]
78
- def convert_hash node
79
- raise NotImplementedError
80
- end
81
-
82
- # @abstract
83
- # @param node [Parser::AST::Node]
84
- # @return [Position]
85
- def get_node_start_position(node)
86
- raise NotImplementedError
87
- end
88
-
89
- # @abstract
90
- # @param node [Parser::AST::Node]
91
- # @return [Position]
92
- def get_node_end_position(node)
93
- raise NotImplementedError
94
- end
95
- end
96
- end
97
- end
File without changes