Class: RubyLsp::RSpec::IndexingEnhancement
- Inherits:
-
RubyIndexer::Enhancement
- Object
- RubyIndexer::Enhancement
- RubyLsp::RSpec::IndexingEnhancement
- Defined in:
- lib/ruby_lsp/ruby_lsp_rspec/indexing_enhancement.rb
Instance Method Summary collapse
-
#on_call_node_enter(node) ⇒ Object
: (Prism::CallNode) -> void.
Instance Method Details
#on_call_node_enter(node) ⇒ Object
: (Prism::CallNode) -> void
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/ruby_lsp/ruby_lsp_rspec/indexing_enhancement.rb', line 9 def on_call_node_enter(node) return if node.receiver name = node.name case name when :let, :let! block_node = node.block return unless block_node arguments = node.arguments return unless arguments return if arguments.arguments.count != 1 method_name_node = arguments.arguments.first #: as !nil method_name = case method_name_node when Prism::StringNode method_name_node.slice when Prism::SymbolNode method_name_node.unescaped end return unless method_name @listener.add_method(method_name, block_node.location, [RubyIndexer::Entry::Signature.new([])]) when :subject, :subject! block_node = node.block return unless block_node arguments = node.arguments if arguments && arguments.arguments.count == 1 method_name_node = arguments.arguments.first #: as !nil end method_name = if method_name_node case method_name_node when Prism::StringNode method_name_node.slice when Prism::SymbolNode method_name_node.unescaped end else "subject" end return unless method_name @listener.add_method(method_name, block_node.location, [RubyIndexer::Entry::Signature.new([])]) end end |