class RubyLsp::Listeners::CodeLens

def initialize(response_builder, global_state, uri, dispatcher)

: (ResponseBuilders::CollectionResponseBuilder[Interface::CodeLens] response_builder, GlobalState global_state, URI::Generic uri, Prism::Dispatcher dispatcher) -> void
def initialize(response_builder, global_state, uri, dispatcher)
  @response_builder = response_builder
  @global_state = global_state
  @uri = uri #: URI::Generic
  @path = uri.to_standardized_path #: String?
  # visibility_stack is a stack of [current_visibility, previous_visibility]
  @visibility_stack = [[:public, :public]] #: Array[Array[Symbol?]]
  @group_stack = [] #: Array[String]
  @group_id = 1 #: Integer
  @group_id_stack = [] #: Array[Integer]
  # We want to avoid adding code lenses for nested definitions
  @def_depth = 0 #: Integer
  @spec_id = 0 #: Integer
  dispatcher.register(
    self,
    :on_class_node_enter,
    :on_class_node_leave,
    :on_module_node_enter,
    :on_module_node_leave,
    :on_def_node_enter,
    :on_def_node_leave,
    :on_call_node_enter,
    :on_call_node_leave,
  )
end