feat: allow caching and resuming picker (#1051)
* expose `cache_picker` in telescope.setup to configure caching, see `:h telescope.defaults.cache_picker` * add builtin.resume and builtin.pickers picker
This commit is contained in:
@@ -215,4 +215,41 @@ function LinkedList:ipairs()
|
||||
end
|
||||
end
|
||||
|
||||
function LinkedList:truncate(max_results)
|
||||
if max_results >= self.size then
|
||||
return
|
||||
end
|
||||
|
||||
local current_node
|
||||
if max_results < self.size - max_results then
|
||||
local index = 1
|
||||
current_node = self.head
|
||||
while index < max_results do
|
||||
local node = current_node
|
||||
if not node.next then
|
||||
break
|
||||
end
|
||||
current_node = current_node.next
|
||||
index = index + 1
|
||||
end
|
||||
self.size = max_results
|
||||
else
|
||||
current_node = self.tail
|
||||
while self.size > max_results do
|
||||
if current_node.prev == nil then
|
||||
break
|
||||
end
|
||||
current_node = current_node.prev
|
||||
self.size = self.size - 1
|
||||
end
|
||||
end
|
||||
self.tail = current_node
|
||||
self.tail.next = nil
|
||||
if max_results < self.track_at then
|
||||
self.track_at = max_results
|
||||
self.tracked = current_node.item
|
||||
self._tracked_node = current_node
|
||||
end
|
||||
end
|
||||
|
||||
return LinkedList
|
||||
|
||||
Reference in New Issue
Block a user