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.
- checksums.yaml +4 -4
- data/.gitattributes +2 -0
- data/.github/workflows/linting.yml +127 -0
- data/.github/workflows/plugins.yml +185 -6
- data/.github/workflows/rspec.yml +55 -5
- data/.github/workflows/typecheck.yml +8 -3
- data/.gitignore +8 -0
- data/.overcommit.yml +72 -0
- data/.rspec +1 -0
- data/.rubocop.yml +66 -0
- data/.rubocop_todo.yml +1279 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +143 -0
- data/README.md +20 -6
- data/Rakefile +125 -13
- data/bin/solargraph +3 -0
- data/lib/solargraph/api_map/cache.rb +110 -109
- data/lib/solargraph/api_map/constants.rb +279 -0
- data/lib/solargraph/api_map/index.rb +193 -167
- data/lib/solargraph/api_map/source_to_yard.rb +97 -88
- data/lib/solargraph/api_map/store.rb +384 -241
- data/lib/solargraph/api_map.rb +945 -875
- data/lib/solargraph/bench.rb +45 -28
- data/lib/solargraph/complex_type/type_methods.rb +228 -217
- data/lib/solargraph/complex_type/unique_type.rb +482 -386
- data/lib/solargraph/complex_type.rb +444 -394
- data/lib/solargraph/convention/active_support_concern.rb +111 -0
- data/lib/solargraph/convention/base.rb +20 -3
- data/lib/solargraph/convention/data_definition/data_assignment_node.rb +61 -0
- data/lib/solargraph/convention/data_definition/data_definition_node.rb +91 -0
- data/lib/solargraph/convention/data_definition.rb +105 -0
- data/lib/solargraph/convention/gemfile.rb +15 -15
- data/lib/solargraph/convention/gemspec.rb +23 -22
- data/lib/solargraph/convention/rakefile.rb +17 -17
- data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +61 -0
- data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +102 -0
- data/lib/solargraph/convention/struct_definition.rb +164 -0
- data/lib/solargraph/convention.rb +78 -47
- data/lib/solargraph/converters/dd.rb +17 -17
- data/lib/solargraph/converters/dl.rb +15 -15
- data/lib/solargraph/converters/dt.rb +15 -15
- data/lib/solargraph/converters/misc.rb +1 -1
- data/lib/solargraph/diagnostics/require_not_found.rb +53 -53
- data/lib/solargraph/diagnostics/rubocop.rb +118 -113
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +68 -66
- data/lib/solargraph/diagnostics/type_check.rb +55 -55
- data/lib/solargraph/diagnostics/update_errors.rb +41 -41
- data/lib/solargraph/doc_map.rb +439 -188
- data/lib/solargraph/environ.rb +9 -2
- data/lib/solargraph/equality.rb +34 -33
- data/lib/solargraph/gem_pins.rb +98 -72
- data/lib/solargraph/language_server/error_codes.rb +20 -20
- data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
- data/lib/solargraph/language_server/host/dispatch.rb +130 -128
- data/lib/solargraph/language_server/host/message_worker.rb +112 -106
- data/lib/solargraph/language_server/host/sources.rb +99 -99
- data/lib/solargraph/language_server/host.rb +878 -861
- data/lib/solargraph/language_server/message/base.rb +97 -96
- data/lib/solargraph/language_server/message/client/register_capability.rb +15 -15
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +60 -60
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +114 -112
- data/lib/solargraph/language_server/message/extended/document.rb +23 -20
- data/lib/solargraph/language_server/message/extended/document_gems.rb +32 -32
- data/lib/solargraph/language_server/message/extended/download_core.rb +19 -19
- data/lib/solargraph/language_server/message/extended/search.rb +20 -20
- data/lib/solargraph/language_server/message/initialize.rb +191 -191
- data/lib/solargraph/language_server/message/text_document/completion.rb +56 -56
- data/lib/solargraph/language_server/message/text_document/definition.rb +40 -38
- data/lib/solargraph/language_server/message/text_document/document_highlight.rb +16 -16
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +26 -26
- data/lib/solargraph/language_server/message/text_document/formatting.rb +148 -131
- data/lib/solargraph/language_server/message/text_document/hover.rb +58 -58
- data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +11 -11
- data/lib/solargraph/language_server/message/text_document/references.rb +16 -16
- data/lib/solargraph/language_server/message/text_document/rename.rb +19 -19
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +24 -24
- data/lib/solargraph/language_server/message/text_document/type_definition.rb +25 -24
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +35 -35
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +40 -40
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +26 -24
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +23 -23
- data/lib/solargraph/language_server/message.rb +94 -94
- data/lib/solargraph/language_server/progress.rb +8 -0
- data/lib/solargraph/language_server/request.rb +27 -24
- data/lib/solargraph/language_server/transport/data_reader.rb +74 -74
- data/lib/solargraph/language_server/uri_helpers.rb +49 -49
- data/lib/solargraph/library.rb +683 -662
- data/lib/solargraph/location.rb +82 -58
- data/lib/solargraph/logging.rb +37 -27
- data/lib/solargraph/page.rb +92 -89
- data/lib/solargraph/parser/comment_ripper.rb +69 -56
- data/lib/solargraph/parser/flow_sensitive_typing.rb +255 -0
- data/lib/solargraph/parser/node_processor/base.rb +92 -87
- data/lib/solargraph/parser/node_processor.rb +62 -45
- data/lib/solargraph/parser/parser_gem/class_methods.rb +149 -157
- data/lib/solargraph/parser/parser_gem/flawed_builder.rb +19 -18
- data/lib/solargraph/parser/parser_gem/node_chainer.rb +166 -164
- data/lib/solargraph/parser/parser_gem/node_methods.rb +486 -495
- data/lib/solargraph/parser/parser_gem/node_processors/alias_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +22 -0
- data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +59 -57
- data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +15 -15
- data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +46 -43
- data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/cvasgn_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +53 -50
- data/lib/solargraph/parser/parser_gem/node_processors/defs_node.rb +37 -36
- data/lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +23 -0
- data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +40 -38
- data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +29 -28
- data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +59 -53
- data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +8 -7
- data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +98 -0
- data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +17 -16
- data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +38 -36
- data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +52 -42
- data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +291 -259
- data/lib/solargraph/parser/parser_gem/node_processors/sym_node.rb +3 -1
- data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +29 -0
- data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +29 -0
- data/lib/solargraph/parser/parser_gem/node_processors.rb +70 -56
- data/lib/solargraph/parser/parser_gem.rb +12 -12
- data/lib/solargraph/parser/region.rb +69 -66
- data/lib/solargraph/parser/snippet.rb +17 -15
- data/lib/solargraph/parser.rb +23 -22
- data/lib/solargraph/pin/base.rb +729 -378
- data/lib/solargraph/pin/base_variable.rb +126 -118
- data/lib/solargraph/pin/block.rb +104 -101
- data/lib/solargraph/pin/breakable.rb +9 -0
- data/lib/solargraph/pin/callable.rb +231 -147
- data/lib/solargraph/pin/closure.rb +72 -57
- data/lib/solargraph/pin/common.rb +79 -70
- data/lib/solargraph/pin/constant.rb +45 -43
- data/lib/solargraph/pin/conversions.rb +123 -123
- data/lib/solargraph/pin/delegated_method.rb +120 -101
- data/lib/solargraph/pin/documenting.rb +114 -98
- data/lib/solargraph/pin/instance_variable.rb +34 -34
- data/lib/solargraph/pin/keyword.rb +20 -15
- data/lib/solargraph/pin/local_variable.rb +75 -67
- data/lib/solargraph/pin/method.rb +672 -527
- data/lib/solargraph/pin/method_alias.rb +34 -31
- data/lib/solargraph/pin/namespace.rb +115 -107
- data/lib/solargraph/pin/parameter.rb +275 -212
- data/lib/solargraph/pin/proxy_type.rb +39 -29
- data/lib/solargraph/pin/reference/override.rb +47 -29
- data/lib/solargraph/pin/reference/require.rb +2 -2
- data/lib/solargraph/pin/reference/superclass.rb +15 -10
- data/lib/solargraph/pin/reference.rb +39 -22
- data/lib/solargraph/pin/search.rb +61 -56
- data/lib/solargraph/pin/signature.rb +61 -17
- data/lib/solargraph/pin/singleton.rb +1 -1
- data/lib/solargraph/pin/symbol.rb +53 -47
- data/lib/solargraph/pin/until.rb +18 -0
- data/lib/solargraph/pin/while.rb +18 -0
- data/lib/solargraph/pin.rb +44 -41
- data/lib/solargraph/pin_cache.rb +245 -0
- data/lib/solargraph/position.rb +132 -107
- data/lib/solargraph/range.rb +112 -98
- data/lib/solargraph/rbs_map/conversions.rb +823 -646
- data/lib/solargraph/rbs_map/core_fills.rb +84 -50
- data/lib/solargraph/rbs_map/core_map.rb +58 -28
- data/lib/solargraph/rbs_map/stdlib_map.rb +43 -33
- data/lib/solargraph/rbs_map.rb +163 -93
- data/lib/solargraph/server_methods.rb +16 -16
- data/lib/solargraph/shell.rb +363 -269
- data/lib/solargraph/source/chain/array.rb +37 -33
- data/lib/solargraph/source/chain/block_symbol.rb +1 -1
- data/lib/solargraph/source/chain/block_variable.rb +1 -1
- data/lib/solargraph/source/chain/call.rb +337 -303
- data/lib/solargraph/source/chain/class_variable.rb +13 -13
- data/lib/solargraph/source/chain/constant.rb +26 -89
- data/lib/solargraph/source/chain/global_variable.rb +13 -13
- data/lib/solargraph/source/chain/hash.rb +34 -33
- data/lib/solargraph/source/chain/head.rb +1 -1
- data/lib/solargraph/source/chain/if.rb +28 -28
- data/lib/solargraph/source/chain/instance_variable.rb +13 -13
- data/lib/solargraph/source/chain/link.rb +109 -98
- data/lib/solargraph/source/chain/literal.rb +48 -28
- data/lib/solargraph/source/chain/or.rb +23 -23
- data/lib/solargraph/source/chain/q_call.rb +11 -11
- data/lib/solargraph/source/chain/variable.rb +13 -13
- data/lib/solargraph/source/chain/z_super.rb +30 -30
- data/lib/solargraph/source/chain.rb +291 -252
- data/lib/solargraph/source/change.rb +82 -82
- data/lib/solargraph/source/cursor.rb +166 -167
- data/lib/solargraph/source/encoding_fixes.rb +23 -23
- data/lib/solargraph/source/source_chainer.rb +194 -194
- data/lib/solargraph/source/updater.rb +55 -55
- data/lib/solargraph/source.rb +498 -495
- data/lib/solargraph/source_map/clip.rb +226 -232
- data/lib/solargraph/source_map/data.rb +34 -30
- data/lib/solargraph/source_map/mapper.rb +259 -255
- data/lib/solargraph/source_map.rb +212 -217
- data/lib/solargraph/type_checker/checks.rb +124 -120
- data/lib/solargraph/type_checker/param_def.rb +37 -35
- data/lib/solargraph/type_checker/problem.rb +32 -32
- data/lib/solargraph/type_checker/rules.rb +84 -62
- data/lib/solargraph/type_checker.rb +814 -672
- data/lib/solargraph/version.rb +5 -5
- data/lib/solargraph/views/_method.erb +10 -10
- data/lib/solargraph/views/_namespace.erb +3 -3
- data/lib/solargraph/views/document.erb +10 -10
- data/lib/solargraph/workspace/config.rb +255 -239
- data/lib/solargraph/workspace/require_paths.rb +97 -0
- data/lib/solargraph/workspace.rb +220 -239
- data/lib/solargraph/yard_map/helpers.rb +44 -16
- data/lib/solargraph/yard_map/mapper/to_constant.rb +7 -5
- data/lib/solargraph/yard_map/mapper/to_method.rb +130 -94
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +31 -28
- data/lib/solargraph/yard_map/mapper.rb +79 -78
- data/lib/solargraph/yard_map/to_method.rb +89 -86
- data/lib/solargraph/yard_tags.rb +20 -20
- data/lib/solargraph/yardoc.rb +87 -52
- data/lib/solargraph.rb +105 -72
- 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/fills/tuple/tuple.rbs +149 -0
- data/rbs/shims/ast/0/node.rbs +5 -0
- data/rbs/shims/ast/2.4/.rbs_meta.yaml +9 -0
- data/rbs/shims/ast/2.4/ast.rbs +73 -0
- data/rbs/shims/parser/3.2.0.1/builders/default.rbs +195 -0
- data/rbs/shims/parser/3.2.0.1/manifest.yaml +7 -0
- data/rbs/shims/parser/3.2.0.1/parser.rbs +201 -0
- data/rbs/shims/parser/3.2.0.1/polyfill.rbs +4 -0
- data/rbs/shims/thor/1.2.0.1/.rbs_meta.yaml +9 -0
- data/rbs/shims/thor/1.2.0.1/manifest.yaml +7 -0
- data/rbs/shims/thor/1.2.0.1/thor.rbs +17 -0
- data/rbs_collection.yaml +19 -0
- data/solargraph.gemspec +27 -5
- metadata +215 -18
- data/lib/.rubocop.yml +0 -22
- data/lib/solargraph/cache.rb +0 -77
- data/lib/solargraph/parser/node_methods.rb +0 -83
data/rbs_collection.yaml
ADDED
|
@@ -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
|
-
|
|
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', '
|
|
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 '
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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:
|
|
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:
|
|
201
|
+
name: prism
|
|
175
202
|
requirement: !ruby/object:Gem::Requirement
|
|
176
203
|
requirements:
|
|
177
204
|
- - "~>"
|
|
178
205
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: '
|
|
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: '
|
|
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.
|
|
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.
|
|
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.
|
|
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:
|
|
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/
|
|
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
|
-
|
|
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.
|
|
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
|
data/lib/solargraph/cache.rb
DELETED
|
@@ -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
|