Class: RubyLsp::PinkSpoon::Addon

Inherits:
Addon
  • Object
show all
Defined in:
lib/ruby_lsp/pink_spoon/addon.rb

Instance Method Summary collapse

Instance Method Details

#activate(global_state, outgoing_queue) ⇒ Object



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/ruby_lsp/pink_spoon/addon.rb', line 111

def activate(global_state, outgoing_queue)
  root = global_state.workspace_path

  @rbi_index         = ::PinkSpoon::RbiIndex.new(root)
  @constant_resolver = ::PinkSpoon::ConstantResolver.new(root, @rbi_index)
  @doc_extractor     = ::PinkSpoon::DocExtractor.new(root)

  unless RubyLsp::Requests::Definition.ancestors.include?(LocalVariableDefinitionFallback)
    LocalVariableDefinitionFallback.addon_instance = self
    RubyLsp::Requests::Definition.prepend(LocalVariableDefinitionFallback)
  end

  unless RubyLsp::Requests::Hover.ancestors.include?(LocalVariableHoverFallback)
    LocalVariableHoverFallback.addon_instance = self
    RubyLsp::Requests::Hover.prepend(LocalVariableHoverFallback)
  end
end

#create_code_lens_listener(response_builder, uri, dispatcher) ⇒ Object



153
154
155
# File 'lib/ruby_lsp/pink_spoon/addon.rb', line 153

def create_code_lens_listener(response_builder, uri, dispatcher)
  CodeLensListener.new(response_builder, uri, dispatcher)
end

#create_completion_listener(response_builder, node_context, dispatcher, uri) ⇒ Object



148
149
150
# File 'lib/ruby_lsp/pink_spoon/addon.rb', line 148

def create_completion_listener(response_builder, node_context, dispatcher, uri)
  CompletionListener.new(response_builder, node_context, dispatcher, uri, @constant_resolver, @rbi_index)
end

#create_definition_listener(response_builder, uri, node_context, dispatcher) ⇒ Object



143
144
145
# File 'lib/ruby_lsp/pink_spoon/addon.rb', line 143

def create_definition_listener(response_builder, uri, node_context, dispatcher)
  DefinitionListener.new(response_builder, uri, node_context, dispatcher, @constant_resolver, @rbi_index, @doc_extractor)
end

#create_hover_listener(response_builder, node_context, dispatcher) ⇒ Object



138
139
140
# File 'lib/ruby_lsp/pink_spoon/addon.rb', line 138

def create_hover_listener(response_builder, node_context, dispatcher)
  HoverListener.new(response_builder, node_context, dispatcher, @constant_resolver, @rbi_index, @doc_extractor)
end

#deactivateObject



129
130
131
132
# File 'lib/ruby_lsp/pink_spoon/addon.rb', line 129

def deactivate
  LocalVariableDefinitionFallback.addon_instance = nil
  LocalVariableHoverFallback.addon_instance = nil
end

#nameObject



134
# File 'lib/ruby_lsp/pink_spoon/addon.rb', line 134

def name    = "Pink Spoon"

#versionObject



135
# File 'lib/ruby_lsp/pink_spoon/addon.rb', line 135

def version = ::PinkSpoon::VERSION