Class: RubyLsp::Requests::Support::PrefixTree

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/ruby_lsp/requests/support/prefix_tree.rb

Defined Under Namespace

Classes: Node

Instance Method Summary collapse

Constructor Details

#initialize(items) ⇒ PrefixTree

Returns a new instance of PrefixTree.



11
12
13
14
15
16
17
# File 'lib/ruby_lsp/requests/support/prefix_tree.rb', line 11

def initialize(items)
  @root = T.let(Node.new(""), Node)

  items.each do |item|
    insert(item)
  end
end

Instance Method Details

#search(prefix) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ruby_lsp/requests/support/prefix_tree.rb', line 20

def search(prefix)
  node = T.let(@root, Node)

  prefix.each_char do |char|
    snode = node.children[char]
    return [] unless snode

    node = snode
  end

  node.collect
end