Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions lua/telescope/builtin/__internal.lua
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,11 @@ internal.oldfiles = function(opts)
local current_file = vim.api.nvim_buf_get_name(current_buffer)
local results = {}

if utils.iswin then -- for slash problem in windows
local function has_protocol(path)
return string.match(path, "^[A-z0-9]+://")
end

if utils.iswin and not has_protocol(current_file) then -- for slash problem in windows
current_file = current_file:gsub("/", "\\")
end

Expand All @@ -542,23 +546,27 @@ internal.oldfiles = function(opts)
local open_by_lsp = string.match(buffer, "line 0$")
if match and not open_by_lsp then
local file = vim.api.nvim_buf_get_name(match)
local protocol = has_protocol(file)
if utils.iswin then
file = file:gsub("/", "\\")
end
if vim.loop.fs_stat(file) and match ~= current_buffer then

if match ~= current_buffer and (protocol or vim.uv.fs_stat(file)) then
table.insert(results, file)
end
end
end
end

for _, file in ipairs(vim.v.oldfiles) do
local protocol = has_protocol(file)
if utils.iswin then
file = file:gsub("/", "\\")
end
local file_stat = vim.loop.fs_stat(file)
if file_stat and file_stat.type == "file" and not vim.tbl_contains(results, file) and file ~= current_file then
table.insert(results, file)
if ((file_stat and file_stat.type == "file") or (protocol and protocol ~= "file://" and protocol ~= "term://")) and
not vim.tbl_contains(results, file) and file ~= current_file then
table.insert(results, file)
end
end

Expand Down