class RubyLsp::Cell::Addon


Addon for Ruby LSP Cell Context

def activate(global_state, message_queue)

: (RubyLsp::GlobalState global_state, Thread::Queue message_queue) -> void
@override
def activate(global_state, message_queue)
  return unless are_required_libraries_installed?
  @message_queue = message_queue
  @global_state = global_state
  @settings = @global_state.settings_for_addon(name) || {}
  @enabled = @settings.fetch(:enabled, true)
  @default_view_filename = @settings.fetch(:defaultViewFileName, "show.erb")
end

def are_required_libraries_installed?

def are_required_libraries_installed?
  Bundler.definition.specs.any? do |spec|
    spec.name == "cells"
  end
rescue Bundler::GemNotFound
  false
end

def create_code_lens_listener(response_builder, uri, dispatcher)

: (RubyLsp::ResponseBuilders::CollectionResponseBuilder[untyped] response_builder, URI::Generic uri, Prism::Dispatcher dispatcher) -> void
@override
def create_code_lens_listener(response_builder, uri, dispatcher)
  CodeLens.new(
    response_builder,
    uri,
    dispatcher,
    @global_state, #: as !nil
    enabled: @enabled, #: as !nil
    default_view_filename: @default_view_filename, #: as !nil
  )
end

def deactivate; end

: -> void
@override
def deactivate; end

def initialize

: -> void
def initialize
  super
  @global_state = nil #: RubyLsp::GlobalState?
  @message_queue = nil #: Thread::Queue?
  @settings = nil #: Hash[Symbol, untyped]?
  @enabled = nil #: bool?
  @default_view_filename = nil #: String?
end

def name

: -> String
@override
def name
  "Ruby LSP Cell"
end

def version

: -> String
@override
def version
  RubyLsp::Cell::VERSION
end