Class: RubyLsp::RailsPartial::Hover
- Inherits:
-
Object
- Object
- RubyLsp::RailsPartial::Hover
- Defined in:
- lib/ruby_lsp/ruby_lsp_rails_partial/hover.rb
Overview
When the cursor is on the partial name string of a render call, shows the list of resolved file paths in a tooltip (Markdown).
NOTE: A hover request does not pass a uri to the listener (unlike definition/completion). A bare name ‘render ’form’‘ needs a uri to infer the current directory, so it is out of scope; only slash-qualified names like `render ’admin/areas/form’‘ are resolved.
Instance Method Summary collapse
-
#initialize(response_builder, node_context, resolver, dispatcher) ⇒ Hover
constructor
A new instance of Hover.
- #on_string_node_enter(node) ⇒ Object
Constructor Details
#initialize(response_builder, node_context, resolver, dispatcher) ⇒ Hover
Returns a new instance of Hover.
12 13 14 15 16 17 18 |
# File 'lib/ruby_lsp/ruby_lsp_rails_partial/hover.rb', line 12 def initialize(response_builder, node_context, resolver, dispatcher) @response_builder = response_builder @node_context = node_context @resolver = resolver dispatcher.register(self, :on_string_node_enter) end |
Instance Method Details
#on_string_node_enter(node) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/ruby_lsp/ruby_lsp_rails_partial/hover.rb', line 20 def on_string_node_enter(node) return unless render_partial_argument?(node) reference = node.unescaped return if reference.empty? paths = @resolver.resolve_without_context(reference) return if paths.empty? @response_builder.push("**Rails partial: `#{reference}`**", category: :title) @response_builder.push(links_markdown(paths), category: :links) end |