solargraph 0.46.0 → 0.47.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/.github/workflows/rspec.yml +41 -41
- data/.gitignore +9 -9
- data/.rspec +2 -2
- data/.travis.yml +19 -19
- data/CHANGELOG.md +1130 -1115
- data/Gemfile +0 -0
- data/LICENSE +0 -0
- data/README.md +128 -128
- data/Rakefile +0 -0
- data/SPONSORS.md +17 -18
- data/bin/solargraph +0 -0
- data/lib/solargraph/api_map/bundler_methods.rb +22 -22
- data/lib/solargraph/api_map/cache.rb +70 -70
- data/lib/solargraph/api_map/source_to_yard.rb +81 -81
- data/lib/solargraph/api_map/store.rb +256 -256
- data/lib/solargraph/api_map.rb +686 -686
- data/lib/solargraph/bench.rb +27 -27
- data/lib/solargraph/compat.rb +37 -37
- data/lib/solargraph/complex_type/type_methods.rb +130 -130
- data/lib/solargraph/complex_type/unique_type.rb +75 -75
- data/lib/solargraph/complex_type.rb +225 -221
- data/lib/solargraph/convention/base.rb +33 -33
- data/lib/solargraph/convention/gemfile.rb +15 -15
- data/lib/solargraph/convention/gemspec.rb +22 -22
- data/lib/solargraph/convention/rspec.rb +30 -30
- data/lib/solargraph/convention.rb +47 -47
- data/lib/solargraph/converters/dd.rb +12 -12
- data/lib/solargraph/converters/dl.rb +12 -12
- data/lib/solargraph/converters/dt.rb +12 -12
- data/lib/solargraph/converters/misc.rb +1 -1
- data/lib/solargraph/diagnostics/base.rb +29 -29
- data/lib/solargraph/diagnostics/require_not_found.rb +53 -53
- data/lib/solargraph/diagnostics/rubocop.rb +98 -98
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +63 -63
- data/lib/solargraph/diagnostics/severities.rb +15 -15
- data/lib/solargraph/diagnostics/type_check.rb +54 -54
- data/lib/solargraph/diagnostics/update_errors.rb +41 -41
- data/lib/solargraph/diagnostics.rb +55 -55
- data/lib/solargraph/documentor.rb +76 -76
- data/lib/solargraph/environ.rb +45 -45
- data/lib/solargraph/language_server/completion_item_kinds.rb +35 -35
- data/lib/solargraph/language_server/error_codes.rb +20 -20
- data/lib/solargraph/language_server/host/cataloger.rb +56 -56
- data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
- data/lib/solargraph/language_server/host/dispatch.rb +111 -111
- data/lib/solargraph/language_server/host/message_worker.rb +59 -59
- data/lib/solargraph/language_server/host/sources.rb +156 -156
- data/lib/solargraph/language_server/host.rb +865 -865
- data/lib/solargraph/language_server/message/base.rb +89 -89
- data/lib/solargraph/language_server/message/cancel_request.rb +13 -13
- data/lib/solargraph/language_server/message/client/register_capability.rb +15 -15
- data/lib/solargraph/language_server/message/client.rb +11 -11
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +58 -58
- data/lib/solargraph/language_server/message/completion_item.rb +11 -11
- data/lib/solargraph/language_server/message/exit_notification.rb +13 -13
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +100 -100
- data/lib/solargraph/language_server/message/extended/document.rb +20 -20
- data/lib/solargraph/language_server/message/extended/document_gems.rb +32 -32
- data/lib/solargraph/language_server/message/extended/download_core.rb +23 -23
- data/lib/solargraph/language_server/message/extended/environment.rb +25 -25
- data/lib/solargraph/language_server/message/extended/search.rb +20 -20
- data/lib/solargraph/language_server/message/extended.rb +21 -21
- data/lib/solargraph/language_server/message/initialize.rb +162 -162
- data/lib/solargraph/language_server/message/initialized.rb +27 -27
- data/lib/solargraph/language_server/message/method_not_found.rb +16 -16
- data/lib/solargraph/language_server/message/method_not_implemented.rb +14 -14
- data/lib/solargraph/language_server/message/shutdown.rb +13 -13
- data/lib/solargraph/language_server/message/text_document/base.rb +19 -19
- data/lib/solargraph/language_server/message/text_document/code_action.rb +17 -17
- data/lib/solargraph/language_server/message/text_document/completion.rb +59 -59
- data/lib/solargraph/language_server/message/text_document/definition.rb +38 -38
- data/lib/solargraph/language_server/message/text_document/did_change.rb +15 -15
- data/lib/solargraph/language_server/message/text_document/did_close.rb +15 -15
- data/lib/solargraph/language_server/message/text_document/did_open.rb +15 -15
- data/lib/solargraph/language_server/message/text_document/did_save.rb +17 -17
- data/lib/solargraph/language_server/message/text_document/document_highlight.rb +16 -16
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +23 -23
- data/lib/solargraph/language_server/message/text_document/folding_range.rb +26 -26
- data/lib/solargraph/language_server/message/text_document/formatting.rb +126 -126
- data/lib/solargraph/language_server/message/text_document/hover.rb +56 -54
- data/lib/solargraph/language_server/message/text_document/on_type_formatting.rb +34 -34
- 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 +29 -29
- data/lib/solargraph/language_server/message/text_document.rb +28 -28
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +30 -30
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +33 -33
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +24 -24
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +23 -23
- data/lib/solargraph/language_server/message/workspace.rb +14 -14
- data/lib/solargraph/language_server/message.rb +93 -93
- data/lib/solargraph/language_server/message_types.rb +14 -14
- data/lib/solargraph/language_server/request.rb +24 -24
- data/lib/solargraph/language_server/symbol_kinds.rb +36 -36
- data/lib/solargraph/language_server/transport/adapter.rb +53 -53
- data/lib/solargraph/language_server/transport/data_reader.rb +72 -72
- data/lib/solargraph/language_server/transport.rb +13 -13
- data/lib/solargraph/language_server/uri_helpers.rb +49 -49
- data/lib/solargraph/language_server.rb +19 -19
- data/lib/solargraph/library.rb +546 -546
- data/lib/solargraph/location.rb +37 -37
- data/lib/solargraph/logging.rb +27 -27
- data/lib/solargraph/page.rb +83 -83
- data/lib/solargraph/parser/comment_ripper.rb +52 -52
- data/lib/solargraph/parser/legacy/class_methods.rb +135 -135
- data/lib/solargraph/parser/legacy/flawed_builder.rb +16 -16
- data/lib/solargraph/parser/legacy/node_chainer.rb +148 -148
- data/lib/solargraph/parser/legacy/node_methods.rb +325 -325
- data/lib/solargraph/parser/legacy/node_processors/alias_node.rb +23 -23
- data/lib/solargraph/parser/legacy/node_processors/args_node.rb +35 -35
- data/lib/solargraph/parser/legacy/node_processors/begin_node.rb +15 -15
- data/lib/solargraph/parser/legacy/node_processors/block_node.rb +42 -42
- data/lib/solargraph/parser/legacy/node_processors/casgn_node.rb +25 -25
- data/lib/solargraph/parser/legacy/node_processors/cvasgn_node.rb +23 -23
- data/lib/solargraph/parser/legacy/node_processors/def_node.rb +63 -63
- data/lib/solargraph/parser/legacy/node_processors/defs_node.rb +36 -36
- data/lib/solargraph/parser/legacy/node_processors/gvasgn_node.rb +23 -23
- data/lib/solargraph/parser/legacy/node_processors/ivasgn_node.rb +38 -38
- data/lib/solargraph/parser/legacy/node_processors/lvasgn_node.rb +28 -28
- data/lib/solargraph/parser/legacy/node_processors/namespace_node.rb +39 -39
- data/lib/solargraph/parser/legacy/node_processors/orasgn_node.rb +16 -16
- data/lib/solargraph/parser/legacy/node_processors/resbody_node.rb +36 -36
- data/lib/solargraph/parser/legacy/node_processors/sclass_node.rb +21 -21
- data/lib/solargraph/parser/legacy/node_processors/send_node.rb +257 -257
- data/lib/solargraph/parser/legacy/node_processors/sym_node.rb +18 -18
- data/lib/solargraph/parser/legacy/node_processors.rb +54 -54
- data/lib/solargraph/parser/legacy.rb +12 -12
- data/lib/solargraph/parser/node_methods.rb +43 -43
- data/lib/solargraph/parser/node_processor/base.rb +77 -77
- data/lib/solargraph/parser/node_processor.rb +43 -43
- data/lib/solargraph/parser/region.rb +66 -66
- data/lib/solargraph/parser/rubyvm/class_methods.rb +144 -144
- data/lib/solargraph/parser/rubyvm/node_chainer.rb +160 -160
- data/lib/solargraph/parser/rubyvm/node_methods.rb +315 -315
- data/lib/solargraph/parser/rubyvm/node_processors/alias_node.rb +23 -23
- data/lib/solargraph/parser/rubyvm/node_processors/args_node.rb +85 -85
- data/lib/solargraph/parser/rubyvm/node_processors/begin_node.rb +15 -15
- data/lib/solargraph/parser/rubyvm/node_processors/block_node.rb +42 -42
- data/lib/solargraph/parser/rubyvm/node_processors/casgn_node.rb +22 -22
- data/lib/solargraph/parser/rubyvm/node_processors/cvasgn_node.rb +23 -23
- data/lib/solargraph/parser/rubyvm/node_processors/def_node.rb +63 -63
- data/lib/solargraph/parser/rubyvm/node_processors/defs_node.rb +57 -57
- data/lib/solargraph/parser/rubyvm/node_processors/gvasgn_node.rb +23 -23
- data/lib/solargraph/parser/rubyvm/node_processors/ivasgn_node.rb +38 -38
- data/lib/solargraph/parser/rubyvm/node_processors/kw_arg_node.rb +39 -39
- data/lib/solargraph/parser/rubyvm/node_processors/lit_node.rb +20 -20
- data/lib/solargraph/parser/rubyvm/node_processors/lvasgn_node.rb +27 -27
- data/lib/solargraph/parser/rubyvm/node_processors/namespace_node.rb +39 -39
- data/lib/solargraph/parser/rubyvm/node_processors/opt_arg_node.rb +26 -26
- data/lib/solargraph/parser/rubyvm/node_processors/orasgn_node.rb +15 -15
- data/lib/solargraph/parser/rubyvm/node_processors/resbody_node.rb +45 -45
- data/lib/solargraph/parser/rubyvm/node_processors/sclass_node.rb +21 -21
- data/lib/solargraph/parser/rubyvm/node_processors/scope_node.rb +15 -15
- data/lib/solargraph/parser/rubyvm/node_processors/send_node.rb +277 -277
- data/lib/solargraph/parser/rubyvm/node_processors/sym_node.rb +18 -18
- data/lib/solargraph/parser/rubyvm/node_processors.rb +63 -63
- data/lib/solargraph/parser/rubyvm.rb +40 -40
- data/lib/solargraph/parser/snippet.rb +13 -13
- data/lib/solargraph/parser.rb +26 -26
- data/lib/solargraph/pin/base.rb +296 -296
- data/lib/solargraph/pin/base_variable.rb +84 -84
- data/lib/solargraph/pin/block.rb +73 -72
- data/lib/solargraph/pin/class_variable.rb +8 -8
- data/lib/solargraph/pin/closure.rb +37 -37
- data/lib/solargraph/pin/common.rb +70 -70
- data/lib/solargraph/pin/constant.rb +43 -43
- data/lib/solargraph/pin/conversions.rb +96 -96
- data/lib/solargraph/pin/documenting.rb +105 -105
- data/lib/solargraph/pin/duck_method.rb +16 -16
- data/lib/solargraph/pin/global_variable.rb +8 -8
- data/lib/solargraph/pin/instance_variable.rb +30 -30
- data/lib/solargraph/pin/keyword.rb +15 -15
- data/lib/solargraph/pin/keyword_param.rb +8 -8
- data/lib/solargraph/pin/local_variable.rb +55 -55
- data/lib/solargraph/pin/method.rb +245 -245
- data/lib/solargraph/pin/method_alias.rb +31 -31
- data/lib/solargraph/pin/namespace.rb +91 -91
- data/lib/solargraph/pin/parameter.rb +201 -201
- data/lib/solargraph/pin/proxy_type.rb +29 -29
- data/lib/solargraph/pin/reference/extend.rb +10 -10
- data/lib/solargraph/pin/reference/include.rb +10 -10
- data/lib/solargraph/pin/reference/override.rb +29 -29
- data/lib/solargraph/pin/reference/prepend.rb +10 -10
- data/lib/solargraph/pin/reference/require.rb +14 -14
- data/lib/solargraph/pin/reference/superclass.rb +10 -10
- data/lib/solargraph/pin/reference.rb +14 -14
- data/lib/solargraph/pin/search.rb +56 -56
- data/lib/solargraph/pin/singleton.rb +11 -11
- data/lib/solargraph/pin/symbol.rb +47 -47
- data/lib/solargraph/pin.rb +37 -37
- data/lib/solargraph/position.rb +100 -100
- data/lib/solargraph/range.rb +95 -95
- data/lib/solargraph/server_methods.rb +16 -16
- data/lib/solargraph/shell.rb +226 -226
- data/lib/solargraph/source/chain/block_variable.rb +13 -13
- data/lib/solargraph/source/chain/call.rb +204 -204
- data/lib/solargraph/source/chain/class_variable.rb +13 -13
- data/lib/solargraph/source/chain/constant.rb +75 -75
- data/lib/solargraph/source/chain/global_variable.rb +13 -13
- data/lib/solargraph/source/chain/hash.rb +28 -28
- data/lib/solargraph/source/chain/head.rb +19 -19
- data/lib/solargraph/source/chain/instance_variable.rb +13 -13
- data/lib/solargraph/source/chain/link.rb +71 -71
- data/lib/solargraph/source/chain/literal.rb +23 -23
- 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 +164 -164
- data/lib/solargraph/source/change.rb +79 -79
- data/lib/solargraph/source/cursor.rb +164 -164
- data/lib/solargraph/source/source_chainer.rb +191 -191
- data/lib/solargraph/source/updater.rb +54 -54
- data/lib/solargraph/source.rb +522 -522
- data/lib/solargraph/source_map/clip.rb +224 -224
- data/lib/solargraph/source_map/completion.rb +23 -23
- data/lib/solargraph/source_map/mapper.rb +239 -212
- data/lib/solargraph/source_map.rb +180 -180
- data/lib/solargraph/type_checker/checks.rb +112 -99
- data/lib/solargraph/type_checker/param_def.rb +35 -35
- data/lib/solargraph/type_checker/problem.rb +32 -32
- data/lib/solargraph/type_checker/rules.rb +57 -57
- data/lib/solargraph/type_checker.rb +543 -543
- data/lib/solargraph/version.rb +5 -5
- data/lib/solargraph/views/environment.erb +58 -58
- data/lib/solargraph/workspace/config.rb +231 -231
- data/lib/solargraph/workspace.rb +215 -215
- data/lib/solargraph/yard_map/cache.rb +19 -19
- data/lib/solargraph/yard_map/core_docs.rb +170 -170
- data/lib/solargraph/yard_map/core_fills.rb +208 -208
- data/lib/solargraph/yard_map/core_gen.rb +76 -76
- data/lib/solargraph/yard_map/helpers.rb +16 -16
- data/lib/solargraph/yard_map/mapper/to_constant.rb +25 -25
- data/lib/solargraph/yard_map/mapper/to_method.rb +78 -78
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +27 -27
- data/lib/solargraph/yard_map/mapper.rb +77 -77
- data/lib/solargraph/yard_map/rdoc_to_yard.rb +140 -140
- data/lib/solargraph/yard_map/stdlib_fills.rb +43 -43
- data/lib/solargraph/yard_map/to_method.rb +79 -79
- data/lib/solargraph/yard_map.rb +460 -460
- data/lib/solargraph.rb +69 -69
- data/lib/yard-solargraph.rb +33 -33
- data/solargraph.gemspec +0 -0
- metadata +12 -12
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'solargraph/parser/node_processor'
|
|
4
|
-
|
|
5
|
-
module Solargraph
|
|
6
|
-
module Parser
|
|
7
|
-
module Legacy
|
|
8
|
-
module NodeProcessors
|
|
9
|
-
autoload :BeginNode, 'solargraph/parser/legacy/node_processors/begin_node'
|
|
10
|
-
autoload :DefNode, 'solargraph/parser/legacy/node_processors/def_node'
|
|
11
|
-
autoload :DefsNode, 'solargraph/parser/legacy/node_processors/defs_node'
|
|
12
|
-
autoload :SendNode, 'solargraph/parser/legacy/node_processors/send_node'
|
|
13
|
-
autoload :NamespaceNode, 'solargraph/parser/legacy/node_processors/namespace_node'
|
|
14
|
-
autoload :SclassNode, 'solargraph/parser/legacy/node_processors/sclass_node'
|
|
15
|
-
autoload :ModuleNode, 'solargraph/parser/legacy/node_processors/module_node'
|
|
16
|
-
autoload :IvasgnNode, 'solargraph/parser/legacy/node_processors/ivasgn_node'
|
|
17
|
-
autoload :CvasgnNode, 'solargraph/parser/legacy/node_processors/cvasgn_node'
|
|
18
|
-
autoload :LvasgnNode, 'solargraph/parser/legacy/node_processors/lvasgn_node'
|
|
19
|
-
autoload :GvasgnNode, 'solargraph/parser/legacy/node_processors/gvasgn_node'
|
|
20
|
-
autoload :CasgnNode, 'solargraph/parser/legacy/node_processors/casgn_node'
|
|
21
|
-
autoload :AliasNode, 'solargraph/parser/legacy/node_processors/alias_node'
|
|
22
|
-
autoload :ArgsNode, 'solargraph/parser/legacy/node_processors/args_node'
|
|
23
|
-
autoload :BlockNode, 'solargraph/parser/legacy/node_processors/block_node'
|
|
24
|
-
autoload :OrasgnNode, 'solargraph/parser/legacy/node_processors/orasgn_node'
|
|
25
|
-
autoload :SymNode, 'solargraph/parser/legacy/node_processors/sym_node'
|
|
26
|
-
autoload :ResbodyNode, 'solargraph/parser/legacy/node_processors/resbody_node'
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
module NodeProcessor
|
|
31
|
-
register :source, Legacy::NodeProcessors::BeginNode
|
|
32
|
-
register :begin, Legacy::NodeProcessors::BeginNode
|
|
33
|
-
register :kwbegin, Legacy::NodeProcessors::BeginNode
|
|
34
|
-
register :rescue, Legacy::NodeProcessors::BeginNode
|
|
35
|
-
register :resbody, Legacy::NodeProcessors::ResbodyNode
|
|
36
|
-
register :def, Legacy::NodeProcessors::DefNode
|
|
37
|
-
register :defs, Legacy::NodeProcessors::DefsNode
|
|
38
|
-
register :send, Legacy::NodeProcessors::SendNode
|
|
39
|
-
register :class, Legacy::NodeProcessors::NamespaceNode
|
|
40
|
-
register :module, Legacy::NodeProcessors::NamespaceNode
|
|
41
|
-
register :sclass, Legacy::NodeProcessors::SclassNode
|
|
42
|
-
register :ivasgn, Legacy::NodeProcessors::IvasgnNode
|
|
43
|
-
register :cvasgn, Legacy::NodeProcessors::CvasgnNode
|
|
44
|
-
register :lvasgn, Legacy::NodeProcessors::LvasgnNode
|
|
45
|
-
register :gvasgn, Legacy::NodeProcessors::GvasgnNode
|
|
46
|
-
register :casgn, Legacy::NodeProcessors::CasgnNode
|
|
47
|
-
register :alias, Legacy::NodeProcessors::AliasNode
|
|
48
|
-
register :args, Legacy::NodeProcessors::ArgsNode
|
|
49
|
-
register :block, Legacy::NodeProcessors::BlockNode
|
|
50
|
-
register :or_asgn, Legacy::NodeProcessors::OrasgnNode
|
|
51
|
-
register :sym, Legacy::NodeProcessors::SymNode
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'solargraph/parser/node_processor'
|
|
4
|
+
|
|
5
|
+
module Solargraph
|
|
6
|
+
module Parser
|
|
7
|
+
module Legacy
|
|
8
|
+
module NodeProcessors
|
|
9
|
+
autoload :BeginNode, 'solargraph/parser/legacy/node_processors/begin_node'
|
|
10
|
+
autoload :DefNode, 'solargraph/parser/legacy/node_processors/def_node'
|
|
11
|
+
autoload :DefsNode, 'solargraph/parser/legacy/node_processors/defs_node'
|
|
12
|
+
autoload :SendNode, 'solargraph/parser/legacy/node_processors/send_node'
|
|
13
|
+
autoload :NamespaceNode, 'solargraph/parser/legacy/node_processors/namespace_node'
|
|
14
|
+
autoload :SclassNode, 'solargraph/parser/legacy/node_processors/sclass_node'
|
|
15
|
+
autoload :ModuleNode, 'solargraph/parser/legacy/node_processors/module_node'
|
|
16
|
+
autoload :IvasgnNode, 'solargraph/parser/legacy/node_processors/ivasgn_node'
|
|
17
|
+
autoload :CvasgnNode, 'solargraph/parser/legacy/node_processors/cvasgn_node'
|
|
18
|
+
autoload :LvasgnNode, 'solargraph/parser/legacy/node_processors/lvasgn_node'
|
|
19
|
+
autoload :GvasgnNode, 'solargraph/parser/legacy/node_processors/gvasgn_node'
|
|
20
|
+
autoload :CasgnNode, 'solargraph/parser/legacy/node_processors/casgn_node'
|
|
21
|
+
autoload :AliasNode, 'solargraph/parser/legacy/node_processors/alias_node'
|
|
22
|
+
autoload :ArgsNode, 'solargraph/parser/legacy/node_processors/args_node'
|
|
23
|
+
autoload :BlockNode, 'solargraph/parser/legacy/node_processors/block_node'
|
|
24
|
+
autoload :OrasgnNode, 'solargraph/parser/legacy/node_processors/orasgn_node'
|
|
25
|
+
autoload :SymNode, 'solargraph/parser/legacy/node_processors/sym_node'
|
|
26
|
+
autoload :ResbodyNode, 'solargraph/parser/legacy/node_processors/resbody_node'
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
module NodeProcessor
|
|
31
|
+
register :source, Legacy::NodeProcessors::BeginNode
|
|
32
|
+
register :begin, Legacy::NodeProcessors::BeginNode
|
|
33
|
+
register :kwbegin, Legacy::NodeProcessors::BeginNode
|
|
34
|
+
register :rescue, Legacy::NodeProcessors::BeginNode
|
|
35
|
+
register :resbody, Legacy::NodeProcessors::ResbodyNode
|
|
36
|
+
register :def, Legacy::NodeProcessors::DefNode
|
|
37
|
+
register :defs, Legacy::NodeProcessors::DefsNode
|
|
38
|
+
register :send, Legacy::NodeProcessors::SendNode
|
|
39
|
+
register :class, Legacy::NodeProcessors::NamespaceNode
|
|
40
|
+
register :module, Legacy::NodeProcessors::NamespaceNode
|
|
41
|
+
register :sclass, Legacy::NodeProcessors::SclassNode
|
|
42
|
+
register :ivasgn, Legacy::NodeProcessors::IvasgnNode
|
|
43
|
+
register :cvasgn, Legacy::NodeProcessors::CvasgnNode
|
|
44
|
+
register :lvasgn, Legacy::NodeProcessors::LvasgnNode
|
|
45
|
+
register :gvasgn, Legacy::NodeProcessors::GvasgnNode
|
|
46
|
+
register :casgn, Legacy::NodeProcessors::CasgnNode
|
|
47
|
+
register :alias, Legacy::NodeProcessors::AliasNode
|
|
48
|
+
register :args, Legacy::NodeProcessors::ArgsNode
|
|
49
|
+
register :block, Legacy::NodeProcessors::BlockNode
|
|
50
|
+
register :or_asgn, Legacy::NodeProcessors::OrasgnNode
|
|
51
|
+
register :sym, Legacy::NodeProcessors::SymNode
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
module Solargraph
|
|
2
|
-
module Parser
|
|
3
|
-
module Legacy
|
|
4
|
-
autoload :FlawedBuilder, 'solargraph/parser/legacy/flawed_builder'
|
|
5
|
-
autoload :ClassMethods, 'solargraph/parser/legacy/class_methods'
|
|
6
|
-
autoload :NodeMethods, 'solargraph/parser/legacy/node_methods'
|
|
7
|
-
autoload :NodeChainer, 'solargraph/parser/legacy/node_chainer'
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
require 'solargraph/parser/legacy/node_processors'
|
|
1
|
+
module Solargraph
|
|
2
|
+
module Parser
|
|
3
|
+
module Legacy
|
|
4
|
+
autoload :FlawedBuilder, 'solargraph/parser/legacy/flawed_builder'
|
|
5
|
+
autoload :ClassMethods, 'solargraph/parser/legacy/class_methods'
|
|
6
|
+
autoload :NodeMethods, 'solargraph/parser/legacy/node_methods'
|
|
7
|
+
autoload :NodeChainer, 'solargraph/parser/legacy/node_chainer'
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
require 'solargraph/parser/legacy/node_processors'
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
module Solargraph
|
|
2
|
-
module Parser
|
|
3
|
-
class NodeMethods
|
|
4
|
-
module_function
|
|
5
|
-
|
|
6
|
-
def unpack_name node
|
|
7
|
-
raise NotImplementedError
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def infer_literal_type node
|
|
11
|
-
raise NotImplementedError
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def calls_from node
|
|
15
|
-
raise NotImplementedError
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def returns_from node
|
|
19
|
-
raise NotImplementedError
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def process node
|
|
23
|
-
raise NotImplementedError
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def references node
|
|
27
|
-
raise NotImplementedError
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def chain node, filename = nil, in_block = false
|
|
31
|
-
raise NotImplementedError
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def node? node
|
|
35
|
-
raise NotImplementedError
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def convert_hash node
|
|
39
|
-
raise NotImplementedError
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
1
|
+
module Solargraph
|
|
2
|
+
module Parser
|
|
3
|
+
class NodeMethods
|
|
4
|
+
module_function
|
|
5
|
+
|
|
6
|
+
def unpack_name node
|
|
7
|
+
raise NotImplementedError
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def infer_literal_type node
|
|
11
|
+
raise NotImplementedError
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def calls_from node
|
|
15
|
+
raise NotImplementedError
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def returns_from node
|
|
19
|
+
raise NotImplementedError
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def process node
|
|
23
|
+
raise NotImplementedError
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def references node
|
|
27
|
+
raise NotImplementedError
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def chain node, filename = nil, in_block = false
|
|
31
|
+
raise NotImplementedError
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def node? node
|
|
35
|
+
raise NotImplementedError
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def convert_hash node
|
|
39
|
+
raise NotImplementedError
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module NodeProcessor
|
|
6
|
-
class Base
|
|
7
|
-
# @return [Parser::AST::Node]
|
|
8
|
-
attr_reader :node
|
|
9
|
-
|
|
10
|
-
# @return [Region]
|
|
11
|
-
attr_reader :region
|
|
12
|
-
|
|
13
|
-
# @return [Array<Pin::Base>]
|
|
14
|
-
attr_reader :pins
|
|
15
|
-
|
|
16
|
-
# @return [Array<Pin::Base>]
|
|
17
|
-
attr_reader :locals
|
|
18
|
-
|
|
19
|
-
# @param node [Parser::AST::Node]
|
|
20
|
-
# @param region [Region]
|
|
21
|
-
# @param pins [Array<Pin::Base>]
|
|
22
|
-
def initialize node, region, pins, locals
|
|
23
|
-
@node = node
|
|
24
|
-
@region = region
|
|
25
|
-
@pins = pins
|
|
26
|
-
@locals = locals
|
|
27
|
-
@processed_children = false
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Subclasses should override this method to generate new pins.
|
|
31
|
-
#
|
|
32
|
-
# @return [void]
|
|
33
|
-
def process
|
|
34
|
-
process_children
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
private
|
|
38
|
-
|
|
39
|
-
# @param subregion [Region]
|
|
40
|
-
# @return [void]
|
|
41
|
-
def process_children subregion = region
|
|
42
|
-
return if @processed_children
|
|
43
|
-
@processed_children = true
|
|
44
|
-
node.children.each do |child|
|
|
45
|
-
next unless Parser.is_ast_node?(child)
|
|
46
|
-
NodeProcessor.process(child, subregion, pins, locals)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# @param node [Parser::AST::Node]
|
|
51
|
-
# @return [Solargraph::Location]
|
|
52
|
-
def get_node_location(node)
|
|
53
|
-
range = Parser.node_range(node)
|
|
54
|
-
Location.new(region.filename, range)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def comments_for(node)
|
|
58
|
-
region.source.comments_for(node)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def named_path_pin position
|
|
62
|
-
pins.select{|pin| pin.is_a?(Pin::Closure) && pin.path && !pin.path.empty? && pin.location.range.contain?(position)}.last
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# @todo Candidate for deprecation
|
|
66
|
-
def block_pin position
|
|
67
|
-
pins.select{|pin| pin.is_a?(Pin::Closure) && pin.location.range.contain?(position)}.last
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# @todo Candidate for deprecation
|
|
71
|
-
def closure_pin position
|
|
72
|
-
pins.select{|pin| pin.is_a?(Pin::Closure) && pin.location.range.contain?(position)}.last
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module NodeProcessor
|
|
6
|
+
class Base
|
|
7
|
+
# @return [Parser::AST::Node]
|
|
8
|
+
attr_reader :node
|
|
9
|
+
|
|
10
|
+
# @return [Region]
|
|
11
|
+
attr_reader :region
|
|
12
|
+
|
|
13
|
+
# @return [Array<Pin::Base>]
|
|
14
|
+
attr_reader :pins
|
|
15
|
+
|
|
16
|
+
# @return [Array<Pin::Base>]
|
|
17
|
+
attr_reader :locals
|
|
18
|
+
|
|
19
|
+
# @param node [Parser::AST::Node]
|
|
20
|
+
# @param region [Region]
|
|
21
|
+
# @param pins [Array<Pin::Base>]
|
|
22
|
+
def initialize node, region, pins, locals
|
|
23
|
+
@node = node
|
|
24
|
+
@region = region
|
|
25
|
+
@pins = pins
|
|
26
|
+
@locals = locals
|
|
27
|
+
@processed_children = false
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Subclasses should override this method to generate new pins.
|
|
31
|
+
#
|
|
32
|
+
# @return [void]
|
|
33
|
+
def process
|
|
34
|
+
process_children
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
# @param subregion [Region]
|
|
40
|
+
# @return [void]
|
|
41
|
+
def process_children subregion = region
|
|
42
|
+
return if @processed_children
|
|
43
|
+
@processed_children = true
|
|
44
|
+
node.children.each do |child|
|
|
45
|
+
next unless Parser.is_ast_node?(child)
|
|
46
|
+
NodeProcessor.process(child, subregion, pins, locals)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# @param node [Parser::AST::Node]
|
|
51
|
+
# @return [Solargraph::Location]
|
|
52
|
+
def get_node_location(node)
|
|
53
|
+
range = Parser.node_range(node)
|
|
54
|
+
Location.new(region.filename, range)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def comments_for(node)
|
|
58
|
+
region.source.comments_for(node)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def named_path_pin position
|
|
62
|
+
pins.select{|pin| pin.is_a?(Pin::Closure) && pin.path && !pin.path.empty? && pin.location.range.contain?(position)}.last
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# @todo Candidate for deprecation
|
|
66
|
+
def block_pin position
|
|
67
|
+
pins.select{|pin| pin.is_a?(Pin::Closure) && pin.location.range.contain?(position)}.last
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# @todo Candidate for deprecation
|
|
71
|
+
def closure_pin position
|
|
72
|
+
pins.select{|pin| pin.is_a?(Pin::Closure) && pin.location.range.contain?(position)}.last
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
# The processor classes used by SourceMap::Mapper to generate pins from
|
|
6
|
-
# parser nodes.
|
|
7
|
-
#
|
|
8
|
-
module NodeProcessor
|
|
9
|
-
autoload :Base, 'solargraph/parser/node_processor/base'
|
|
10
|
-
|
|
11
|
-
class << self
|
|
12
|
-
@@processors ||= {}
|
|
13
|
-
|
|
14
|
-
# Register a processor for a node type.
|
|
15
|
-
#
|
|
16
|
-
# @param type [Symbol]
|
|
17
|
-
# @param cls [Class<NodeProcessor::Base>]
|
|
18
|
-
# @return [Class<NodeProcessor::Base>]
|
|
19
|
-
def register type, cls
|
|
20
|
-
@@processors[type] = cls
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# @param node [Parser::AST::Node]
|
|
25
|
-
# @param region [Region]
|
|
26
|
-
# @param pins [Array<Pin::Base>]
|
|
27
|
-
# @return [Array(Array<Pin::Base>, Array<Pin::Base>)]
|
|
28
|
-
def self.process node, region = Region.new, pins = [], locals = []
|
|
29
|
-
if pins.empty?
|
|
30
|
-
pins.push Pin::Namespace.new(
|
|
31
|
-
location: region.source.location,
|
|
32
|
-
name: ''
|
|
33
|
-
)
|
|
34
|
-
end
|
|
35
|
-
return [pins, locals] unless Parser.is_ast_node?(node)
|
|
36
|
-
klass = @@processors[node.type] || NodeProcessor::Base
|
|
37
|
-
processor = klass.new(node, region, pins, locals)
|
|
38
|
-
processor.process
|
|
39
|
-
[processor.pins, processor.locals]
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
# The processor classes used by SourceMap::Mapper to generate pins from
|
|
6
|
+
# parser nodes.
|
|
7
|
+
#
|
|
8
|
+
module NodeProcessor
|
|
9
|
+
autoload :Base, 'solargraph/parser/node_processor/base'
|
|
10
|
+
|
|
11
|
+
class << self
|
|
12
|
+
@@processors ||= {}
|
|
13
|
+
|
|
14
|
+
# Register a processor for a node type.
|
|
15
|
+
#
|
|
16
|
+
# @param type [Symbol]
|
|
17
|
+
# @param cls [Class<NodeProcessor::Base>]
|
|
18
|
+
# @return [Class<NodeProcessor::Base>]
|
|
19
|
+
def register type, cls
|
|
20
|
+
@@processors[type] = cls
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @param node [Parser::AST::Node]
|
|
25
|
+
# @param region [Region]
|
|
26
|
+
# @param pins [Array<Pin::Base>]
|
|
27
|
+
# @return [Array(Array<Pin::Base>, Array<Pin::Base>)]
|
|
28
|
+
def self.process node, region = Region.new, pins = [], locals = []
|
|
29
|
+
if pins.empty?
|
|
30
|
+
pins.push Pin::Namespace.new(
|
|
31
|
+
location: region.source.location,
|
|
32
|
+
name: ''
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
return [pins, locals] unless Parser.is_ast_node?(node)
|
|
36
|
+
klass = @@processors[node.type] || NodeProcessor::Base
|
|
37
|
+
processor = klass.new(node, region, pins, locals)
|
|
38
|
+
processor.process
|
|
39
|
+
[processor.pins, processor.locals]
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
# Data used by the parser to track context at various locations in a
|
|
6
|
-
# source.
|
|
7
|
-
#
|
|
8
|
-
class Region
|
|
9
|
-
# @return [Pin::Closure]
|
|
10
|
-
attr_reader :closure
|
|
11
|
-
|
|
12
|
-
# @return [Symbol]
|
|
13
|
-
attr_reader :scope
|
|
14
|
-
|
|
15
|
-
# @return [Symbol]
|
|
16
|
-
attr_reader :visibility
|
|
17
|
-
|
|
18
|
-
# @return [Solargraph::Source]
|
|
19
|
-
attr_reader :source
|
|
20
|
-
|
|
21
|
-
# @return [Array<Symbol>]
|
|
22
|
-
attr_reader :lvars
|
|
23
|
-
|
|
24
|
-
# @param source [Source]
|
|
25
|
-
# @param namespace [String]
|
|
26
|
-
# @param scope [Symbol]
|
|
27
|
-
# @param visibility [Symbol]
|
|
28
|
-
def initialize source: Solargraph::Source.load_string(''), closure: nil,
|
|
29
|
-
scope: nil, visibility: :public, lvars: []
|
|
30
|
-
@source = source
|
|
31
|
-
# @closure = closure
|
|
32
|
-
@closure = closure || Pin::Namespace.new(name: '', location: source.location)
|
|
33
|
-
@scope = scope
|
|
34
|
-
@visibility = visibility
|
|
35
|
-
@lvars = lvars
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# @return [String]
|
|
39
|
-
def filename
|
|
40
|
-
source.filename
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# Generate a new Region with the provided attribute changes.
|
|
44
|
-
#
|
|
45
|
-
# @param closure [Pin::Closure, nil]
|
|
46
|
-
# @param scope [Symbol, nil]
|
|
47
|
-
# @param visibility [Symbol, nil]
|
|
48
|
-
# @return [Region]
|
|
49
|
-
def update closure: nil, scope: nil, visibility: nil, lvars: nil
|
|
50
|
-
Region.new(
|
|
51
|
-
source: source,
|
|
52
|
-
closure: closure || self.closure,
|
|
53
|
-
scope: scope || self.scope,
|
|
54
|
-
visibility: visibility || self.visibility,
|
|
55
|
-
lvars: lvars || self.lvars
|
|
56
|
-
)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# @param node [Parser::AST::Node]
|
|
60
|
-
# @return [String]
|
|
61
|
-
def code_for node
|
|
62
|
-
source.code_for(node)
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
# Data used by the parser to track context at various locations in a
|
|
6
|
+
# source.
|
|
7
|
+
#
|
|
8
|
+
class Region
|
|
9
|
+
# @return [Pin::Closure]
|
|
10
|
+
attr_reader :closure
|
|
11
|
+
|
|
12
|
+
# @return [Symbol]
|
|
13
|
+
attr_reader :scope
|
|
14
|
+
|
|
15
|
+
# @return [Symbol]
|
|
16
|
+
attr_reader :visibility
|
|
17
|
+
|
|
18
|
+
# @return [Solargraph::Source]
|
|
19
|
+
attr_reader :source
|
|
20
|
+
|
|
21
|
+
# @return [Array<Symbol>]
|
|
22
|
+
attr_reader :lvars
|
|
23
|
+
|
|
24
|
+
# @param source [Source]
|
|
25
|
+
# @param namespace [String]
|
|
26
|
+
# @param scope [Symbol]
|
|
27
|
+
# @param visibility [Symbol]
|
|
28
|
+
def initialize source: Solargraph::Source.load_string(''), closure: nil,
|
|
29
|
+
scope: nil, visibility: :public, lvars: []
|
|
30
|
+
@source = source
|
|
31
|
+
# @closure = closure
|
|
32
|
+
@closure = closure || Pin::Namespace.new(name: '', location: source.location)
|
|
33
|
+
@scope = scope
|
|
34
|
+
@visibility = visibility
|
|
35
|
+
@lvars = lvars
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# @return [String]
|
|
39
|
+
def filename
|
|
40
|
+
source.filename
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Generate a new Region with the provided attribute changes.
|
|
44
|
+
#
|
|
45
|
+
# @param closure [Pin::Closure, nil]
|
|
46
|
+
# @param scope [Symbol, nil]
|
|
47
|
+
# @param visibility [Symbol, nil]
|
|
48
|
+
# @return [Region]
|
|
49
|
+
def update closure: nil, scope: nil, visibility: nil, lvars: nil
|
|
50
|
+
Region.new(
|
|
51
|
+
source: source,
|
|
52
|
+
closure: closure || self.closure,
|
|
53
|
+
scope: scope || self.scope,
|
|
54
|
+
visibility: visibility || self.visibility,
|
|
55
|
+
lvars: lvars || self.lvars
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @param node [Parser::AST::Node]
|
|
60
|
+
# @return [String]
|
|
61
|
+
def code_for node
|
|
62
|
+
source.code_for(node)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|