Class: RubyLsp::Itsi::HoverListener
- Inherits:
-
Object
- Object
- RubyLsp::Itsi::HoverListener
- Defined in:
- lib/ruby_lsp/itsi/addon.rb
Instance Method Summary collapse
-
#initialize(response_builder, node_context, dispatcher) ⇒ HoverListener
constructor
A new instance of HoverListener.
- #on_call_node_enter(node) ⇒ Object
Constructor Details
#initialize(response_builder, node_context, dispatcher) ⇒ HoverListener
Returns a new instance of HoverListener.
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/ruby_lsp/itsi/addon.rb', line 38 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).map{|k,v| [k,v.first]}.to_h @middlewares_by_name = ::Itsi::Server::Config::Middleware.subclasses.group_by(&:middleware_name).map{|k,v| [k,v.first]}.to_h # Register for call nodes for hover events dispatcher.register(self, :on_call_node_enter) end |
Instance Method Details
#on_call_node_enter(node) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/ruby_lsp/itsi/addon.rb', line 49 def on_call_node_enter(node) 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 |