Class: RubyLsp::Itsi::HoverListener
- Inherits:
-
Object
- Object
- RubyLsp::Itsi::HoverListener
- Defined in:
- lib/ruby_lsp/itsi/addon.rb
Overview
rubocop:disable Style/Documentation
Instance Method Summary collapse
-
#initialize(response_builder, node_context, dispatcher) ⇒ HoverListener
constructor
A new instance of HoverListener.
-
#on_call_node_enter(node) ⇒ Object
rubocop:disable Metrics/MethodLength.
Constructor Details
#initialize(response_builder, node_context, dispatcher) ⇒ HoverListener
Returns a new instance of HoverListener.
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/ruby_lsp/itsi/addon.rb', line 39 def initialize(response_builder, node_context, dispatcher) @response_builder = response_builder @node_context = node_context @dispatcher = dispatcher @options_by_name = ::Itsi::Server::Config::Option.subclasses.group_by(&:option_name).transform_values(&:first) @middlewares_by_name = ::Itsi::Server::Config::Middleware.subclasses.group_by(&:middleware_name).transform_values(&:first) # Register for call nodes for hover events dispatcher.register(self, :on_call_node_enter) end |
Instance Method Details
#on_call_node_enter(node) ⇒ Object
rubocop:disable Metrics/MethodLength
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/ruby_lsp/itsi/addon.rb', line 50 def on_call_node_enter(node) # rubocop:disable Metrics/MethodLength if (matched_class = @options_by_name[node..to_sym]) @response_builder.push( matched_class.documentation, category: :documentation ) elsif (matched_class = @middlewares_by_name[node..to_sym]) @response_builder.push( matched_class.documentation, category: :documentation ) end end |