Class: RubyLsp::RailsIcons::Completion

Inherits:
Object
  • Object
show all
Includes:
RubyLsp::Requests::Support::Common
Defined in:
lib/ruby_lsp/rails_icons/addon.rb

Instance Method Summary collapse

Constructor Details

#initialize(response_builder, node, icons, dispatcher) ⇒ Completion

Returns a new instance of Completion.



58
59
60
61
62
63
64
# File 'lib/ruby_lsp/rails_icons/addon.rb', line 58

def initialize(response_builder, node, icons, dispatcher)
  @response_builder = response_builder
  @node = node
  @icons = icons

  dispatcher.register(self, :on_call_node_enter)
end

Instance Method Details

#on_call_node_enter(node) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/ruby_lsp/rails_icons/addon.rb', line 66

def on_call_node_enter(node)
  return unless node.name == :icon

  prefix = extract_prefix(node)

  @icons.each do |icon|
    next unless icon.start_with?(prefix)

    @response_builder << Interface::CompletionItem.new(
      label: icon,
      kind: Constant::CompletionItemKind::VALUE,
      text_edit: Interface::TextEdit.new(
        range: first_argument_range(node),
        new_text: icon
      )
    )
  end
end