solargraph 0.58.2 → 0.59.0.dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.envrc +3 -0
- data/.github/workflows/linting.yml +4 -5
- data/.github/workflows/plugins.yml +41 -34
- data/.github/workflows/rspec.yml +44 -23
- data/.github/workflows/typecheck.yml +2 -2
- data/.rubocop.yml +32 -5
- data/.rubocop_todo.yml +50 -966
- data/Gemfile +3 -1
- data/README.md +3 -3
- data/Rakefile +26 -23
- data/bin/solargraph +2 -1
- data/lib/solargraph/api_map/cache.rb +3 -3
- data/lib/solargraph/api_map/constants.rb +13 -3
- data/lib/solargraph/api_map/index.rb +23 -18
- data/lib/solargraph/api_map/source_to_yard.rb +22 -9
- data/lib/solargraph/api_map/store.rb +33 -28
- data/lib/solargraph/api_map.rb +150 -82
- data/lib/solargraph/bench.rb +44 -45
- data/lib/solargraph/complex_type/conformance.rb +176 -0
- data/lib/solargraph/complex_type/type_methods.rb +28 -17
- data/lib/solargraph/complex_type/unique_type.rb +218 -57
- data/lib/solargraph/complex_type.rb +170 -57
- data/lib/solargraph/convention/data_definition/data_assignment_node.rb +61 -61
- data/lib/solargraph/convention/data_definition/data_definition_node.rb +7 -5
- data/lib/solargraph/convention/data_definition.rb +5 -2
- data/lib/solargraph/convention/gemfile.rb +15 -15
- data/lib/solargraph/convention/gemspec.rb +23 -23
- data/lib/solargraph/convention/rakefile.rb +17 -17
- data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +2 -1
- data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +4 -3
- data/lib/solargraph/convention/struct_definition.rb +8 -4
- data/lib/solargraph/convention.rb +78 -78
- data/lib/solargraph/converters/dd.rb +19 -17
- data/lib/solargraph/converters/dl.rb +17 -15
- data/lib/solargraph/converters/dt.rb +17 -15
- data/lib/solargraph/converters/misc.rb +3 -1
- data/lib/solargraph/diagnostics/require_not_found.rb +1 -0
- data/lib/solargraph/diagnostics/rubocop.rb +11 -10
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +5 -3
- data/lib/solargraph/diagnostics/type_check.rb +11 -10
- data/lib/solargraph/diagnostics/update_errors.rb +37 -41
- data/lib/solargraph/doc_map.rb +133 -373
- data/lib/solargraph/equality.rb +4 -4
- data/lib/solargraph/gem_pins.rb +21 -20
- data/lib/solargraph/language_server/error_codes.rb +20 -20
- data/lib/solargraph/language_server/host/diagnoser.rb +1 -1
- data/lib/solargraph/language_server/host/dispatch.rb +3 -3
- data/lib/solargraph/language_server/host/message_worker.rb +4 -3
- data/lib/solargraph/language_server/host/sources.rb +2 -1
- data/lib/solargraph/language_server/host.rb +30 -22
- data/lib/solargraph/language_server/message/base.rb +97 -97
- data/lib/solargraph/language_server/message/client/register_capability.rb +13 -15
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +58 -60
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +12 -18
- data/lib/solargraph/language_server/message/extended/document.rb +1 -0
- data/lib/solargraph/language_server/message/extended/document_gems.rb +32 -32
- data/lib/solargraph/language_server/message/extended/download_core.rb +20 -19
- data/lib/solargraph/language_server/message/extended/search.rb +20 -20
- data/lib/solargraph/language_server/message/initialize.rb +197 -191
- data/lib/solargraph/language_server/message/text_document/completion.rb +10 -8
- data/lib/solargraph/language_server/message/text_document/definition.rb +41 -32
- data/lib/solargraph/language_server/message/text_document/document_highlight.rb +23 -16
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +29 -19
- data/lib/solargraph/language_server/message/text_document/formatting.rb +8 -6
- data/lib/solargraph/language_server/message/text_document/hover.rb +5 -5
- data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +18 -11
- data/lib/solargraph/language_server/message/text_document/references.rb +23 -16
- data/lib/solargraph/language_server/message/text_document/rename.rb +26 -19
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +3 -2
- data/lib/solargraph/language_server/message/text_document/type_definition.rb +25 -17
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +41 -35
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +48 -40
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +32 -26
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +27 -17
- data/lib/solargraph/language_server/message.rb +94 -94
- data/lib/solargraph/language_server/request.rb +29 -27
- data/lib/solargraph/language_server/transport/data_reader.rb +72 -74
- data/lib/solargraph/language_server/uri_helpers.rb +49 -49
- data/lib/solargraph/library.rb +85 -44
- data/lib/solargraph/location.rb +17 -14
- data/lib/solargraph/logging.rb +24 -4
- data/lib/solargraph/page.rb +92 -92
- data/lib/solargraph/parser/comment_ripper.rb +19 -4
- data/lib/solargraph/parser/flow_sensitive_typing.rb +326 -108
- data/lib/solargraph/parser/node_processor/base.rb +34 -4
- data/lib/solargraph/parser/node_processor.rb +8 -7
- data/lib/solargraph/parser/parser_gem/class_methods.rb +32 -14
- data/lib/solargraph/parser/parser_gem/flawed_builder.rb +19 -19
- data/lib/solargraph/parser/parser_gem/node_chainer.rb +50 -25
- data/lib/solargraph/parser/parser_gem/node_methods.rb +91 -70
- data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +4 -4
- data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +13 -11
- data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +9 -0
- data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +12 -12
- data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +10 -3
- data/lib/solargraph/parser/parser_gem/node_processors/defs_node.rb +38 -37
- data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +36 -6
- data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +5 -3
- data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +1 -0
- data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +3 -1
- data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +3 -3
- data/lib/solargraph/parser/parser_gem/node_processors/or_node.rb +22 -0
- data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +1 -1
- data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +4 -5
- data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +124 -113
- data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +29 -29
- data/lib/solargraph/parser/parser_gem/node_processors/when_node.rb +23 -0
- data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +6 -2
- data/lib/solargraph/parser/parser_gem/node_processors.rb +4 -0
- data/lib/solargraph/parser/parser_gem.rb +14 -12
- data/lib/solargraph/parser/region.rb +9 -3
- data/lib/solargraph/parser/snippet.rb +3 -1
- data/lib/solargraph/parser.rb +25 -23
- data/lib/solargraph/pin/base.rb +126 -80
- data/lib/solargraph/pin/base_variable.rb +273 -24
- data/lib/solargraph/pin/block.rb +29 -6
- data/lib/solargraph/pin/breakable.rb +7 -1
- data/lib/solargraph/pin/callable.rb +65 -21
- data/lib/solargraph/pin/closure.rb +7 -10
- data/lib/solargraph/pin/common.rb +24 -6
- data/lib/solargraph/pin/compound_statement.rb +55 -0
- data/lib/solargraph/pin/constant.rb +43 -45
- data/lib/solargraph/pin/conversions.rb +10 -4
- data/lib/solargraph/pin/delegated_method.rb +19 -8
- data/lib/solargraph/pin/documenting.rb +4 -2
- data/lib/solargraph/pin/instance_variable.rb +5 -1
- data/lib/solargraph/pin/keyword.rb +0 -4
- data/lib/solargraph/pin/local_variable.rb +15 -59
- data/lib/solargraph/pin/method.rb +153 -104
- data/lib/solargraph/pin/method_alias.rb +8 -0
- data/lib/solargraph/pin/namespace.rb +19 -12
- data/lib/solargraph/pin/parameter.rb +100 -36
- data/lib/solargraph/pin/proxy_type.rb +4 -1
- data/lib/solargraph/pin/reference/override.rb +1 -1
- data/lib/solargraph/pin/reference/superclass.rb +2 -0
- data/lib/solargraph/pin/reference.rb +19 -0
- data/lib/solargraph/pin/search.rb +3 -2
- data/lib/solargraph/pin/signature.rb +15 -12
- data/lib/solargraph/pin/symbol.rb +2 -1
- data/lib/solargraph/pin/until.rb +2 -4
- data/lib/solargraph/pin/while.rb +2 -4
- data/lib/solargraph/pin.rb +2 -0
- data/lib/solargraph/pin_cache.rb +490 -73
- data/lib/solargraph/position.rb +14 -10
- data/lib/solargraph/range.rb +16 -15
- data/lib/solargraph/rbs_map/conversions.rb +343 -214
- data/lib/solargraph/rbs_map/core_fills.rb +91 -84
- data/lib/solargraph/rbs_map/core_map.rb +24 -17
- data/lib/solargraph/rbs_map/stdlib_map.rb +33 -5
- data/lib/solargraph/rbs_map.rb +77 -32
- data/lib/solargraph/server_methods.rb +16 -16
- data/lib/solargraph/shell.rb +128 -73
- data/lib/solargraph/source/chain/array.rb +39 -37
- data/lib/solargraph/source/chain/call.rb +96 -56
- data/lib/solargraph/source/chain/class_variable.rb +13 -13
- data/lib/solargraph/source/chain/constant.rb +5 -1
- data/lib/solargraph/source/chain/global_variable.rb +13 -13
- data/lib/solargraph/source/chain/hash.rb +8 -5
- data/lib/solargraph/source/chain/if.rb +12 -10
- data/lib/solargraph/source/chain/instance_variable.rb +24 -1
- data/lib/solargraph/source/chain/link.rb +99 -109
- data/lib/solargraph/source/chain/literal.rb +9 -6
- data/lib/solargraph/source/chain/or.rb +10 -4
- data/lib/solargraph/source/chain/q_call.rb +13 -11
- data/lib/solargraph/source/chain/variable.rb +15 -13
- data/lib/solargraph/source/chain/z_super.rb +28 -30
- data/lib/solargraph/source/chain.rb +49 -38
- data/lib/solargraph/source/change.rb +12 -5
- data/lib/solargraph/source/cursor.rb +23 -17
- data/lib/solargraph/source/encoding_fixes.rb +6 -7
- data/lib/solargraph/source/source_chainer.rb +56 -32
- data/lib/solargraph/source/updater.rb +5 -1
- data/lib/solargraph/source.rb +59 -35
- data/lib/solargraph/source_map/clip.rb +48 -29
- data/lib/solargraph/source_map/data.rb +4 -1
- data/lib/solargraph/source_map/mapper.rb +71 -42
- data/lib/solargraph/source_map.rb +21 -9
- data/lib/solargraph/type_checker/problem.rb +3 -1
- data/lib/solargraph/type_checker/rules.rb +81 -8
- data/lib/solargraph/type_checker.rb +195 -120
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/workspace/config.rb +13 -10
- data/lib/solargraph/workspace/gemspecs.rb +367 -0
- data/lib/solargraph/workspace/require_paths.rb +1 -0
- data/lib/solargraph/workspace.rb +149 -30
- data/lib/solargraph/yard_map/helpers.rb +8 -3
- data/lib/solargraph/yard_map/mapper/to_method.rb +13 -7
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +2 -1
- data/lib/solargraph/yard_map/mapper.rb +13 -8
- data/lib/solargraph/yard_tags.rb +20 -20
- data/lib/solargraph/yardoc.rb +33 -23
- data/lib/solargraph.rb +29 -8
- data/rbs/fills/rubygems/0/dependency.rbs +193 -0
- data/rbs/fills/tuple/tuple.rbs +28 -0
- data/rbs/shims/ast/0/node.rbs +1 -1
- data/rbs/shims/diff-lcs/1.5/diff-lcs.rbs +11 -0
- data/solargraph.gemspec +36 -34
- metadata +38 -33
- data/lib/solargraph/type_checker/checks.rb +0 -124
- data/lib/solargraph/type_checker/param_def.rb +0 -37
- data/lib/solargraph/yard_map/to_method.rb +0 -89
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# <!-- rdoc-file=lib/rubygems/dependency.rb -->
|
|
2
|
+
# The Dependency class holds a Gem name and a Gem::Requirement.
|
|
3
|
+
#
|
|
4
|
+
class Gem::Dependency
|
|
5
|
+
@name: untyped
|
|
6
|
+
|
|
7
|
+
@requirement: untyped
|
|
8
|
+
|
|
9
|
+
@type: untyped
|
|
10
|
+
|
|
11
|
+
@prerelease: untyped
|
|
12
|
+
|
|
13
|
+
@version_requirements: untyped
|
|
14
|
+
|
|
15
|
+
@version_requirement: untyped
|
|
16
|
+
|
|
17
|
+
# <!-- rdoc-file=lib/rubygems/dependency.rb -->
|
|
18
|
+
# Valid dependency types.
|
|
19
|
+
#
|
|
20
|
+
TYPES: ::Array[:development | :runtime]
|
|
21
|
+
|
|
22
|
+
# <!-- rdoc-file=lib/rubygems/dependency.rb -->
|
|
23
|
+
# Dependency name or regular expression.
|
|
24
|
+
#
|
|
25
|
+
attr_accessor name: untyped
|
|
26
|
+
|
|
27
|
+
# <!-- rdoc-file=lib/rubygems/dependency.rb -->
|
|
28
|
+
# Allows you to force this dependency to be a prerelease.
|
|
29
|
+
#
|
|
30
|
+
attr_writer prerelease: untyped
|
|
31
|
+
|
|
32
|
+
# <!--
|
|
33
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
34
|
+
# - new(name, *requirements)
|
|
35
|
+
# -->
|
|
36
|
+
# Constructs a dependency with `name` and `requirements`. The last argument can
|
|
37
|
+
# optionally be the dependency type, which defaults to `:runtime`.
|
|
38
|
+
#
|
|
39
|
+
def initialize: (untyped name, *untyped requirements) -> void
|
|
40
|
+
|
|
41
|
+
def hash: () -> untyped
|
|
42
|
+
|
|
43
|
+
def inspect: () -> untyped
|
|
44
|
+
|
|
45
|
+
# <!--
|
|
46
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
47
|
+
# - prerelease?()
|
|
48
|
+
# -->
|
|
49
|
+
# Does this dependency require a prerelease?
|
|
50
|
+
#
|
|
51
|
+
def prerelease?: () -> untyped
|
|
52
|
+
|
|
53
|
+
# <!--
|
|
54
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
55
|
+
# - latest_version?()
|
|
56
|
+
# -->
|
|
57
|
+
# Is this dependency simply asking for the latest version of a gem?
|
|
58
|
+
#
|
|
59
|
+
def latest_version?: () -> untyped
|
|
60
|
+
|
|
61
|
+
def pretty_print: (untyped q) -> untyped
|
|
62
|
+
|
|
63
|
+
# <!--
|
|
64
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
65
|
+
# - requirement()
|
|
66
|
+
# -->
|
|
67
|
+
# What does this dependency require?
|
|
68
|
+
#
|
|
69
|
+
def requirement: () -> untyped
|
|
70
|
+
|
|
71
|
+
# <!--
|
|
72
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
73
|
+
# - requirements_list()
|
|
74
|
+
# -->
|
|
75
|
+
#
|
|
76
|
+
def requirements_list: () -> untyped
|
|
77
|
+
|
|
78
|
+
def to_s: () -> ::String
|
|
79
|
+
|
|
80
|
+
# <!--
|
|
81
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
82
|
+
# - type()
|
|
83
|
+
# -->
|
|
84
|
+
# Dependency type.
|
|
85
|
+
#
|
|
86
|
+
def type: () -> untyped
|
|
87
|
+
|
|
88
|
+
# <!--
|
|
89
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
90
|
+
# - runtime?()
|
|
91
|
+
# -->
|
|
92
|
+
#
|
|
93
|
+
def runtime?: () -> untyped
|
|
94
|
+
|
|
95
|
+
def ==: (untyped other) -> untyped
|
|
96
|
+
|
|
97
|
+
# <!--
|
|
98
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
99
|
+
# - <=>(other)
|
|
100
|
+
# -->
|
|
101
|
+
# Dependencies are ordered by name.
|
|
102
|
+
#
|
|
103
|
+
def <=>: (untyped other) -> untyped
|
|
104
|
+
|
|
105
|
+
# <!--
|
|
106
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
107
|
+
# - =~(other)
|
|
108
|
+
# -->
|
|
109
|
+
# Uses this dependency as a pattern to compare to `other`. This dependency will
|
|
110
|
+
# match if the name matches the other's name, and other has only an equal
|
|
111
|
+
# version requirement that satisfies this dependency.
|
|
112
|
+
#
|
|
113
|
+
def =~: (untyped other) -> (nil | false | untyped)
|
|
114
|
+
|
|
115
|
+
# <!--
|
|
116
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
117
|
+
# - ===(other)
|
|
118
|
+
# -->
|
|
119
|
+
#
|
|
120
|
+
alias === =~
|
|
121
|
+
|
|
122
|
+
# <!--
|
|
123
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
124
|
+
# - dep.match? name => true or false
|
|
125
|
+
# - dep.match? name, version => true or false
|
|
126
|
+
# - dep.match? spec => true or false
|
|
127
|
+
# -->
|
|
128
|
+
# Does this dependency match the specification described by `name` and `version`
|
|
129
|
+
# or match `spec`?
|
|
130
|
+
#
|
|
131
|
+
# NOTE: Unlike #matches_spec? this method does not return true when the version
|
|
132
|
+
# is a prerelease version unless this is a prerelease dependency.
|
|
133
|
+
#
|
|
134
|
+
def match?: (untyped obj, ?untyped? version, ?bool allow_prerelease) -> (false | true | untyped)
|
|
135
|
+
|
|
136
|
+
# <!--
|
|
137
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
138
|
+
# - matches_spec?(spec)
|
|
139
|
+
# -->
|
|
140
|
+
# Does this dependency match `spec`?
|
|
141
|
+
#
|
|
142
|
+
# NOTE: This is not a convenience method. Unlike #match? this method returns
|
|
143
|
+
# true when `spec` is a prerelease version even if this dependency is not a
|
|
144
|
+
# prerelease dependency.
|
|
145
|
+
#
|
|
146
|
+
def matches_spec?: (untyped spec) -> (false | true | untyped)
|
|
147
|
+
|
|
148
|
+
# <!--
|
|
149
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
150
|
+
# - merge(other)
|
|
151
|
+
# -->
|
|
152
|
+
# Merges the requirements of `other` into this dependency
|
|
153
|
+
#
|
|
154
|
+
def merge: (untyped other) -> untyped
|
|
155
|
+
|
|
156
|
+
# <!--
|
|
157
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
158
|
+
# - matching_specs(platform_only = false)
|
|
159
|
+
# -->
|
|
160
|
+
#
|
|
161
|
+
def matching_specs: (?bool platform_only) -> untyped
|
|
162
|
+
|
|
163
|
+
# <!--
|
|
164
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
165
|
+
# - specific?()
|
|
166
|
+
# -->
|
|
167
|
+
# True if the dependency will not always match the latest version.
|
|
168
|
+
#
|
|
169
|
+
def specific?: () -> untyped
|
|
170
|
+
|
|
171
|
+
# <!--
|
|
172
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
173
|
+
# - to_specs()
|
|
174
|
+
# -->
|
|
175
|
+
#
|
|
176
|
+
def to_specs: () -> untyped
|
|
177
|
+
|
|
178
|
+
# <!--
|
|
179
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
180
|
+
# - to_spec()
|
|
181
|
+
# -->
|
|
182
|
+
#
|
|
183
|
+
def to_spec: () -> untyped
|
|
184
|
+
|
|
185
|
+
# <!--
|
|
186
|
+
# rdoc-file=lib/rubygems/dependency.rb
|
|
187
|
+
# - identity()
|
|
188
|
+
# -->
|
|
189
|
+
#
|
|
190
|
+
def identity: () -> (:complete | :abs_latest | :latest | :released)
|
|
191
|
+
|
|
192
|
+
def encode_with: (untyped coder) -> untyped
|
|
193
|
+
end
|
data/rbs/fills/tuple/tuple.rbs
CHANGED
|
@@ -144,6 +144,34 @@ module Solargraph
|
|
|
144
144
|
| [T] (8 index) { (int index) -> T } -> (I | T)
|
|
145
145
|
| [T] (9 index) { (int index) -> T } -> (J | T)
|
|
146
146
|
| [T] (int index) { (int index) -> T } -> (A | B | C | D | E | F | G | H | I | J | T)
|
|
147
|
+
|
|
148
|
+
# <!--
|
|
149
|
+
# rdoc-file=array.rb
|
|
150
|
+
# - first -> object or nil
|
|
151
|
+
# - first(count) -> new_array
|
|
152
|
+
# -->
|
|
153
|
+
# Returns elements from `self`, or `nil`; does not modify `self`.
|
|
154
|
+
#
|
|
155
|
+
# With no argument given, returns the first element (if available):
|
|
156
|
+
#
|
|
157
|
+
# a = [:foo, 'bar', 2]
|
|
158
|
+
# a.first # => :foo
|
|
159
|
+
# a # => [:foo, "bar", 2]
|
|
160
|
+
#
|
|
161
|
+
# If `self` is empty, returns `nil`.
|
|
162
|
+
#
|
|
163
|
+
# [].first # => nil
|
|
164
|
+
#
|
|
165
|
+
# With a non-negative integer argument `count` given, returns the first `count`
|
|
166
|
+
# elements (as available) in a new array:
|
|
167
|
+
#
|
|
168
|
+
# a.first(0) # => []
|
|
169
|
+
# a.first(2) # => [:foo, "bar"]
|
|
170
|
+
# a.first(50) # => [:foo, "bar", 2]
|
|
171
|
+
#
|
|
172
|
+
# Related: see [Methods for Querying](rdoc-ref:Array@Methods+for+Querying).
|
|
173
|
+
#
|
|
174
|
+
def first: %a{implicitly-returns-nil} () -> A
|
|
147
175
|
end
|
|
148
176
|
end
|
|
149
177
|
end
|
data/rbs/shims/ast/0/node.rbs
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module Diff
|
|
2
|
+
end
|
|
3
|
+
|
|
4
|
+
module Diff::LCS
|
|
5
|
+
def self.LCS: (Array[String], Array[String]) -> Array[String]
|
|
6
|
+
| (String, String) -> Array[String]
|
|
7
|
+
def self.diff: (Array[String], Array[String]) -> Array[Array[String]]
|
|
8
|
+
| (String, String) -> Array[Array[Diff::LCS::Change]]
|
|
9
|
+
|
|
10
|
+
def self.patch!: (Array[String], Array[String]) -> String
|
|
11
|
+
end
|
data/solargraph.gemspec
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# @sg-ignore Should better support meaning of '&' in RBS
|
|
4
|
+
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/lib"
|
|
2
5
|
require 'solargraph/version'
|
|
3
6
|
require 'date'
|
|
4
7
|
|
|
@@ -6,12 +9,11 @@ require 'date'
|
|
|
6
9
|
Gem::Specification.new do |s|
|
|
7
10
|
s.name = 'solargraph'
|
|
8
11
|
s.version = Solargraph::VERSION
|
|
9
|
-
s.
|
|
10
|
-
s.
|
|
11
|
-
s.
|
|
12
|
-
s.authors = ["Fred Snyder"]
|
|
12
|
+
s.summary = 'A Ruby language server'
|
|
13
|
+
s.description = 'IDE tools for code completion, inline documentation, and static analysis'
|
|
14
|
+
s.authors = ['Fred Snyder']
|
|
13
15
|
s.email = 'admin@castwide.com'
|
|
14
|
-
s.files = Dir.chdir(File.expand_path(
|
|
16
|
+
s.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
15
17
|
# @sg-ignore Need backtick support
|
|
16
18
|
# @type [String]
|
|
17
19
|
all_files = `git ls-files -z`
|
|
@@ -20,36 +22,36 @@ Gem::Specification.new do |s|
|
|
|
20
22
|
s.homepage = 'https://solargraph.org'
|
|
21
23
|
s.license = 'MIT'
|
|
22
24
|
s.executables = ['solargraph']
|
|
23
|
-
s.metadata[
|
|
24
|
-
s.metadata[
|
|
25
|
-
s.metadata[
|
|
26
|
-
s.metadata[
|
|
27
|
-
s.metadata[
|
|
25
|
+
s.metadata['funding_uri'] = 'https://www.patreon.com/castwide'
|
|
26
|
+
s.metadata['bug_tracker_uri'] = 'https://github.com/castwide/solargraph/issues'
|
|
27
|
+
s.metadata['changelog_uri'] = 'https://github.com/castwide/solargraph/blob/master/CHANGELOG.md'
|
|
28
|
+
s.metadata['source_code_uri'] = 'https://github.com/castwide/solargraph'
|
|
29
|
+
s.metadata['rubygems_mfa_required'] = 'true'
|
|
28
30
|
|
|
29
31
|
s.required_ruby_version = '>= 3.0'
|
|
30
32
|
|
|
31
|
-
s.
|
|
32
|
-
s.
|
|
33
|
-
s.
|
|
34
|
-
s.
|
|
35
|
-
s.
|
|
36
|
-
s.
|
|
37
|
-
s.
|
|
38
|
-
s.
|
|
39
|
-
s.
|
|
40
|
-
s.
|
|
41
|
-
s.
|
|
42
|
-
s.
|
|
43
|
-
s.
|
|
44
|
-
s.
|
|
45
|
-
s.
|
|
46
|
-
s.
|
|
47
|
-
s.
|
|
48
|
-
s.
|
|
49
|
-
s.
|
|
50
|
-
s.
|
|
51
|
-
s.
|
|
52
|
-
s.
|
|
33
|
+
s.add_dependency 'ast', '~> 2.4.3'
|
|
34
|
+
s.add_dependency 'backport', '~> 1.2'
|
|
35
|
+
s.add_dependency 'benchmark', '~> 0.4'
|
|
36
|
+
s.add_dependency 'bundler', '>= 2.0'
|
|
37
|
+
s.add_dependency 'diff-lcs', '~> 1.4'
|
|
38
|
+
s.add_dependency 'jaro_winkler', '~> 1.6', '>= 1.6.1'
|
|
39
|
+
s.add_dependency 'kramdown', '~> 2.3'
|
|
40
|
+
s.add_dependency 'kramdown-parser-gfm', '~> 1.1'
|
|
41
|
+
s.add_dependency 'logger', '~> 1.6'
|
|
42
|
+
s.add_dependency 'observer', '~> 0.1'
|
|
43
|
+
s.add_dependency 'open3', '~> 0.2.1'
|
|
44
|
+
s.add_dependency 'ostruct', '~> 0.6'
|
|
45
|
+
s.add_dependency 'parser', '~> 3.0'
|
|
46
|
+
s.add_dependency 'prism', '~> 1.4'
|
|
47
|
+
s.add_dependency 'rbs', ['>= 3.6.1', '<= 4.0.0.dev.5']
|
|
48
|
+
s.add_dependency 'reverse_markdown', '~> 3.0'
|
|
49
|
+
s.add_dependency 'rubocop', '~> 1.76'
|
|
50
|
+
s.add_dependency 'thor', '~> 1.0'
|
|
51
|
+
s.add_dependency 'tilt', '~> 2.0'
|
|
52
|
+
s.add_dependency 'yard', '~> 0.9', '>= 0.9.24'
|
|
53
|
+
s.add_dependency 'yard-activesupport-concern', '~> 0.0'
|
|
54
|
+
s.add_dependency 'yard-solargraph', '~> 0.1'
|
|
53
55
|
|
|
54
56
|
s.add_development_dependency 'pry', '~> 0.15'
|
|
55
57
|
s.add_development_dependency 'public_suffix', '~> 3.1'
|
|
@@ -61,6 +63,7 @@ Gem::Specification.new do |s|
|
|
|
61
63
|
#
|
|
62
64
|
# even more specific on RuboCop itself, which is written into _todo
|
|
63
65
|
# file.
|
|
66
|
+
s.add_development_dependency 'overcommit', '~> 0.68.0'
|
|
64
67
|
s.add_development_dependency 'rubocop', '~> 1.80.0.0'
|
|
65
68
|
s.add_development_dependency 'rubocop-rake', '~> 0.7.1'
|
|
66
69
|
s.add_development_dependency 'rubocop-rspec', '~> 3.6.0'
|
|
@@ -68,7 +71,6 @@ Gem::Specification.new do |s|
|
|
|
68
71
|
s.add_development_dependency 'simplecov', '~> 0.21'
|
|
69
72
|
s.add_development_dependency 'simplecov-lcov', '~> 0.8'
|
|
70
73
|
s.add_development_dependency 'undercover', '~> 0.7'
|
|
71
|
-
s.add_development_dependency 'overcommit', '~> 0.68.0'
|
|
72
74
|
s.add_development_dependency 'webmock', '~> 3.6'
|
|
73
75
|
# work around missing yard dependency needed as of Ruby 3.5
|
|
74
76
|
s.add_development_dependency 'irb', '~> 1.15'
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solargraph
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.59.0.dev.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fred Snyder
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ast
|
|
@@ -156,33 +156,33 @@ dependencies:
|
|
|
156
156
|
- !ruby/object:Gem::Version
|
|
157
157
|
version: '0.1'
|
|
158
158
|
- !ruby/object:Gem::Dependency
|
|
159
|
-
name:
|
|
159
|
+
name: open3
|
|
160
160
|
requirement: !ruby/object:Gem::Requirement
|
|
161
161
|
requirements:
|
|
162
162
|
- - "~>"
|
|
163
163
|
- !ruby/object:Gem::Version
|
|
164
|
-
version:
|
|
164
|
+
version: 0.2.1
|
|
165
165
|
type: :runtime
|
|
166
166
|
prerelease: false
|
|
167
167
|
version_requirements: !ruby/object:Gem::Requirement
|
|
168
168
|
requirements:
|
|
169
169
|
- - "~>"
|
|
170
170
|
- !ruby/object:Gem::Version
|
|
171
|
-
version:
|
|
171
|
+
version: 0.2.1
|
|
172
172
|
- !ruby/object:Gem::Dependency
|
|
173
|
-
name:
|
|
173
|
+
name: ostruct
|
|
174
174
|
requirement: !ruby/object:Gem::Requirement
|
|
175
175
|
requirements:
|
|
176
176
|
- - "~>"
|
|
177
177
|
- !ruby/object:Gem::Version
|
|
178
|
-
version: 0.
|
|
178
|
+
version: '0.6'
|
|
179
179
|
type: :runtime
|
|
180
180
|
prerelease: false
|
|
181
181
|
version_requirements: !ruby/object:Gem::Requirement
|
|
182
182
|
requirements:
|
|
183
183
|
- - "~>"
|
|
184
184
|
- !ruby/object:Gem::Version
|
|
185
|
-
version: 0.
|
|
185
|
+
version: '0.6'
|
|
186
186
|
- !ruby/object:Gem::Dependency
|
|
187
187
|
name: parser
|
|
188
188
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -220,7 +220,7 @@ dependencies:
|
|
|
220
220
|
version: 3.6.1
|
|
221
221
|
- - "<="
|
|
222
222
|
- !ruby/object:Gem::Version
|
|
223
|
-
version: 4.0.0.dev.
|
|
223
|
+
version: 4.0.0.dev.5
|
|
224
224
|
type: :runtime
|
|
225
225
|
prerelease: false
|
|
226
226
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -230,7 +230,7 @@ dependencies:
|
|
|
230
230
|
version: 3.6.1
|
|
231
231
|
- - "<="
|
|
232
232
|
- !ruby/object:Gem::Version
|
|
233
|
-
version: 4.0.0.dev.
|
|
233
|
+
version: 4.0.0.dev.5
|
|
234
234
|
- !ruby/object:Gem::Dependency
|
|
235
235
|
name: reverse_markdown
|
|
236
236
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -308,33 +308,33 @@ dependencies:
|
|
|
308
308
|
- !ruby/object:Gem::Version
|
|
309
309
|
version: 0.9.24
|
|
310
310
|
- !ruby/object:Gem::Dependency
|
|
311
|
-
name: yard-
|
|
311
|
+
name: yard-activesupport-concern
|
|
312
312
|
requirement: !ruby/object:Gem::Requirement
|
|
313
313
|
requirements:
|
|
314
314
|
- - "~>"
|
|
315
315
|
- !ruby/object:Gem::Version
|
|
316
|
-
version: '0.
|
|
316
|
+
version: '0.0'
|
|
317
317
|
type: :runtime
|
|
318
318
|
prerelease: false
|
|
319
319
|
version_requirements: !ruby/object:Gem::Requirement
|
|
320
320
|
requirements:
|
|
321
321
|
- - "~>"
|
|
322
322
|
- !ruby/object:Gem::Version
|
|
323
|
-
version: '0.
|
|
323
|
+
version: '0.0'
|
|
324
324
|
- !ruby/object:Gem::Dependency
|
|
325
|
-
name: yard-
|
|
325
|
+
name: yard-solargraph
|
|
326
326
|
requirement: !ruby/object:Gem::Requirement
|
|
327
327
|
requirements:
|
|
328
328
|
- - "~>"
|
|
329
329
|
- !ruby/object:Gem::Version
|
|
330
|
-
version: '0.
|
|
330
|
+
version: '0.1'
|
|
331
331
|
type: :runtime
|
|
332
332
|
prerelease: false
|
|
333
333
|
version_requirements: !ruby/object:Gem::Requirement
|
|
334
334
|
requirements:
|
|
335
335
|
- - "~>"
|
|
336
336
|
- !ruby/object:Gem::Version
|
|
337
|
-
version: '0.
|
|
337
|
+
version: '0.1'
|
|
338
338
|
- !ruby/object:Gem::Dependency
|
|
339
339
|
name: pry
|
|
340
340
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -391,6 +391,20 @@ dependencies:
|
|
|
391
391
|
- - "~>"
|
|
392
392
|
- !ruby/object:Gem::Version
|
|
393
393
|
version: '3.5'
|
|
394
|
+
- !ruby/object:Gem::Dependency
|
|
395
|
+
name: overcommit
|
|
396
|
+
requirement: !ruby/object:Gem::Requirement
|
|
397
|
+
requirements:
|
|
398
|
+
- - "~>"
|
|
399
|
+
- !ruby/object:Gem::Version
|
|
400
|
+
version: 0.68.0
|
|
401
|
+
type: :development
|
|
402
|
+
prerelease: false
|
|
403
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
404
|
+
requirements:
|
|
405
|
+
- - "~>"
|
|
406
|
+
- !ruby/object:Gem::Version
|
|
407
|
+
version: 0.68.0
|
|
394
408
|
- !ruby/object:Gem::Dependency
|
|
395
409
|
name: rubocop
|
|
396
410
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -489,20 +503,6 @@ dependencies:
|
|
|
489
503
|
- - "~>"
|
|
490
504
|
- !ruby/object:Gem::Version
|
|
491
505
|
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
|
|
499
|
-
type: :development
|
|
500
|
-
prerelease: false
|
|
501
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
502
|
-
requirements:
|
|
503
|
-
- - "~>"
|
|
504
|
-
- !ruby/object:Gem::Version
|
|
505
|
-
version: 0.68.0
|
|
506
506
|
- !ruby/object:Gem::Dependency
|
|
507
507
|
name: webmock
|
|
508
508
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -538,6 +538,7 @@ executables:
|
|
|
538
538
|
extensions: []
|
|
539
539
|
extra_rdoc_files: []
|
|
540
540
|
files:
|
|
541
|
+
- ".envrc"
|
|
541
542
|
- ".gitattributes"
|
|
542
543
|
- ".github/FUNDING.yml"
|
|
543
544
|
- ".github/workflows/linting.yml"
|
|
@@ -566,6 +567,7 @@ files:
|
|
|
566
567
|
- lib/solargraph/api_map/store.rb
|
|
567
568
|
- lib/solargraph/bench.rb
|
|
568
569
|
- lib/solargraph/complex_type.rb
|
|
570
|
+
- lib/solargraph/complex_type/conformance.rb
|
|
569
571
|
- lib/solargraph/complex_type/type_methods.rb
|
|
570
572
|
- lib/solargraph/complex_type/unique_type.rb
|
|
571
573
|
- lib/solargraph/convention.rb
|
|
@@ -688,12 +690,14 @@ files:
|
|
|
688
690
|
- lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb
|
|
689
691
|
- lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb
|
|
690
692
|
- lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb
|
|
693
|
+
- lib/solargraph/parser/parser_gem/node_processors/or_node.rb
|
|
691
694
|
- lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb
|
|
692
695
|
- lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb
|
|
693
696
|
- lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb
|
|
694
697
|
- lib/solargraph/parser/parser_gem/node_processors/send_node.rb
|
|
695
698
|
- lib/solargraph/parser/parser_gem/node_processors/sym_node.rb
|
|
696
699
|
- lib/solargraph/parser/parser_gem/node_processors/until_node.rb
|
|
700
|
+
- lib/solargraph/parser/parser_gem/node_processors/when_node.rb
|
|
697
701
|
- lib/solargraph/parser/parser_gem/node_processors/while_node.rb
|
|
698
702
|
- lib/solargraph/parser/region.rb
|
|
699
703
|
- lib/solargraph/parser/snippet.rb
|
|
@@ -706,6 +710,7 @@ files:
|
|
|
706
710
|
- lib/solargraph/pin/class_variable.rb
|
|
707
711
|
- lib/solargraph/pin/closure.rb
|
|
708
712
|
- lib/solargraph/pin/common.rb
|
|
713
|
+
- lib/solargraph/pin/compound_statement.rb
|
|
709
714
|
- lib/solargraph/pin/constant.rb
|
|
710
715
|
- lib/solargraph/pin/conversions.rb
|
|
711
716
|
- lib/solargraph/pin/delegated_method.rb
|
|
@@ -774,8 +779,6 @@ files:
|
|
|
774
779
|
- lib/solargraph/source_map/data.rb
|
|
775
780
|
- lib/solargraph/source_map/mapper.rb
|
|
776
781
|
- lib/solargraph/type_checker.rb
|
|
777
|
-
- lib/solargraph/type_checker/checks.rb
|
|
778
|
-
- lib/solargraph/type_checker/param_def.rb
|
|
779
782
|
- lib/solargraph/type_checker/problem.rb
|
|
780
783
|
- lib/solargraph/type_checker/rules.rb
|
|
781
784
|
- lib/solargraph/version.rb
|
|
@@ -788,6 +791,7 @@ files:
|
|
|
788
791
|
- lib/solargraph/views/search.erb
|
|
789
792
|
- lib/solargraph/workspace.rb
|
|
790
793
|
- lib/solargraph/workspace/config.rb
|
|
794
|
+
- lib/solargraph/workspace/gemspecs.rb
|
|
791
795
|
- lib/solargraph/workspace/require_paths.rb
|
|
792
796
|
- lib/solargraph/yard_map.rb
|
|
793
797
|
- lib/solargraph/yard_map/cache.rb
|
|
@@ -796,12 +800,12 @@ files:
|
|
|
796
800
|
- lib/solargraph/yard_map/mapper/to_constant.rb
|
|
797
801
|
- lib/solargraph/yard_map/mapper/to_method.rb
|
|
798
802
|
- lib/solargraph/yard_map/mapper/to_namespace.rb
|
|
799
|
-
- lib/solargraph/yard_map/to_method.rb
|
|
800
803
|
- lib/solargraph/yard_tags.rb
|
|
801
804
|
- lib/solargraph/yardoc.rb
|
|
802
805
|
- rbs/fills/bundler/0/bundler.rbs
|
|
803
806
|
- rbs/fills/open3/0/open3.rbs
|
|
804
807
|
- rbs/fills/rubygems/0/basic_specification.rbs
|
|
808
|
+
- rbs/fills/rubygems/0/dependency.rbs
|
|
805
809
|
- rbs/fills/rubygems/0/errors.rbs
|
|
806
810
|
- rbs/fills/rubygems/0/spec_fetcher.rbs
|
|
807
811
|
- rbs/fills/rubygems/0/specification.rbs
|
|
@@ -809,6 +813,7 @@ files:
|
|
|
809
813
|
- rbs/shims/ast/0/node.rbs
|
|
810
814
|
- rbs/shims/ast/2.4/.rbs_meta.yaml
|
|
811
815
|
- rbs/shims/ast/2.4/ast.rbs
|
|
816
|
+
- rbs/shims/diff-lcs/1.5/diff-lcs.rbs
|
|
812
817
|
- rbs/shims/parser/3.2.0.1/builders/default.rbs
|
|
813
818
|
- rbs/shims/parser/3.2.0.1/manifest.yaml
|
|
814
819
|
- rbs/shims/parser/3.2.0.1/parser.rbs
|