Class: RubyLsp::RSpec::CodeLens
- Inherits:
-
Object
- Object
- RubyLsp::RSpec::CodeLens
- Includes:
- RubyLsp::Requests::Support::Common
- Defined in:
- lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb
Instance Method Summary collapse
-
#initialize(response_builder, uri, dispatcher, rspec_command, debug: false) ⇒ CodeLens
constructor
: (ResponseBuilders::CollectionResponseBuilder, URI::Generic, Prism::Dispatcher, String, ?debug: bool) -> void.
-
#on_call_node_enter(node) ⇒ Object
: (Prism::CallNode) -> void.
-
#on_call_node_leave(node) ⇒ Object
: (Prism::CallNode) -> void.
Constructor Details
#initialize(response_builder, uri, dispatcher, rspec_command, debug: false) ⇒ CodeLens
: (ResponseBuilders::CollectionResponseBuilder, URI::Generic, Prism::Dispatcher, String, ?debug: bool) -> void
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb', line 10 def initialize(response_builder, uri, dispatcher, rspec_command, debug: false) @response_builder = response_builder # Listener is only initialized if uri.to_standardized_path is valid path = uri.to_standardized_path #: as !nil @path = path #: String @group_id = 1 #: Integer @group_id_stack = [] #: Array[Integer] @rspec_command = rspec_command @anonymous_example_count = 0 #: Integer dispatcher.register(self, :on_call_node_enter, :on_call_node_leave) @debug = debug end |
Instance Method Details
#on_call_node_enter(node) ⇒ Object
: (Prism::CallNode) -> void
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb', line 25 def on_call_node_enter(node) case node. when "example", "it", "specify", "scenario" name = generate_name(node) add_test_code_lens(node, name: name, kind: :example) when "context", "describe", "feature" return unless valid_group?(node) name = generate_name(node) add_test_code_lens(node, name: name, kind: :group) @group_id_stack.push(@group_id) @group_id += 1 end end |
#on_call_node_leave(node) ⇒ Object
: (Prism::CallNode) -> void
42 43 44 45 46 47 48 49 |
# File 'lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb', line 42 def on_call_node_leave(node) case node. when "context", "describe", "feature" return unless valid_group?(node) @group_id_stack.pop end end |