Class: RubyLsp::Rails::Completion

Inherits:
Object
  • Object
show all
Includes:
Requests::Support::Common
Defined in:
lib/ruby_lsp/ruby_lsp_rails/completion.rb

Instance Method Summary collapse

Constructor Details

#initialize(client, response_builder, node_context, dispatcher, uri) ⇒ Completion

: (RunnerClient client, ResponseBuilders::CollectionResponseBuilder response_builder, NodeContext node_context, Prism::Dispatcher dispatcher, URI::Generic uri) -> void



11
12
13
14
15
16
17
18
19
# File 'lib/ruby_lsp/ruby_lsp_rails/completion.rb', line 11

def initialize(client, response_builder, node_context, dispatcher, uri)
  @response_builder = response_builder
  @client = client
  @node_context = node_context
  dispatcher.register(
    self,
    :on_call_node_enter,
  )
end

Instance Method Details

#on_call_node_enter(node) ⇒ Object

: (Prism::CallNode node) -> void



22
23
24
25
26
27
28
29
30
# File 'lib/ruby_lsp/ruby_lsp_rails/completion.rb', line 22

def on_call_node_enter(node)
  call_node = @node_context.call_node
  return unless call_node

  receiver = call_node.receiver
  if call_node.name == :where && receiver.is_a?(Prism::ConstantReadNode)
    handle_active_record_where_completions(node: node, receiver: receiver)
  end
end