solargraph 0.58.3 → 0.59.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 +12 -5
- data/.github/workflows/plugins.yml +54 -34
- data/.github/workflows/rspec.yml +15 -28
- data/.github/workflows/typecheck.yml +6 -3
- data/.rubocop.yml +38 -6
- data/.rubocop_todo.yml +53 -966
- data/CHANGELOG.md +24 -0
- 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 +12 -3
- data/lib/solargraph/api_map/index.rb +29 -18
- data/lib/solargraph/api_map/source_to_yard.rb +22 -9
- data/lib/solargraph/api_map/store.rb +40 -30
- data/lib/solargraph/api_map.rb +160 -78
- data/lib/solargraph/bench.rb +2 -3
- data/lib/solargraph/complex_type/conformance.rb +176 -0
- data/lib/solargraph/complex_type/type_methods.rb +31 -18
- data/lib/solargraph/complex_type/unique_type.rb +221 -63
- data/lib/solargraph/complex_type.rb +173 -59
- data/lib/solargraph/convention/active_support_concern.rb +111 -111
- data/lib/solargraph/convention/base.rb +50 -50
- data/lib/solargraph/convention/data_definition/data_assignment_node.rb +1 -1
- 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 +1 -1
- data/lib/solargraph/convention/gemspec.rb +1 -1
- data/lib/solargraph/convention/rakefile.rb +1 -1
- 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 +2 -2
- data/lib/solargraph/converters/dd.rb +2 -0
- data/lib/solargraph/converters/dl.rb +2 -0
- data/lib/solargraph/converters/dt.rb +2 -0
- data/lib/solargraph/converters/misc.rb +2 -0
- 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 +4 -8
- data/lib/solargraph/diagnostics.rb +55 -55
- data/lib/solargraph/doc_map.rb +38 -39
- data/lib/solargraph/environ.rb +52 -52
- data/lib/solargraph/equality.rb +4 -4
- data/lib/solargraph/gem_pins.rb +4 -15
- data/lib/solargraph/language_server/error_codes.rb +10 -10
- 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 +35 -28
- data/lib/solargraph/language_server/message/base.rb +1 -1
- data/lib/solargraph/language_server/message/client/register_capability.rb +1 -3
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +6 -8
- 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 +7 -7
- data/lib/solargraph/language_server/message/extended/download_core.rb +2 -1
- data/lib/solargraph/language_server/message/extended/environment.rb +25 -25
- data/lib/solargraph/language_server/message/extended/search.rb +1 -1
- data/lib/solargraph/language_server/message/initialize.rb +20 -14
- data/lib/solargraph/language_server/message/initialized.rb +28 -28
- 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 +17 -10
- 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 +13 -6
- data/lib/solargraph/language_server/message/text_document/references.rb +17 -10
- data/lib/solargraph/language_server/message/text_document/rename.rb +20 -13
- 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/text_document.rb +28 -28
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +34 -28
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +38 -30
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +23 -17
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +27 -17
- data/lib/solargraph/language_server/message.rb +1 -1
- data/lib/solargraph/language_server/progress.rb +143 -143
- data/lib/solargraph/language_server/request.rb +4 -2
- data/lib/solargraph/language_server/transport/adapter.rb +68 -68
- data/lib/solargraph/language_server/transport/data_reader.rb +11 -13
- data/lib/solargraph/language_server/uri_helpers.rb +2 -2
- data/lib/solargraph/language_server.rb +20 -20
- data/lib/solargraph/library.rb +57 -38
- data/lib/solargraph/location.rb +17 -14
- data/lib/solargraph/logging.rb +22 -4
- data/lib/solargraph/page.rb +1 -1
- data/lib/solargraph/parser/comment_ripper.rb +19 -4
- data/lib/solargraph/parser/flow_sensitive_typing.rb +324 -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 +30 -14
- data/lib/solargraph/parser/parser_gem/flawed_builder.rb +1 -1
- data/lib/solargraph/parser/parser_gem/node_chainer.rb +51 -25
- data/lib/solargraph/parser/parser_gem/node_methods.rb +181 -73
- data/lib/solargraph/parser/parser_gem/node_processors/alias_node.rb +24 -24
- 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 +11 -12
- data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +36 -36
- data/lib/solargraph/parser/parser_gem/node_processors/cvasgn_node.rb +24 -24
- data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +10 -3
- data/lib/solargraph/parser/parser_gem/node_processors/defs_node.rb +9 -8
- data/lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb +24 -24
- 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/namespace_node.rb +40 -40
- 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/sym_node.rb +20 -20
- data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +1 -1
- 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 +2 -0
- data/lib/solargraph/parser/region.rb +9 -3
- data/lib/solargraph/parser/snippet.rb +3 -1
- data/lib/solargraph/parser.rb +2 -0
- data/lib/solargraph/pin/base.rb +126 -82
- 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 +3 -5
- 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 +158 -104
- data/lib/solargraph/pin/method_alias.rb +8 -0
- data/lib/solargraph/pin/namespace.rb +19 -12
- data/lib/solargraph/pin/parameter.rb +102 -36
- data/lib/solargraph/pin/proxy_type.rb +4 -1
- data/lib/solargraph/pin/reference/override.rb +1 -1
- data/lib/solargraph/pin/reference/require.rb +14 -14
- data/lib/solargraph/pin/reference/superclass.rb +2 -0
- data/lib/solargraph/pin/reference/type_alias.rb +16 -0
- data/lib/solargraph/pin/reference.rb +20 -0
- data/lib/solargraph/pin/search.rb +8 -7
- data/lib/solargraph/pin/signature.rb +15 -12
- data/lib/solargraph/pin/singleton.rb +11 -11
- 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 +22 -19
- data/lib/solargraph/position.rb +17 -10
- data/lib/solargraph/range.rb +16 -15
- data/lib/solargraph/rbs_map/conversions.rb +367 -231
- data/lib/solargraph/rbs_map/core_fills.rb +18 -11
- 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 +76 -32
- data/lib/solargraph/server_methods.rb +1 -1
- data/lib/solargraph/shell.rb +258 -66
- data/lib/solargraph/source/chain/array.rb +3 -12
- data/lib/solargraph/source/chain/block_symbol.rb +13 -13
- data/lib/solargraph/source/chain/block_variable.rb +13 -13
- data/lib/solargraph/source/chain/call.rb +96 -56
- data/lib/solargraph/source/chain/class_variable.rb +1 -1
- data/lib/solargraph/source/chain/constant.rb +5 -1
- data/lib/solargraph/source/chain/global_variable.rb +1 -1
- data/lib/solargraph/source/chain/hash.rb +8 -5
- data/lib/solargraph/source/chain/head.rb +19 -19
- 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 +12 -22
- data/lib/solargraph/source/chain/literal.rb +22 -15
- data/lib/solargraph/source/chain/or.rb +10 -4
- data/lib/solargraph/source/chain/q_call.rb +2 -0
- data/lib/solargraph/source/chain/variable.rb +3 -1
- data/lib/solargraph/source/chain/z_super.rb +1 -3
- data/lib/solargraph/source/chain.rb +51 -38
- data/lib/solargraph/source/change.rb +12 -5
- data/lib/solargraph/source/cursor.rb +33 -18
- 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 +54 -30
- data/lib/solargraph/source_map/data.rb +4 -1
- data/lib/solargraph/source_map/mapper.rb +69 -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 +196 -122
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/workspace/config.rb +14 -11
- data/lib/solargraph/workspace/gemspecs.rb +367 -0
- data/lib/solargraph/workspace/require_paths.rb +1 -0
- data/lib/solargraph/workspace.rb +50 -28
- data/lib/solargraph/yard_map/cache.rb +25 -25
- data/lib/solargraph/yard_map/helpers.rb +8 -3
- data/lib/solargraph/yard_map/mapper/to_constant.rb +28 -28
- 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_map.rb +17 -18
- data/lib/solargraph/yard_tags.rb +2 -2
- data/lib/solargraph/yardoc.rb +7 -4
- data/lib/solargraph.rb +33 -10
- data/rbs/fills/rubygems/0/dependency.rbs +193 -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 +37 -35
- metadata +41 -42
- 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
- data/rbs/fills/tuple/tuple.rbs +0 -149
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
|
-
s.required_ruby_version = '>= 3.
|
|
31
|
+
s.required_ruby_version = '>= 3.1'
|
|
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.10.0'
|
|
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.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
|
|
@@ -217,20 +217,14 @@ dependencies:
|
|
|
217
217
|
requirements:
|
|
218
218
|
- - ">="
|
|
219
219
|
- !ruby/object:Gem::Version
|
|
220
|
-
version: 3.
|
|
221
|
-
- - "<="
|
|
222
|
-
- !ruby/object:Gem::Version
|
|
223
|
-
version: 4.0.0.dev.4
|
|
220
|
+
version: 3.10.0
|
|
224
221
|
type: :runtime
|
|
225
222
|
prerelease: false
|
|
226
223
|
version_requirements: !ruby/object:Gem::Requirement
|
|
227
224
|
requirements:
|
|
228
225
|
- - ">="
|
|
229
226
|
- !ruby/object:Gem::Version
|
|
230
|
-
version: 3.
|
|
231
|
-
- - "<="
|
|
232
|
-
- !ruby/object:Gem::Version
|
|
233
|
-
version: 4.0.0.dev.4
|
|
227
|
+
version: 3.10.0
|
|
234
228
|
- !ruby/object:Gem::Dependency
|
|
235
229
|
name: reverse_markdown
|
|
236
230
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -308,33 +302,33 @@ dependencies:
|
|
|
308
302
|
- !ruby/object:Gem::Version
|
|
309
303
|
version: 0.9.24
|
|
310
304
|
- !ruby/object:Gem::Dependency
|
|
311
|
-
name: yard-
|
|
305
|
+
name: yard-activesupport-concern
|
|
312
306
|
requirement: !ruby/object:Gem::Requirement
|
|
313
307
|
requirements:
|
|
314
308
|
- - "~>"
|
|
315
309
|
- !ruby/object:Gem::Version
|
|
316
|
-
version: '0.
|
|
310
|
+
version: '0.0'
|
|
317
311
|
type: :runtime
|
|
318
312
|
prerelease: false
|
|
319
313
|
version_requirements: !ruby/object:Gem::Requirement
|
|
320
314
|
requirements:
|
|
321
315
|
- - "~>"
|
|
322
316
|
- !ruby/object:Gem::Version
|
|
323
|
-
version: '0.
|
|
317
|
+
version: '0.0'
|
|
324
318
|
- !ruby/object:Gem::Dependency
|
|
325
|
-
name: yard-
|
|
319
|
+
name: yard-solargraph
|
|
326
320
|
requirement: !ruby/object:Gem::Requirement
|
|
327
321
|
requirements:
|
|
328
322
|
- - "~>"
|
|
329
323
|
- !ruby/object:Gem::Version
|
|
330
|
-
version: '0.
|
|
324
|
+
version: '0.1'
|
|
331
325
|
type: :runtime
|
|
332
326
|
prerelease: false
|
|
333
327
|
version_requirements: !ruby/object:Gem::Requirement
|
|
334
328
|
requirements:
|
|
335
329
|
- - "~>"
|
|
336
330
|
- !ruby/object:Gem::Version
|
|
337
|
-
version: '0.
|
|
331
|
+
version: '0.1'
|
|
338
332
|
- !ruby/object:Gem::Dependency
|
|
339
333
|
name: pry
|
|
340
334
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -391,6 +385,20 @@ dependencies:
|
|
|
391
385
|
- - "~>"
|
|
392
386
|
- !ruby/object:Gem::Version
|
|
393
387
|
version: '3.5'
|
|
388
|
+
- !ruby/object:Gem::Dependency
|
|
389
|
+
name: overcommit
|
|
390
|
+
requirement: !ruby/object:Gem::Requirement
|
|
391
|
+
requirements:
|
|
392
|
+
- - "~>"
|
|
393
|
+
- !ruby/object:Gem::Version
|
|
394
|
+
version: 0.68.0
|
|
395
|
+
type: :development
|
|
396
|
+
prerelease: false
|
|
397
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
398
|
+
requirements:
|
|
399
|
+
- - "~>"
|
|
400
|
+
- !ruby/object:Gem::Version
|
|
401
|
+
version: 0.68.0
|
|
394
402
|
- !ruby/object:Gem::Dependency
|
|
395
403
|
name: rubocop
|
|
396
404
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -489,20 +497,6 @@ dependencies:
|
|
|
489
497
|
- - "~>"
|
|
490
498
|
- !ruby/object:Gem::Version
|
|
491
499
|
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
500
|
- !ruby/object:Gem::Dependency
|
|
507
501
|
name: webmock
|
|
508
502
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -538,6 +532,7 @@ executables:
|
|
|
538
532
|
extensions: []
|
|
539
533
|
extra_rdoc_files: []
|
|
540
534
|
files:
|
|
535
|
+
- ".envrc"
|
|
541
536
|
- ".gitattributes"
|
|
542
537
|
- ".github/FUNDING.yml"
|
|
543
538
|
- ".github/workflows/linting.yml"
|
|
@@ -566,6 +561,7 @@ files:
|
|
|
566
561
|
- lib/solargraph/api_map/store.rb
|
|
567
562
|
- lib/solargraph/bench.rb
|
|
568
563
|
- lib/solargraph/complex_type.rb
|
|
564
|
+
- lib/solargraph/complex_type/conformance.rb
|
|
569
565
|
- lib/solargraph/complex_type/type_methods.rb
|
|
570
566
|
- lib/solargraph/complex_type/unique_type.rb
|
|
571
567
|
- lib/solargraph/convention.rb
|
|
@@ -688,12 +684,14 @@ files:
|
|
|
688
684
|
- lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb
|
|
689
685
|
- lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb
|
|
690
686
|
- lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb
|
|
687
|
+
- lib/solargraph/parser/parser_gem/node_processors/or_node.rb
|
|
691
688
|
- lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb
|
|
692
689
|
- lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb
|
|
693
690
|
- lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb
|
|
694
691
|
- lib/solargraph/parser/parser_gem/node_processors/send_node.rb
|
|
695
692
|
- lib/solargraph/parser/parser_gem/node_processors/sym_node.rb
|
|
696
693
|
- lib/solargraph/parser/parser_gem/node_processors/until_node.rb
|
|
694
|
+
- lib/solargraph/parser/parser_gem/node_processors/when_node.rb
|
|
697
695
|
- lib/solargraph/parser/parser_gem/node_processors/while_node.rb
|
|
698
696
|
- lib/solargraph/parser/region.rb
|
|
699
697
|
- lib/solargraph/parser/snippet.rb
|
|
@@ -706,6 +704,7 @@ files:
|
|
|
706
704
|
- lib/solargraph/pin/class_variable.rb
|
|
707
705
|
- lib/solargraph/pin/closure.rb
|
|
708
706
|
- lib/solargraph/pin/common.rb
|
|
707
|
+
- lib/solargraph/pin/compound_statement.rb
|
|
709
708
|
- lib/solargraph/pin/constant.rb
|
|
710
709
|
- lib/solargraph/pin/conversions.rb
|
|
711
710
|
- lib/solargraph/pin/delegated_method.rb
|
|
@@ -728,6 +727,7 @@ files:
|
|
|
728
727
|
- lib/solargraph/pin/reference/prepend.rb
|
|
729
728
|
- lib/solargraph/pin/reference/require.rb
|
|
730
729
|
- lib/solargraph/pin/reference/superclass.rb
|
|
730
|
+
- lib/solargraph/pin/reference/type_alias.rb
|
|
731
731
|
- lib/solargraph/pin/search.rb
|
|
732
732
|
- lib/solargraph/pin/signature.rb
|
|
733
733
|
- lib/solargraph/pin/singleton.rb
|
|
@@ -774,8 +774,6 @@ files:
|
|
|
774
774
|
- lib/solargraph/source_map/data.rb
|
|
775
775
|
- lib/solargraph/source_map/mapper.rb
|
|
776
776
|
- lib/solargraph/type_checker.rb
|
|
777
|
-
- lib/solargraph/type_checker/checks.rb
|
|
778
|
-
- lib/solargraph/type_checker/param_def.rb
|
|
779
777
|
- lib/solargraph/type_checker/problem.rb
|
|
780
778
|
- lib/solargraph/type_checker/rules.rb
|
|
781
779
|
- lib/solargraph/version.rb
|
|
@@ -788,6 +786,7 @@ files:
|
|
|
788
786
|
- lib/solargraph/views/search.erb
|
|
789
787
|
- lib/solargraph/workspace.rb
|
|
790
788
|
- lib/solargraph/workspace/config.rb
|
|
789
|
+
- lib/solargraph/workspace/gemspecs.rb
|
|
791
790
|
- lib/solargraph/workspace/require_paths.rb
|
|
792
791
|
- lib/solargraph/yard_map.rb
|
|
793
792
|
- lib/solargraph/yard_map/cache.rb
|
|
@@ -796,19 +795,19 @@ files:
|
|
|
796
795
|
- lib/solargraph/yard_map/mapper/to_constant.rb
|
|
797
796
|
- lib/solargraph/yard_map/mapper/to_method.rb
|
|
798
797
|
- lib/solargraph/yard_map/mapper/to_namespace.rb
|
|
799
|
-
- lib/solargraph/yard_map/to_method.rb
|
|
800
798
|
- lib/solargraph/yard_tags.rb
|
|
801
799
|
- lib/solargraph/yardoc.rb
|
|
802
800
|
- rbs/fills/bundler/0/bundler.rbs
|
|
803
801
|
- rbs/fills/open3/0/open3.rbs
|
|
804
802
|
- rbs/fills/rubygems/0/basic_specification.rbs
|
|
803
|
+
- rbs/fills/rubygems/0/dependency.rbs
|
|
805
804
|
- rbs/fills/rubygems/0/errors.rbs
|
|
806
805
|
- rbs/fills/rubygems/0/spec_fetcher.rbs
|
|
807
806
|
- rbs/fills/rubygems/0/specification.rbs
|
|
808
|
-
- rbs/fills/tuple/tuple.rbs
|
|
809
807
|
- rbs/shims/ast/0/node.rbs
|
|
810
808
|
- rbs/shims/ast/2.4/.rbs_meta.yaml
|
|
811
809
|
- rbs/shims/ast/2.4/ast.rbs
|
|
810
|
+
- rbs/shims/diff-lcs/1.5/diff-lcs.rbs
|
|
812
811
|
- rbs/shims/parser/3.2.0.1/builders/default.rbs
|
|
813
812
|
- rbs/shims/parser/3.2.0.1/manifest.yaml
|
|
814
813
|
- rbs/shims/parser/3.2.0.1/parser.rbs
|
|
@@ -834,14 +833,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
834
833
|
requirements:
|
|
835
834
|
- - ">="
|
|
836
835
|
- !ruby/object:Gem::Version
|
|
837
|
-
version: '3.
|
|
836
|
+
version: '3.1'
|
|
838
837
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
839
838
|
requirements:
|
|
840
839
|
- - ">="
|
|
841
840
|
- !ruby/object:Gem::Version
|
|
842
841
|
version: '0'
|
|
843
842
|
requirements: []
|
|
844
|
-
rubygems_version:
|
|
843
|
+
rubygems_version: 4.0.6
|
|
845
844
|
specification_version: 4
|
|
846
845
|
summary: A Ruby language server
|
|
847
846
|
test_files: []
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
class TypeChecker
|
|
5
|
-
# Helper methods for performing type checks
|
|
6
|
-
#
|
|
7
|
-
module Checks
|
|
8
|
-
module_function
|
|
9
|
-
|
|
10
|
-
# Compare an expected type with an inferred type. Common usage is to
|
|
11
|
-
# check if the type declared in a method's @return tag matches the type
|
|
12
|
-
# inferred from static analysis of the code.
|
|
13
|
-
#
|
|
14
|
-
# @param api_map [ApiMap]
|
|
15
|
-
# @param expected [ComplexType]
|
|
16
|
-
# @param inferred [ComplexType]
|
|
17
|
-
# @return [Boolean]
|
|
18
|
-
def types_match? api_map, expected, inferred
|
|
19
|
-
return true if expected.to_s == inferred.to_s
|
|
20
|
-
matches = []
|
|
21
|
-
expected.each do |exp|
|
|
22
|
-
found = false
|
|
23
|
-
inferred.each do |inf|
|
|
24
|
-
# if api_map.super_and_sub?(fuzz(inf), fuzz(exp))
|
|
25
|
-
if either_way?(api_map, inf, exp)
|
|
26
|
-
found = true
|
|
27
|
-
matches.push inf
|
|
28
|
-
break
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
return false unless found
|
|
32
|
-
end
|
|
33
|
-
inferred.each do |inf|
|
|
34
|
-
next if matches.include?(inf)
|
|
35
|
-
found = false
|
|
36
|
-
expected.each do |exp|
|
|
37
|
-
# if api_map.super_and_sub?(fuzz(inf), fuzz(exp))
|
|
38
|
-
if either_way?(api_map, inf, exp)
|
|
39
|
-
found = true
|
|
40
|
-
break
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
return false unless found
|
|
44
|
-
end
|
|
45
|
-
true
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# @param api_map [ApiMap]
|
|
49
|
-
# @param expected [ComplexType]
|
|
50
|
-
# @param inferred [ComplexType]
|
|
51
|
-
# @return [Boolean]
|
|
52
|
-
def any_types_match? api_map, expected, inferred
|
|
53
|
-
expected = expected.downcast_to_literal_if_possible
|
|
54
|
-
inferred = inferred.downcast_to_literal_if_possible
|
|
55
|
-
return duck_types_match?(api_map, expected, inferred) if expected.duck_type?
|
|
56
|
-
# walk through the union expected type and see if any members
|
|
57
|
-
# of the union match the inferred type
|
|
58
|
-
expected.each do |exp|
|
|
59
|
-
next if exp.duck_type?
|
|
60
|
-
# @todo: there should be a level of typechecking where all
|
|
61
|
-
# unique types in the inferred must match one of the
|
|
62
|
-
# expected unique types
|
|
63
|
-
inferred.each do |inf|
|
|
64
|
-
# return true if exp == inf || api_map.super_and_sub?(fuzz(inf), fuzz(exp))
|
|
65
|
-
return true if exp == inf || either_way?(api_map, inf, exp)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
false
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
# @param api_map [ApiMap]
|
|
72
|
-
# @param inferred [ComplexType]
|
|
73
|
-
# @param expected [ComplexType]
|
|
74
|
-
# @return [Boolean]
|
|
75
|
-
def all_types_match? api_map, inferred, expected
|
|
76
|
-
expected = expected.downcast_to_literal_if_possible
|
|
77
|
-
inferred = inferred.downcast_to_literal_if_possible
|
|
78
|
-
return duck_types_match?(api_map, expected, inferred) if expected.duck_type?
|
|
79
|
-
inferred.each do |inf|
|
|
80
|
-
next if inf.duck_type?
|
|
81
|
-
return false unless expected.any? { |exp| exp == inf || either_way?(api_map, inf, exp) }
|
|
82
|
-
end
|
|
83
|
-
true
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# @param api_map [ApiMap]
|
|
87
|
-
# @param expected [ComplexType]
|
|
88
|
-
# @param inferred [ComplexType]
|
|
89
|
-
# @return [Boolean]
|
|
90
|
-
def duck_types_match? api_map, expected, inferred
|
|
91
|
-
raise ArgumentError, 'Expected type must be duck type' unless expected.duck_type?
|
|
92
|
-
expected.each do |exp|
|
|
93
|
-
next unless exp.duck_type?
|
|
94
|
-
quack = exp.to_s[1..-1]
|
|
95
|
-
return false if api_map.get_method_stack(inferred.namespace, quack, scope: inferred.scope).empty?
|
|
96
|
-
end
|
|
97
|
-
true
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# @param type [ComplexType::UniqueType]
|
|
101
|
-
# @return [String]
|
|
102
|
-
def fuzz type
|
|
103
|
-
if type.parameters?
|
|
104
|
-
type.name
|
|
105
|
-
else
|
|
106
|
-
type.tag
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# @param api_map [ApiMap]
|
|
111
|
-
# @param cls1 [ComplexType::UniqueType]
|
|
112
|
-
# @param cls2 [ComplexType::UniqueType]
|
|
113
|
-
# @return [Boolean]
|
|
114
|
-
def either_way?(api_map, cls1, cls2)
|
|
115
|
-
# @todo there should be a level of typechecking which uses the
|
|
116
|
-
# full tag with parameters to determine compatibility
|
|
117
|
-
f1 = cls1.name
|
|
118
|
-
f2 = cls2.name
|
|
119
|
-
api_map.type_include?(f1, f2) || api_map.super_and_sub?(f1, f2) || api_map.super_and_sub?(f2, f1)
|
|
120
|
-
# api_map.type_include?(f1, f2) || api_map.super_and_sub?(f1, f2) || api_map.super_and_sub?(f2, f1)
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
end
|
|
124
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
class TypeChecker
|
|
5
|
-
# Data about a method parameter definition. This is the information from
|
|
6
|
-
# the args list in the def call, not the `@param` tags.
|
|
7
|
-
#
|
|
8
|
-
class ParamDef
|
|
9
|
-
# @return [String]
|
|
10
|
-
attr_reader :name
|
|
11
|
-
|
|
12
|
-
# @return [Symbol]
|
|
13
|
-
attr_reader :type
|
|
14
|
-
|
|
15
|
-
# @param name [String]
|
|
16
|
-
# @param type [Symbol] The type of parameter, such as :req, :opt, :rest, etc.
|
|
17
|
-
def initialize name, type
|
|
18
|
-
@name = name
|
|
19
|
-
@type = type
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
class << self
|
|
23
|
-
# Get an array of ParamDefs from a method pin.
|
|
24
|
-
#
|
|
25
|
-
# @param pin [Solargraph::Pin::Method]
|
|
26
|
-
# @return [Array<ParamDef>]
|
|
27
|
-
def from pin
|
|
28
|
-
result = []
|
|
29
|
-
pin.parameters.each do |par|
|
|
30
|
-
result.push ParamDef.new(par.name, par.decl)
|
|
31
|
-
end
|
|
32
|
-
result
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
class YardMap
|
|
5
|
-
class ToMethod
|
|
6
|
-
module InnerMethods
|
|
7
|
-
module_function
|
|
8
|
-
|
|
9
|
-
# @param code_object [YARD::CodeObjects::Base]
|
|
10
|
-
# @param location [Solargraph::Location]
|
|
11
|
-
# @param comments [String]
|
|
12
|
-
# @return [Array<Solargraph::Pin::Parameter>]
|
|
13
|
-
def get_parameters code_object, location, comments
|
|
14
|
-
return [] unless code_object.is_a?(YARD::CodeObjects::MethodObject)
|
|
15
|
-
# HACK: Skip `nil` and `self` parameters that are sometimes emitted
|
|
16
|
-
# for methods defined in C
|
|
17
|
-
# See https://github.com/castwide/solargraph/issues/345
|
|
18
|
-
# @sg-ignore https://github.com/castwide/solargraph/pull/1114
|
|
19
|
-
code_object.parameters.select { |a| a[0] && a[0] != 'self' }.map do |a|
|
|
20
|
-
Solargraph::Pin::Parameter.new(
|
|
21
|
-
location: location,
|
|
22
|
-
closure: self,
|
|
23
|
-
comments: comments,
|
|
24
|
-
name: arg_name(a),
|
|
25
|
-
presence: nil,
|
|
26
|
-
decl: arg_type(a),
|
|
27
|
-
asgn_code: a[1],
|
|
28
|
-
source: :yard_map
|
|
29
|
-
)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# @param a [Array<String>]
|
|
34
|
-
# @return [String]
|
|
35
|
-
def arg_name a
|
|
36
|
-
a[0].gsub(/[^a-z0-9_]/i, '')
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# @param a [Array]
|
|
40
|
-
# @return [::Symbol]
|
|
41
|
-
def arg_type a
|
|
42
|
-
if a[0].start_with?('**')
|
|
43
|
-
:kwrestarg
|
|
44
|
-
elsif a[0].start_with?('*')
|
|
45
|
-
:restarg
|
|
46
|
-
elsif a[0].start_with?('&')
|
|
47
|
-
:blockarg
|
|
48
|
-
elsif a[0].end_with?(':')
|
|
49
|
-
a[1] ? :kwoptarg : :kwarg
|
|
50
|
-
elsif a[1]
|
|
51
|
-
:optarg
|
|
52
|
-
else
|
|
53
|
-
:arg
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
private_constant :InnerMethods
|
|
58
|
-
|
|
59
|
-
include Helpers
|
|
60
|
-
|
|
61
|
-
# @param code_object [YARD::CodeObjects::MethodObject]
|
|
62
|
-
# @param name [String, nil]
|
|
63
|
-
# @param scope [Symbol, nil]
|
|
64
|
-
# @param visibility [Symbol, nil]
|
|
65
|
-
# @param closure [Solargraph::Pin::Base, nil]
|
|
66
|
-
# @param spec [Solargraph::Pin::Base, nil]
|
|
67
|
-
# @return [Solargraph::Pin::Method]
|
|
68
|
-
def make code_object, name = nil, scope = nil, visibility = nil, closure = nil, spec = nil
|
|
69
|
-
closure ||= Solargraph::Pin::Namespace.new(
|
|
70
|
-
name: code_object.namespace.to_s,
|
|
71
|
-
gates: [code_object.namespace.to_s]
|
|
72
|
-
)
|
|
73
|
-
location = object_location(code_object, spec)
|
|
74
|
-
comments = code_object.docstring ? code_object.docstring.all.to_s : ''
|
|
75
|
-
Pin::Method.new(
|
|
76
|
-
location: location,
|
|
77
|
-
closure: closure,
|
|
78
|
-
name: name || code_object.name.to_s,
|
|
79
|
-
comments: comments,
|
|
80
|
-
scope: scope || code_object.scope,
|
|
81
|
-
visibility: visibility || code_object.visibility,
|
|
82
|
-
parameters: InnerMethods.get_parameters(code_object, location, comments),
|
|
83
|
-
explicit: code_object.is_explicit?,
|
|
84
|
-
source: :yard_map
|
|
85
|
-
)
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|