Skip to content

Commit

Permalink
Improve oldfiles Picker (#657)
Browse files Browse the repository at this point in the history
  • Loading branch information
jesseleite committed Mar 18, 2021
1 parent c50eaf5 commit d4bf118
Showing 1 changed file with 31 additions and 3 deletions.
34 changes: 31 additions & 3 deletions lua/telescope/builtin/internal.lua
Original file line number Diff line number Diff line change
Expand Up @@ -231,9 +231,37 @@ internal.loclist = function(opts)
end

internal.oldfiles = function(opts)
local results = vim.tbl_filter(function(val)
return 0 ~= vim.fn.filereadable(val)
end, vim.v.oldfiles)
opts.include_current_session = utils.get_default(opts.include_current_session, true)

local current_buffer = vim.api.nvim_get_current_buf()
local current_file = vim.api.nvim_buf_get_name(current_buffer)
local results = {}

if opts.include_current_session then
for _, buffer in ipairs(vim.split(vim.fn.execute(':buffers! t'), "\n")) do
local match = tonumber(string.match(buffer, '%s*(%d+)'))
if match then
local file = vim.api.nvim_buf_get_name(match)
if vim.loop.fs_stat(file) and match ~= current_buffer then
table.insert(results, file)
end
end
end
end

for _, file in ipairs(vim.v.oldfiles) do
if vim.loop.fs_stat(file) and not vim.tbl_contains(results, file) and file ~= current_file then
table.insert(results, file)
end
end

if opts.cwd_only then
local cwd = vim.loop.cwd()
results = vim.tbl_filter(function(file)
return vim.fn.matchstrpos(file, cwd)[2] ~= -1
end, results)
end

pickers.new(opts, {
prompt_title = 'Oldfiles',
finder = finders.new_table{
Expand Down

0 comments on commit d4bf118

Please sign in to comment.