new(document, global_state, position, dispatcher, typechecker_enabled)
Calls superclass method
def initialize(document, global_state, position, dispatcher, typechecker_enabled)
super()
@target = T.let(nil, T.nilable(Prism::Node))
@target, parent, nesting = document.locate_node(
position,
node_types: Listeners::Hover::ALLOWED_TARGETS,
)
if (Listeners::Hover::ALLOWED_TARGETS.include?(parent.class) &&
!Listeners::Hover::ALLOWED_TARGETS.include?(@target.class)) ||
(parent.is_a?(Prism::ConstantPathNode) && @target.is_a?(Prism::ConstantReadNode))
@target = determine_target(
T.must(@target),
T.must(parent),
position,
)
end
return unless @target
uri = document.uri
@response_builder = T.let(ResponseBuilders::Hover.new, ResponseBuilders::Hover)
Listeners::Hover.new(@response_builder, global_state, uri, nesting, dispatcher, typechecker_enabled)
Addon.addons.each do |addon|
addon.create_hover_listener(@response_builder, nesting, dispatcher)
end
@dispatcher = dispatcher
end
provider()
def provider
Interface::HoverClientCapabilities.new(dynamic_registration: false)
end