Class: RubyLsp::Runar::Addon

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

Instance Method Summary collapse

Instance Method Details

#activate(global_state, _message_queue) ⇒ Object

Ruby LSP calls activate once when the language server boots.

global_state - RubyLsp::GlobalState instance (provides the index etc.) message_queue - Thread::Queue for sending async client notifications



29
30
31
# File 'lib/ruby_lsp/runar/addon.rb', line 29

def activate(global_state, _message_queue)
  @global_state = global_state
end

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

Ruby LSP calls this to obtain a completion listener for the current request. Returns a Completion instance that registers itself with the dispatcher only for .runar.rb files.

response_builder - CollectionResponseBuilder node_context - NodeContext for the cursor position dispatcher - Prism::Dispatcher; the listener registers itself here uri - URI::Generic identifying the file being completed



63
64
65
# File 'lib/ruby_lsp/runar/addon.rb', line 63

def create_completion_listener(response_builder, node_context, dispatcher, uri)
  Completion.new(response_builder, node_context, dispatcher, uri)
end

#create_hover_listener(response_builder, node_context, dispatcher) ⇒ Object

Ruby LSP calls this to obtain a hover listener for the current request.

response_builder - collects hover content via #push(text, category:) node_context - provides URI and context for the hovered node dispatcher - Prism::Dispatcher; the listener registers itself here



51
52
53
# File 'lib/ruby_lsp/runar/addon.rb', line 51

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

#deactivateObject

Ruby LSP calls deactivate when the server shuts down.



34
# File 'lib/ruby_lsp/runar/addon.rb', line 34

def deactivate; end

#nameObject

Human-readable name shown in Ruby LSP logs and error messages.



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

def name
  'Runar'
end

#versionObject

Version must be defined — Ruby LSP uses it for compatibility checks.



42
43
44
# File 'lib/ruby_lsp/runar/addon.rb', line 42

def version
  '0.1.0'
end