Skip to content

Commit 6a483e4

Browse files
committed
Register common node handlers in parent class instead
1 parent 7d8b194 commit 6a483e4

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

lib/ruby_lsp/listeners/discover_tests.rb

+12-4
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,18 @@ def initialize(response_builder, global_state, dispatcher, uri)
2121

2222
@fully_qualified_name = T.let("", String)
2323
@attached_ancestors = T.let([], T::Array[String])
24+
25+
dispatcher.register(
26+
self,
27+
:on_class_node_enter,
28+
:on_class_node_leave,
29+
:on_module_node_enter,
30+
:on_module_node_leave,
31+
)
2432
end
2533

2634
#: (Prism::ClassNode node) -> void
27-
def on_class_node_enter(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
35+
def on_class_node_enter(node)
2836
@visibility_stack << :public
2937
name = constant_name(node.constant_path)
3038
name ||= name_with_dynamic_reference(node.constant_path)
@@ -36,7 +44,7 @@ def on_class_node_enter(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMe
3644
end
3745

3846
#: (Prism::ModuleNode node) -> void
39-
def on_module_node_enter(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
47+
def on_module_node_enter(node)
4048
@visibility_stack << :public
4149

4250
name = constant_name(node.constant_path)
@@ -46,13 +54,13 @@ def on_module_node_enter(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerM
4654
end
4755

4856
#: (Prism::ModuleNode node) -> void
49-
def on_module_node_leave(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
57+
def on_module_node_leave(node)
5058
@visibility_stack.pop
5159
@nesting.pop
5260
end
5361

5462
#: (Prism::ClassNode node) -> void
55-
def on_class_node_leave(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
63+
def on_class_node_leave(node)
5664
@visibility_stack.pop
5765
@nesting.pop
5866
end

lib/ruby_lsp/listeners/spec_style.rb

+3-6
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,22 @@ def initialize(response_builder, global_state, dispatcher, uri)
1515

1616
dispatcher.register(
1717
self,
18-
:on_class_node_enter,
19-
:on_class_node_leave,
20-
:on_module_node_enter, # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
21-
:on_module_node_leave, # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
18+
# Common handlers registered in parent class
2219
:on_call_node_enter, # e.g. `describe` or `it`
2320
:on_call_node_leave,
2421
)
2522
end
2623

2724
#: (node: Prism::ClassNode) -> void
28-
def on_class_node_enter(node)
25+
def on_class_node_enter(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
2926
super
3027

3128
is_spec = @attached_ancestors.include?("Minitest::Spec")
3229
@spec_class_stack.push(is_spec)
3330
end
3431

3532
#: (node: Prism::ClassNode) -> void
36-
def on_class_node_leave(node)
33+
def on_class_node_leave(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
3734
super
3835

3936
@spec_class_stack.pop

lib/ruby_lsp/listeners/test_style.rb

+2-5
Original file line numberDiff line numberDiff line change
@@ -141,18 +141,15 @@ def initialize(response_builder, global_state, dispatcher, uri)
141141

142142
dispatcher.register(
143143
self,
144-
:on_class_node_enter,
145-
:on_class_node_leave, # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
146-
:on_module_node_enter, # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
147-
:on_module_node_leave, # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
144+
# Common handlers registered in parent class
148145
:on_def_node_enter,
149146
:on_call_node_enter,
150147
:on_call_node_leave,
151148
)
152149
end
153150

154151
#: (Prism::ClassNode node) -> void
155-
def on_class_node_enter(node)
152+
def on_class_node_enter(node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
156153
super
157154

158155
@framework_tag = :test_unit if @attached_ancestors.include?("Test::Unit::TestCase")

0 commit comments

Comments
 (0)