Class: RubyLsp::Doclinks::Addon

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

Instance Method Summary collapse

Constructor Details

#initialize ⇒ Addon

Returns a new instance of Addon.



12
13
14
15
16
17
18
19
20
21
# File 'lib/ruby_lsp/doclinks/addon.rb', line 12

def initialize
  super

  @settings = {
    rubydoc_url: "https://www.rubydoc.info/gems/%{gem_name}/%{version}/%{constant}#%{method}",
    yard_url: "http://localhost:8808/docs/%{gem_name}/%{version}/%{constant}#%{method}",
    custom_url: "Add a custom Url for %{gem_name} %{version} %{constant} %{method}",
    doc_source: :rubydoc # :rubydoc, :yard or :custom
  }
end

Instance Method Details

#activate(global_state, message_queue) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/ruby_lsp/doclinks/addon.rb', line 23

def activate(global_state, message_queue)
  @global_state = global_state
  @message_queue = message_queue
  $stderr.puts "Activating '#{name}' LSP addon v#{RubyLsp::Doclinks::VERSION}"

  addon_settings = @global_state.settings_for_addon(name)
  $stderr.puts "#{name} addon settings: #{addon_settings.inspect}"
  @settings.merge!(addon_settings) if addon_settings
end

#create_hover_listener(response_builder, node_context, dispatcher) ⇒ Object



45
46
47
# File 'lib/ruby_lsp/doclinks/addon.rb', line 45

def create_hover_listener(response_builder, node_context, dispatcher)
  Hover.new(@settings, response_builder, dispatcher)
end

#deactivate ⇒ Object



33
34
35
# File 'lib/ruby_lsp/doclinks/addon.rb', line 33

def deactivate
  # No cleanup needed
end

#name ⇒ Object



37
38
39
# File 'lib/ruby_lsp/doclinks/addon.rb', line 37

def name
  "Doclinks"
end

#version ⇒ Object



41
42
43
# File 'lib/ruby_lsp/doclinks/addon.rb', line 41

def version
  RubyLsp::Doclinks::VERSION
end