ruby-lsp-rake 0.3.4 → 0.3.5
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/.rubocop.yml +13 -0
- data/Rakefile +5 -1
- data/lib/ruby_lsp/ruby_lsp_rake/addon.rb +15 -29
- data/lib/ruby_lsp/ruby_lsp_rake/code_lens.rb +5 -11
- data/lib/ruby_lsp/ruby_lsp_rake/definition.rb +9 -18
- data/lib/ruby_lsp/ruby_lsp_rake/hover.rb +10 -16
- data/lib/ruby_lsp/ruby_lsp_rake/indexing_enhancement.rb +13 -11
- data/lib/ruby_lsp_rake/version.rb +1 -1
- data/sorbet/config +1 -0
- data/sorbet/rbi/gems/{ast@2.4.2.rbi → ast@2.4.3.rbi} +34 -34
- data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
- data/sorbet/rbi/gems/{erubi@1.13.0.rbi → erubi@1.13.1.rbi} +27 -22
- data/sorbet/rbi/gems/{json@2.8.2.rbi → json@2.12.0.rbi} +355 -205
- data/sorbet/rbi/gems/{language_server-protocol@3.17.0.3.rbi → language_server-protocol@3.17.0.5.rbi} +2693 -2687
- data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +86 -0
- data/sorbet/rbi/gems/{logger@1.6.1.rbi → logger@1.7.0.rbi} +120 -77
- data/sorbet/rbi/gems/{minitest@5.25.2.rbi → minitest@5.25.5.rbi} +397 -391
- data/sorbet/rbi/gems/{parallel@1.26.3.rbi → parallel@1.27.0.rbi} +72 -72
- data/sorbet/rbi/gems/{parser@3.3.6.0.rbi → parser@3.3.8.0.rbi} +1080 -1064
- data/sorbet/rbi/gems/{prism@1.2.0.rbi → prism@1.4.0.rbi} +8503 -5856
- data/sorbet/rbi/gems/{rbi@0.2.1.rbi → rbi@0.3.3.rbi} +3175 -968
- data/sorbet/rbi/gems/{rbs@3.6.1.rbi → rbs@3.9.3.rbi} +1857 -1736
- data/sorbet/rbi/gems/{regexp_parser@2.9.2.rbi → regexp_parser@2.10.0.rbi} +1037 -1014
- data/sorbet/rbi/gems/rexml@3.4.1.rbi +5240 -0
- data/sorbet/rbi/gems/{rubocop-ast@1.36.2.rbi → rubocop-ast@1.44.1.rbi} +1771 -1625
- data/sorbet/rbi/gems/{rubocop@1.69.0.rbi → rubocop@1.75.5.rbi} +12342 -9764
- data/sorbet/rbi/gems/ruby-lsp@0.23.19.rbi +7453 -0
- data/sorbet/rbi/gems/{spoom@1.5.0.rbi → spoom@1.6.3.rbi} +3098 -1045
- data/sorbet/rbi/gems/{tapioca@0.16.5.rbi → tapioca@0.16.11.rbi} +821 -791
- data/sorbet/rbi/gems/{unicode-display_width@3.1.2.rbi → unicode-display_width@3.1.4.rbi} +34 -32
- data/sorbet/tapioca/require.rb +1 -2
- metadata +26 -23
- data/sorbet/rbi/gems/ruby-lsp@0.22.1.rbi +0 -6119
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 452e879627dd3c27ad0098f47c1df078dfa3103abe4bf1af8629a016c35511ad
|
4
|
+
data.tar.gz: 3591baf6ef9331f441694d1044f80da452354ee8ea00f7228af253d63bad7949
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb7b7cc7734ea5f58179d5da0a7395fbd484dd2121197fc60d0fb5a04605ac9f403d54bf63ed858ce039a04b6b0496f91c92c3abf3a3118c4ae4cb70363ad39d
|
7
|
+
data.tar.gz: 03e832dce7066a16ca575886d1c4c8d2958bdc6d413c861df7d12ac18c00685ea48b57dc349f06beb4f5da383cfa35cf3c1c56e76d256ec63a3bbee5e01555de
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
AllCops:
|
2
2
|
TargetRubyVersion: 3.0
|
3
3
|
NewCops: disable
|
4
|
+
SuggestExtensions: false
|
5
|
+
|
6
|
+
Style/Documentation:
|
7
|
+
Enabled: false
|
4
8
|
|
5
9
|
Style/StringLiterals:
|
6
10
|
EnforcedStyle: double_quotes
|
@@ -11,3 +15,12 @@ Style/StringLiteralsInInterpolation:
|
|
11
15
|
Naming/FileName:
|
12
16
|
Exclude:
|
13
17
|
- "lib/ruby-lsp-rake.rb"
|
18
|
+
|
19
|
+
Layout/LeadingCommentSpace:
|
20
|
+
Enabled: false
|
21
|
+
|
22
|
+
Layout/LineLength:
|
23
|
+
Enabled: false
|
24
|
+
|
25
|
+
plugins:
|
26
|
+
- rubocop-oneoff_codemod
|
data/Rakefile
CHANGED
@@ -9,7 +9,11 @@ require "rubocop/rake_task"
|
|
9
9
|
|
10
10
|
RuboCop::RakeTask.new
|
11
11
|
|
12
|
-
task
|
12
|
+
task :quiet_test do
|
13
|
+
sh "rake test 2>/dev/null"
|
14
|
+
end
|
15
|
+
|
16
|
+
task default: %i[quiet_test rubocop srb:tc]
|
13
17
|
|
14
18
|
namespace :srb do
|
15
19
|
desc "Run sorbet type check"
|
@@ -10,10 +10,11 @@ require_relative "code_lens"
|
|
10
10
|
|
11
11
|
module RubyLsp
|
12
12
|
module Rake
|
13
|
-
class Addon < ::RubyLsp::Addon
|
13
|
+
class Addon < ::RubyLsp::Addon
|
14
14
|
extend T::Sig
|
15
15
|
|
16
|
-
|
16
|
+
# @override
|
17
|
+
#: (GlobalState global_state, Thread::Queue outgoing_queue) -> void
|
17
18
|
def activate(global_state, outgoing_queue)
|
18
19
|
@index = global_state.index
|
19
20
|
@index.configuration.apply_config({ "included_patterns" => ["**/Rakefile", "lib/../Rakefile"] })
|
@@ -21,51 +22,36 @@ module RubyLsp
|
|
21
22
|
outgoing_queue << Notification.window_log_message("Activated Ruby LSP Rake")
|
22
23
|
end
|
23
24
|
|
24
|
-
|
25
|
+
# @override
|
26
|
+
#: -> void
|
25
27
|
def deactivate; end
|
26
28
|
|
27
|
-
|
29
|
+
# @override
|
30
|
+
#: -> String
|
28
31
|
def name
|
29
32
|
"A Ruby LSP addon that adds extra editor functionality for Rake"
|
30
33
|
end
|
31
34
|
|
32
|
-
|
35
|
+
# @override
|
36
|
+
#: -> String
|
33
37
|
def version
|
34
38
|
::RubyLsp::Rake::VERSION
|
35
39
|
end
|
36
40
|
|
37
|
-
|
38
|
-
|
39
|
-
response_builder: ResponseBuilders::Hover,
|
40
|
-
node_context: NodeContext,
|
41
|
-
dispatcher: Prism::Dispatcher
|
42
|
-
).void
|
43
|
-
end
|
41
|
+
# @override
|
42
|
+
#: (ResponseBuilders::Hover response_builder, NodeContext node_context, Prism::Dispatcher dispatcher) -> void
|
44
43
|
def create_hover_listener(response_builder, node_context, dispatcher)
|
45
44
|
Hover.new(response_builder, node_context, dispatcher, @index)
|
46
45
|
end
|
47
46
|
|
48
|
-
|
49
|
-
|
50
|
-
response_builder: ResponseBuilders::CollectionResponseBuilder[T.any(
|
51
|
-
Interface::Location, Interface::LocationLink
|
52
|
-
)],
|
53
|
-
_uri: URI::Generic,
|
54
|
-
node_context: NodeContext,
|
55
|
-
dispatcher: Prism::Dispatcher
|
56
|
-
).void
|
57
|
-
end
|
47
|
+
# @override
|
48
|
+
#: (ResponseBuilders::CollectionResponseBuilder response_builder, URI::Generic _uri, NodeContext node_context, Prism::Dispatcher dispatcher) -> void
|
58
49
|
def create_definition_listener(response_builder, _uri, node_context, dispatcher)
|
59
50
|
Definition.new(response_builder, node_context, @index, dispatcher)
|
60
51
|
end
|
61
52
|
|
62
|
-
|
63
|
-
|
64
|
-
response_builder: ResponseBuilders::CollectionResponseBuilder[Interface::CodeLens],
|
65
|
-
uri: URI::Generic,
|
66
|
-
dispatcher: Prism::Dispatcher
|
67
|
-
).void
|
68
|
-
end
|
53
|
+
# @override
|
54
|
+
#: (ResponseBuilders::CollectionResponseBuilder response_builder, URI::Generic uri, Prism::Dispatcher dispatcher) -> void
|
69
55
|
def create_code_lens_listener(response_builder, uri, dispatcher)
|
70
56
|
CodeLens.new(response_builder, uri, dispatcher)
|
71
57
|
end
|
@@ -3,17 +3,11 @@
|
|
3
3
|
|
4
4
|
module RubyLsp
|
5
5
|
module Rake
|
6
|
-
class CodeLens
|
6
|
+
class CodeLens
|
7
7
|
extend T::Sig
|
8
8
|
include Requests::Support::Common
|
9
9
|
|
10
|
-
|
11
|
-
params(
|
12
|
-
response_builder: ResponseBuilders::CollectionResponseBuilder[Interface::CodeLens],
|
13
|
-
uri: URI::Generic,
|
14
|
-
dispatcher: Prism::Dispatcher
|
15
|
-
).void
|
16
|
-
end
|
10
|
+
#: (ResponseBuilders::CollectionResponseBuilder response_builder, URI::Generic uri, Prism::Dispatcher dispatcher) -> void
|
17
11
|
def initialize(response_builder, uri, dispatcher)
|
18
12
|
@response_builder = response_builder
|
19
13
|
@path = T.let(T.unsafe(uri).to_standardized_path, T.nilable(String))
|
@@ -22,10 +16,10 @@ module RubyLsp
|
|
22
16
|
dispatcher.register(self, :on_call_node_enter, :on_call_node_leave)
|
23
17
|
end
|
24
18
|
|
25
|
-
|
19
|
+
#: (Prism::CallNode node) -> void
|
26
20
|
def on_call_node_enter(node) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
|
27
21
|
return unless node.receiver.nil?
|
28
|
-
return unless
|
22
|
+
return unless %i[task namespace].include? node.name
|
29
23
|
|
30
24
|
arguments = node.arguments&.arguments
|
31
25
|
return unless arguments
|
@@ -78,7 +72,7 @@ module RubyLsp
|
|
78
72
|
)
|
79
73
|
end
|
80
74
|
|
81
|
-
|
75
|
+
#: (Prism::CallNode node) -> void
|
82
76
|
def on_call_node_leave(node)
|
83
77
|
return unless node.name == :namespace
|
84
78
|
|
@@ -3,20 +3,11 @@
|
|
3
3
|
|
4
4
|
module RubyLsp
|
5
5
|
module Rake
|
6
|
-
class Definition
|
6
|
+
class Definition
|
7
7
|
extend T::Sig
|
8
8
|
include Requests::Support::Common
|
9
9
|
|
10
|
-
|
11
|
-
params(
|
12
|
-
response_builder: RubyLsp::ResponseBuilders::CollectionResponseBuilder[T.any(
|
13
|
-
Interface::Location, Interface::LocationLink
|
14
|
-
)],
|
15
|
-
node_context: NodeContext,
|
16
|
-
index: RubyIndexer::Index,
|
17
|
-
dispatcher: Prism::Dispatcher
|
18
|
-
).void
|
19
|
-
end
|
10
|
+
#: (RubyLsp::ResponseBuilders::CollectionResponseBuilder response_builder, NodeContext node_context, RubyIndexer::Index index, Prism::Dispatcher dispatcher) -> void
|
20
11
|
def initialize(response_builder, node_context, index, dispatcher)
|
21
12
|
@response_builder = response_builder
|
22
13
|
@node_context = node_context
|
@@ -26,17 +17,17 @@ module RubyLsp
|
|
26
17
|
dispatcher.register(self, :on_symbol_node_enter, :on_string_node_enter)
|
27
18
|
end
|
28
19
|
|
29
|
-
|
20
|
+
#: (Prism::SymbolNode node) -> void
|
30
21
|
def on_symbol_node_enter(node)
|
31
22
|
handle_prerequisite(node)
|
32
23
|
end
|
33
24
|
|
34
|
-
|
25
|
+
#: (Prism::StringNode node) -> void
|
35
26
|
def on_string_node_enter(node)
|
36
27
|
handle_prerequisite(node)
|
37
28
|
end
|
38
29
|
|
39
|
-
|
30
|
+
#: ((Prism::SymbolNode | Prism::StringNode) node) -> void
|
40
31
|
def handle_prerequisite(node) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
|
41
32
|
call_node_name = @node_context.call_node&.name
|
42
33
|
return unless call_node_name == :task
|
@@ -61,12 +52,12 @@ module RubyLsp
|
|
61
52
|
when Prism::SymbolNode
|
62
53
|
return unless name == v.value
|
63
54
|
when Prism::ArrayNode
|
64
|
-
return unless v.elements.find do |
|
65
|
-
name == case
|
55
|
+
return unless v.elements.find do |n|
|
56
|
+
name == case n # rubocop:disable Metrics/BlockNesting
|
66
57
|
when Prism::StringNode
|
67
|
-
|
58
|
+
n.content
|
68
59
|
when Prism::SymbolNode
|
69
|
-
|
60
|
+
n.value
|
70
61
|
end
|
71
62
|
end
|
72
63
|
end
|
@@ -3,18 +3,12 @@
|
|
3
3
|
|
4
4
|
module RubyLsp
|
5
5
|
module Rake
|
6
|
-
class Hover
|
6
|
+
class Hover
|
7
7
|
extend T::Sig
|
8
8
|
include Requests::Support::Common
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
response_builder: ResponseBuilders::Hover,
|
13
|
-
node_context: NodeContext,
|
14
|
-
dispatcher: Prism::Dispatcher,
|
15
|
-
index: RubyIndexer::Index
|
16
|
-
).void
|
17
|
-
end
|
10
|
+
# @override
|
11
|
+
#: (ResponseBuilders::Hover response_builder, NodeContext node_context, Prism::Dispatcher dispatcher, RubyIndexer::Index index) -> void
|
18
12
|
def initialize(response_builder, node_context, dispatcher, index)
|
19
13
|
@response_builder = response_builder
|
20
14
|
@node_context = node_context
|
@@ -22,17 +16,17 @@ module RubyLsp
|
|
22
16
|
@index = index
|
23
17
|
end
|
24
18
|
|
25
|
-
|
19
|
+
#: (Prism::StringNode node) -> void
|
26
20
|
def on_string_node_enter(node)
|
27
21
|
handle_prerequisite(node)
|
28
22
|
end
|
29
23
|
|
30
|
-
|
24
|
+
#: (Prism::SymbolNode node) -> void
|
31
25
|
def on_symbol_node_enter(node)
|
32
26
|
handle_prerequisite(node)
|
33
27
|
end
|
34
28
|
|
35
|
-
|
29
|
+
#: ((Prism::StringNode | Prism::SymbolNode) node) -> void
|
36
30
|
def handle_prerequisite(node) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
|
37
31
|
call_node_name = @node_context.call_node&.name
|
38
32
|
return unless call_node_name == :task
|
@@ -57,12 +51,12 @@ module RubyLsp
|
|
57
51
|
when Prism::SymbolNode
|
58
52
|
return unless name == v.value
|
59
53
|
when Prism::ArrayNode
|
60
|
-
return unless v.elements.find do |
|
61
|
-
name == case
|
54
|
+
return unless v.elements.find do |n|
|
55
|
+
name == case n # rubocop:disable Metrics/BlockNesting
|
62
56
|
when Prism::StringNode
|
63
|
-
|
57
|
+
n.content
|
64
58
|
when Prism::SymbolNode
|
65
|
-
|
59
|
+
n.value
|
66
60
|
end
|
67
61
|
end
|
68
62
|
end
|
@@ -3,22 +3,23 @@
|
|
3
3
|
|
4
4
|
module RubyLsp
|
5
5
|
module Rake
|
6
|
-
class IndexingEnhancement < RubyIndexer::Enhancement
|
6
|
+
class IndexingEnhancement < RubyIndexer::Enhancement
|
7
7
|
extend T::Sig
|
8
8
|
|
9
|
-
|
9
|
+
#: (RubyIndexer::DeclarationListener listener) -> void
|
10
10
|
def initialize(listener)
|
11
11
|
super(listener)
|
12
|
-
@namespace_stack = []
|
13
|
-
@last_desc = nil
|
12
|
+
@namespace_stack = T.let([], T::Array[String])
|
13
|
+
@last_desc = T.let(nil, T.nilable(String))
|
14
14
|
end
|
15
15
|
|
16
|
-
|
16
|
+
# @override
|
17
|
+
#: (Prism::CallNode node) -> void
|
17
18
|
def on_call_node_enter(node) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
|
18
19
|
@last_desc = nil unless node.name == :task
|
19
20
|
|
20
|
-
return unless @listener.current_owner.nil?
|
21
|
-
return unless
|
21
|
+
return unless T.cast(@listener, RubyIndexer::DeclarationListener).current_owner.nil?
|
22
|
+
return unless %i[task desc namespace].include? node.name
|
22
23
|
|
23
24
|
arguments = node.arguments&.arguments
|
24
25
|
return unless arguments
|
@@ -57,8 +58,8 @@ module RubyLsp
|
|
57
58
|
|
58
59
|
ary = [*@namespace_stack, name]
|
59
60
|
(1..(ary.size)).each do |i|
|
60
|
-
@listener.add_method(
|
61
|
-
"task:#{ary[-i..]
|
61
|
+
T.cast(@listener, RubyIndexer::DeclarationListener).add_method(
|
62
|
+
"task:#{ary[-i..]&.join(":")}",
|
62
63
|
node.location,
|
63
64
|
[],
|
64
65
|
comments: @last_desc
|
@@ -68,9 +69,10 @@ module RubyLsp
|
|
68
69
|
@last_desc = nil
|
69
70
|
end
|
70
71
|
|
71
|
-
|
72
|
+
# @override
|
73
|
+
#: (Prism::CallNode node) -> void
|
72
74
|
def on_call_node_leave(node)
|
73
|
-
return unless @listener.current_owner.nil?
|
75
|
+
return unless T.cast(@listener, RubyIndexer::DeclarationListener).current_owner.nil?
|
74
76
|
return unless node.name == :namespace
|
75
77
|
|
76
78
|
@namespace_stack.pop
|
data/sorbet/config
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
# See also {AST::Node}, {AST::Processor::Mixin} and {AST::Sexp} for
|
18
18
|
# additional recommendations and design patterns.
|
19
19
|
#
|
20
|
-
# source://ast
|
20
|
+
# source://ast//lib/ast.rb#13
|
21
21
|
module AST; end
|
22
22
|
|
23
23
|
# Node is an immutable class, instances of which represent abstract
|
@@ -56,7 +56,7 @@ module AST; end
|
|
56
56
|
# temporary node type requires making globally visible changes to
|
57
57
|
# the codebase.
|
58
58
|
#
|
59
|
-
# source://ast
|
59
|
+
# source://ast//lib/ast/node.rb#40
|
60
60
|
class AST::Node
|
61
61
|
# Constructs a new instance of Node.
|
62
62
|
#
|
@@ -70,21 +70,21 @@ class AST::Node
|
|
70
70
|
#
|
71
71
|
# @return [Node] a new instance of Node
|
72
72
|
#
|
73
|
-
# source://ast
|
73
|
+
# source://ast//lib/ast/node.rb#72
|
74
74
|
def initialize(type, children = T.unsafe(nil), properties = T.unsafe(nil)); end
|
75
75
|
|
76
76
|
# Concatenates `array` with `children` and returns the resulting node.
|
77
77
|
#
|
78
78
|
# @return [AST::Node]
|
79
79
|
#
|
80
|
-
# source://ast
|
80
|
+
# source://ast//lib/ast/node.rb#168
|
81
81
|
def +(array); end
|
82
82
|
|
83
83
|
# Appends `element` to `children` and returns the resulting node.
|
84
84
|
#
|
85
85
|
# @return [AST::Node]
|
86
86
|
#
|
87
|
-
# source://ast
|
87
|
+
# source://ast//lib/ast/node.rb#177
|
88
88
|
def <<(element); end
|
89
89
|
|
90
90
|
# Compares `self` to `other`, possibly converting with `to_ast`. Only
|
@@ -92,14 +92,14 @@ class AST::Node
|
|
92
92
|
#
|
93
93
|
# @return [Boolean]
|
94
94
|
#
|
95
|
-
# source://ast
|
95
|
+
# source://ast//lib/ast/node.rb#153
|
96
96
|
def ==(other); end
|
97
97
|
|
98
98
|
# Appends `element` to `children` and returns the resulting node.
|
99
99
|
#
|
100
100
|
# @return [AST::Node]
|
101
101
|
#
|
102
|
-
# source://ast
|
102
|
+
# source://ast//lib/ast/node.rb#177
|
103
103
|
def append(element); end
|
104
104
|
|
105
105
|
# Returns the children of this node.
|
@@ -114,7 +114,7 @@ class AST::Node
|
|
114
114
|
#
|
115
115
|
# @return [Array]
|
116
116
|
#
|
117
|
-
# source://ast
|
117
|
+
# source://ast//lib/ast/node.rb#56
|
118
118
|
def children; end
|
119
119
|
|
120
120
|
# Nodes are already frozen, so there is no harm in returning the
|
@@ -123,14 +123,14 @@ class AST::Node
|
|
123
123
|
#
|
124
124
|
# @return self
|
125
125
|
#
|
126
|
-
# source://ast
|
126
|
+
# source://ast//lib/ast/node.rb#115
|
127
127
|
def clone; end
|
128
128
|
|
129
129
|
# Concatenates `array` with `children` and returns the resulting node.
|
130
130
|
#
|
131
131
|
# @return [AST::Node]
|
132
132
|
#
|
133
|
-
# source://ast
|
133
|
+
# source://ast//lib/ast/node.rb#168
|
134
134
|
def concat(array); end
|
135
135
|
|
136
136
|
# Enables matching for Node, where type is the first element
|
@@ -138,7 +138,7 @@ class AST::Node
|
|
138
138
|
#
|
139
139
|
# @return [Array]
|
140
140
|
#
|
141
|
-
# source://ast
|
141
|
+
# source://ast//lib/ast/node.rb#253
|
142
142
|
def deconstruct; end
|
143
143
|
|
144
144
|
# Nodes are already frozen, so there is no harm in returning the
|
@@ -147,7 +147,7 @@ class AST::Node
|
|
147
147
|
#
|
148
148
|
# @return self
|
149
149
|
#
|
150
|
-
# source://ast
|
150
|
+
# source://ast//lib/ast/node.rb#115
|
151
151
|
def dup; end
|
152
152
|
|
153
153
|
# Test if other object is equal to
|
@@ -155,14 +155,14 @@ class AST::Node
|
|
155
155
|
# @param other [Object]
|
156
156
|
# @return [Boolean]
|
157
157
|
#
|
158
|
-
# source://ast
|
158
|
+
# source://ast//lib/ast/node.rb#85
|
159
159
|
def eql?(other); end
|
160
160
|
|
161
161
|
# Returns the precomputed hash value for this node
|
162
162
|
#
|
163
|
-
# @return [
|
163
|
+
# @return [Integer]
|
164
164
|
#
|
165
|
-
# source://ast
|
165
|
+
# source://ast//lib/ast/node.rb#61
|
166
166
|
def hash; end
|
167
167
|
|
168
168
|
# Converts `self` to a s-expression ruby string.
|
@@ -171,7 +171,7 @@ class AST::Node
|
|
171
171
|
# @param indent [Integer] Base indentation level.
|
172
172
|
# @return [String]
|
173
173
|
#
|
174
|
-
# source://ast
|
174
|
+
# source://ast//lib/ast/node.rb#211
|
175
175
|
def inspect(indent = T.unsafe(nil)); end
|
176
176
|
|
177
177
|
# Returns the children of this node.
|
@@ -186,12 +186,12 @@ class AST::Node
|
|
186
186
|
#
|
187
187
|
# @return [Array]
|
188
188
|
#
|
189
|
-
# source://ast
|
189
|
+
# source://ast//lib/ast/node.rb#56
|
190
190
|
def to_a; end
|
191
191
|
|
192
192
|
# @return [AST::Node] self
|
193
193
|
#
|
194
|
-
# source://ast
|
194
|
+
# source://ast//lib/ast/node.rb#229
|
195
195
|
def to_ast; end
|
196
196
|
|
197
197
|
# Converts `self` to a pretty-printed s-expression.
|
@@ -199,7 +199,7 @@ class AST::Node
|
|
199
199
|
# @param indent [Integer] Base indentation level.
|
200
200
|
# @return [String]
|
201
201
|
#
|
202
|
-
# source://ast
|
202
|
+
# source://ast//lib/ast/node.rb#187
|
203
203
|
def to_s(indent = T.unsafe(nil)); end
|
204
204
|
|
205
205
|
# Converts `self` to a pretty-printed s-expression.
|
@@ -207,7 +207,7 @@ class AST::Node
|
|
207
207
|
# @param indent [Integer] Base indentation level.
|
208
208
|
# @return [String]
|
209
209
|
#
|
210
|
-
# source://ast
|
210
|
+
# source://ast//lib/ast/node.rb#187
|
211
211
|
def to_sexp(indent = T.unsafe(nil)); end
|
212
212
|
|
213
213
|
# Converts `self` to an Array where the first element is the type as a Symbol,
|
@@ -215,14 +215,14 @@ class AST::Node
|
|
215
215
|
#
|
216
216
|
# @return [Array<Symbol, [...Array]>]
|
217
217
|
#
|
218
|
-
# source://ast
|
218
|
+
# source://ast//lib/ast/node.rb#237
|
219
219
|
def to_sexp_array; end
|
220
220
|
|
221
221
|
# Returns the type of this node.
|
222
222
|
#
|
223
223
|
# @return [Symbol]
|
224
224
|
#
|
225
|
-
# source://ast
|
225
|
+
# source://ast//lib/ast/node.rb#43
|
226
226
|
def type; end
|
227
227
|
|
228
228
|
# Returns a new instance of Node where non-nil arguments replace the
|
@@ -239,7 +239,7 @@ class AST::Node
|
|
239
239
|
# @param properties [Hash, nil]
|
240
240
|
# @return [AST::Node]
|
241
241
|
#
|
242
|
-
# source://ast
|
242
|
+
# source://ast//lib/ast/node.rb#133
|
243
243
|
def updated(type = T.unsafe(nil), children = T.unsafe(nil), properties = T.unsafe(nil)); end
|
244
244
|
|
245
245
|
protected
|
@@ -252,7 +252,7 @@ class AST::Node
|
|
252
252
|
#
|
253
253
|
# @return [nil]
|
254
254
|
#
|
255
|
-
# source://ast
|
255
|
+
# source://ast//lib/ast/node.rb#98
|
256
256
|
def assign_properties(properties); end
|
257
257
|
|
258
258
|
# Returns `@type` with all underscores replaced by dashes. This allows
|
@@ -261,7 +261,7 @@ class AST::Node
|
|
261
261
|
#
|
262
262
|
# @return [String]
|
263
263
|
#
|
264
|
-
# source://ast
|
264
|
+
# source://ast//lib/ast/node.rb#264
|
265
265
|
def fancy_type; end
|
266
266
|
|
267
267
|
private
|
@@ -276,7 +276,7 @@ end
|
|
276
276
|
#
|
277
277
|
# @deprecated Use {AST::Processor::Mixin} instead.
|
278
278
|
#
|
279
|
-
# source://ast
|
279
|
+
# source://ast//lib/ast/processor.rb#8
|
280
280
|
class AST::Processor
|
281
281
|
include ::AST::Processor::Mixin
|
282
282
|
end
|
@@ -519,14 +519,14 @@ end
|
|
519
519
|
# use some partial evaluation before! The possibilites are
|
520
520
|
# endless. Have fun.
|
521
521
|
#
|
522
|
-
# source://ast
|
522
|
+
# source://ast//lib/ast/processor/mixin.rb#240
|
523
523
|
module AST::Processor::Mixin
|
524
524
|
# Default handler. Does nothing.
|
525
525
|
#
|
526
526
|
# @param node [AST::Node]
|
527
527
|
# @return [AST::Node, nil]
|
528
528
|
#
|
529
|
-
# source://ast
|
529
|
+
# source://ast//lib/ast/processor/mixin.rb#284
|
530
530
|
def handler_missing(node); end
|
531
531
|
|
532
532
|
# Dispatches `node`. If a node has type `:foo`, then a handler
|
@@ -540,7 +540,7 @@ module AST::Processor::Mixin
|
|
540
540
|
# @param node [AST::Node, nil]
|
541
541
|
# @return [AST::Node, nil]
|
542
542
|
#
|
543
|
-
# source://ast
|
543
|
+
# source://ast//lib/ast/processor/mixin.rb#251
|
544
544
|
def process(node); end
|
545
545
|
|
546
546
|
# {#process}es each node from `nodes` and returns an array of
|
@@ -549,7 +549,7 @@ module AST::Processor::Mixin
|
|
549
549
|
# @param nodes [Array<AST::Node>]
|
550
550
|
# @return [Array<AST::Node>]
|
551
551
|
#
|
552
|
-
# source://ast
|
552
|
+
# source://ast//lib/ast/processor/mixin.rb#274
|
553
553
|
def process_all(nodes); end
|
554
554
|
end
|
555
555
|
|
@@ -557,8 +557,8 @@ end
|
|
557
557
|
# to define deeply nested ASTs from Ruby code, for example, in
|
558
558
|
# tests. It should be used like this:
|
559
559
|
#
|
560
|
-
# describe YourLanguage
|
561
|
-
# include Sexp
|
560
|
+
# describe YourLanguage do
|
561
|
+
# include ::AST::Sexp
|
562
562
|
#
|
563
563
|
# it "should correctly parse expressions" do
|
564
564
|
# YourLanguage.parse("1 + 2 * 3").should ==
|
@@ -572,7 +572,7 @@ end
|
|
572
572
|
#
|
573
573
|
# This way the amount of boilerplate code is greatly reduced.
|
574
574
|
#
|
575
|
-
# source://ast
|
575
|
+
# source://ast//lib/ast/sexp.rb#20
|
576
576
|
module AST::Sexp
|
577
577
|
# Creates a {Node} with type `type` and children `children`.
|
578
578
|
# Note that the resulting node is of the type AST::Node and not a
|
@@ -580,6 +580,6 @@ module AST::Sexp
|
|
580
580
|
# This would not pose a problem with comparisons, as {Node#==}
|
581
581
|
# ignores metadata.
|
582
582
|
#
|
583
|
-
# source://ast
|
583
|
+
# source://ast//lib/ast/sexp.rb#26
|
584
584
|
def s(type, *children); end
|
585
585
|
end
|