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.
- checksums.yaml +4 -4
- data/.gitattributes +2 -0
- data/.github/workflows/linting.yml +4 -2
- data/.github/workflows/plugins.yml +61 -27
- data/.github/workflows/rspec.yml +19 -4
- data/.github/workflows/typecheck.yml +2 -2
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +90 -1438
- data/CHANGELOG.md +30 -0
- data/Rakefile +1 -1
- data/bin/solargraph +3 -0
- data/lib/solargraph/api_map/constants.rb +107 -46
- data/lib/solargraph/api_map/index.rb +32 -8
- data/lib/solargraph/api_map/source_to_yard.rb +5 -2
- data/lib/solargraph/api_map/store.rb +22 -12
- data/lib/solargraph/api_map.rb +27 -33
- data/lib/solargraph/complex_type/type_methods.rb +5 -0
- data/lib/solargraph/complex_type/unique_type.rb +12 -5
- data/lib/solargraph/complex_type.rb +19 -2
- data/lib/solargraph/convention/active_support_concern.rb +1 -1
- data/lib/solargraph/convention/data_definition/data_definition_node.rb +1 -1
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +4 -2
- data/lib/solargraph/doc_map.rb +9 -6
- data/lib/solargraph/environ.rb +1 -1
- data/lib/solargraph/equality.rb +1 -0
- data/lib/solargraph/gem_pins.rb +4 -0
- data/lib/solargraph/language_server/host.rb +10 -4
- data/lib/solargraph/language_server/message/text_document/definition.rb +2 -2
- data/lib/solargraph/language_server/message/text_document/formatting.rb +4 -1
- data/lib/solargraph/language_server/message/text_document/type_definition.rb +1 -1
- data/lib/solargraph/language_server/progress.rb +1 -1
- data/lib/solargraph/language_server/request.rb +3 -1
- data/lib/solargraph/library.rb +3 -3
- data/lib/solargraph/location.rb +1 -0
- data/lib/solargraph/page.rb +0 -1
- data/lib/solargraph/parser/flow_sensitive_typing.rb +1 -1
- data/lib/solargraph/parser/parser_gem/class_methods.rb +2 -12
- data/lib/solargraph/parser/parser_gem/node_methods.rb +1 -14
- data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +1 -0
- data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +64 -8
- data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +12 -3
- data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +4 -5
- data/lib/solargraph/pin/base.rb +29 -8
- data/lib/solargraph/pin/base_variable.rb +5 -3
- data/lib/solargraph/pin/block.rb +3 -2
- data/lib/solargraph/pin/callable.rb +6 -2
- data/lib/solargraph/pin/closure.rb +3 -7
- data/lib/solargraph/pin/delegated_method.rb +0 -1
- data/lib/solargraph/pin/local_variable.rb +0 -4
- data/lib/solargraph/pin/method.rb +20 -4
- data/lib/solargraph/pin/parameter.rb +6 -2
- data/lib/solargraph/pin/proxy_type.rb +4 -1
- data/lib/solargraph/pin/reference.rb +2 -11
- data/lib/solargraph/pin/search.rb +3 -0
- data/lib/solargraph/pin_cache.rb +5 -5
- data/lib/solargraph/position.rb +1 -0
- data/lib/solargraph/range.rb +4 -0
- data/lib/solargraph/rbs_map/conversions.rb +22 -1
- data/lib/solargraph/rbs_map/core_fills.rb +18 -0
- data/lib/solargraph/rbs_map/core_map.rb +11 -7
- data/lib/solargraph/rbs_map.rb +2 -2
- data/lib/solargraph/shell.rb +82 -1
- data/lib/solargraph/source/chain/call.rb +7 -3
- data/lib/solargraph/source/chain/constant.rb +3 -66
- data/lib/solargraph/source/chain/if.rb +1 -1
- data/lib/solargraph/source/chain/link.rb +1 -1
- data/lib/solargraph/source/chain/or.rb +1 -1
- data/lib/solargraph/source/chain.rb +2 -0
- data/lib/solargraph/source/encoding_fixes.rb +23 -23
- data/lib/solargraph/source.rb +1 -1
- data/lib/solargraph/source_map/clip.rb +17 -25
- data/lib/solargraph/source_map/mapper.rb +0 -2
- data/lib/solargraph/source_map.rb +8 -3
- data/lib/solargraph/type_checker/rules.rb +23 -9
- data/lib/solargraph/type_checker.rb +133 -71
- data/lib/solargraph/version.rb +5 -5
- data/lib/solargraph/workspace/config.rb +21 -3
- data/lib/solargraph/workspace/require_paths.rb +0 -1
- data/lib/solargraph/workspace.rb +14 -19
- data/lib/solargraph/yard_map/mapper/to_method.rb +2 -1
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +1 -0
- data/lib/solargraph/yard_map/to_method.rb +2 -1
- data/lib/solargraph/yardoc.rb +27 -4
- data/rbs/fills/bundler/0/bundler.rbs +4271 -0
- data/rbs/fills/open3/0/open3.rbs +172 -0
- data/rbs/fills/rubygems/0/basic_specification.rbs +326 -0
- data/rbs/fills/rubygems/0/errors.rbs +364 -0
- data/rbs/fills/rubygems/0/spec_fetcher.rbs +107 -0
- data/rbs/fills/rubygems/0/specification.rbs +1753 -0
- data/rbs_collection.yaml +4 -4
- data/sig/shims/ast/0/node.rbs +5 -0
- data/sig/shims/ast/2.4/.rbs_meta.yaml +9 -0
- data/sig/shims/ast/2.4/ast.rbs +73 -0
- data/sig/shims/parser/3.2.0.1/manifest.yaml +7 -0
- data/sig/shims/parser/3.2.0.1/parser.rbs +201 -0
- data/sig/shims/parser/3.2.0.1/polyfill.rbs +4 -0
- data/solargraph.gemspec +15 -4
- metadata +67 -12
- data/lib/solargraph/parser/node_methods.rb +0 -97
- /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,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
|
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', '
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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/
|
|
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
|