fix: alias cwd_only and only_cwd option for buffers and oldfiles (#1316)
* Alias cwd_only and only_cwd option for builtins Fixes #1199 Closes #1275
This commit is contained in:
@@ -1059,6 +1059,7 @@ builtin.oldfiles({opts}) *builtin.oldfiles()*
|
|||||||
|
|
||||||
Options: ~
|
Options: ~
|
||||||
{only_cwd} (boolean) show only files in the cwd (default: false)
|
{only_cwd} (boolean) show only files in the cwd (default: false)
|
||||||
|
{cwd_only} (boolean) alias for only_cwd
|
||||||
|
|
||||||
|
|
||||||
builtin.command_history({opts}) *builtin.command_history()*
|
builtin.command_history({opts}) *builtin.command_history()*
|
||||||
@@ -1148,6 +1149,7 @@ builtin.buffers({opts}) *builtin.buffers()*
|
|||||||
{only_cwd} (boolean) if true, only show buffers in the
|
{only_cwd} (boolean) if true, only show buffers in the
|
||||||
current working directory (default:
|
current working directory (default:
|
||||||
false)
|
false)
|
||||||
|
{cwd_only} (boolean) alias for only_cwd
|
||||||
{sort_lastused} (boolean) Sorts current and last buffer to
|
{sort_lastused} (boolean) Sorts current and last buffer to
|
||||||
the top and selects the lastused
|
the top and selects the lastused
|
||||||
(default: false)
|
(default: false)
|
||||||
|
|||||||
@@ -262,6 +262,7 @@ builtin.loclist = require_on_exported_call("telescope.builtin.internal").loclist
|
|||||||
--- Lists previously open files, opens on `<cr>`
|
--- Lists previously open files, opens on `<cr>`
|
||||||
---@param opts table: options to pass to the picker
|
---@param opts table: options to pass to the picker
|
||||||
---@field only_cwd boolean: show only files in the cwd (default: false)
|
---@field only_cwd boolean: show only files in the cwd (default: false)
|
||||||
|
---@field cwd_only boolean: alias for only_cwd
|
||||||
builtin.oldfiles = require_on_exported_call("telescope.builtin.internal").oldfiles
|
builtin.oldfiles = require_on_exported_call("telescope.builtin.internal").oldfiles
|
||||||
|
|
||||||
--- Lists commands that were executed recently, and reruns them on `<cr>`
|
--- Lists commands that were executed recently, and reruns them on `<cr>`
|
||||||
@@ -302,6 +303,7 @@ builtin.reloader = require_on_exported_call("telescope.builtin.internal").reload
|
|||||||
---@field show_all_buffers boolean: if true, show all buffers, including unloaded buffers (default: true)
|
---@field show_all_buffers boolean: if true, show all buffers, including unloaded buffers (default: true)
|
||||||
---@field ignore_current_buffer boolean: if true, don't show the current buffer in the list (default: false)
|
---@field ignore_current_buffer boolean: if true, don't show the current buffer in the list (default: false)
|
||||||
---@field only_cwd boolean: if true, only show buffers in the current working directory (default: false)
|
---@field only_cwd boolean: if true, only show buffers in the current working directory (default: false)
|
||||||
|
---@field cwd_only boolean: alias for only_cwd
|
||||||
---@field sort_lastused boolean: Sorts current and last buffer to the top and selects the lastused (default: false)
|
---@field sort_lastused boolean: Sorts current and last buffer to the top and selects the lastused (default: false)
|
||||||
---@field sort_mru boolean: Sorts all buffers after most recent used. Not just the current and last one (default: false)
|
---@field sort_mru boolean: Sorts all buffers after most recent used. Not just the current and last one (default: false)
|
||||||
---@field bufnr_width number: Defines the width of the buffer numbers in front of the filenames (default: dynamic)
|
---@field bufnr_width number: Defines the width of the buffer numbers in front of the filenames (default: dynamic)
|
||||||
|
|||||||
@@ -15,6 +15,20 @@ local conf = require("telescope.config").values
|
|||||||
|
|
||||||
local filter = vim.tbl_filter
|
local filter = vim.tbl_filter
|
||||||
|
|
||||||
|
-- Makes sure aliased options are set correctly
|
||||||
|
local function apply_cwd_only_aliases(opts)
|
||||||
|
local has_cwd_only = opts.cwd_only ~= nil
|
||||||
|
local has_only_cwd = opts.only_cwd ~= nil
|
||||||
|
|
||||||
|
if has_only_cwd and not has_cwd_only then
|
||||||
|
-- Internally, use cwd_only
|
||||||
|
opts.cwd_only = opts.only_cwd
|
||||||
|
opts.only_cwd = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
return opts
|
||||||
|
end
|
||||||
|
|
||||||
local internal = {}
|
local internal = {}
|
||||||
|
|
||||||
-- TODO: What the heck should we do for accepting this.
|
-- TODO: What the heck should we do for accepting this.
|
||||||
@@ -346,6 +360,7 @@ internal.loclist = function(opts)
|
|||||||
end
|
end
|
||||||
|
|
||||||
internal.oldfiles = function(opts)
|
internal.oldfiles = function(opts)
|
||||||
|
opts = apply_cwd_only_aliases(opts)
|
||||||
opts.include_current_session = utils.get_default(opts.include_current_session, true)
|
opts.include_current_session = utils.get_default(opts.include_current_session, true)
|
||||||
|
|
||||||
local current_buffer = vim.api.nvim_get_current_buf()
|
local current_buffer = vim.api.nvim_get_current_buf()
|
||||||
@@ -700,6 +715,7 @@ internal.reloader = function(opts)
|
|||||||
end
|
end
|
||||||
|
|
||||||
internal.buffers = function(opts)
|
internal.buffers = function(opts)
|
||||||
|
opts = apply_cwd_only_aliases(opts)
|
||||||
local bufnrs = filter(function(b)
|
local bufnrs = filter(function(b)
|
||||||
if 1 ~= vim.fn.buflisted(b) then
|
if 1 ~= vim.fn.buflisted(b) then
|
||||||
return false
|
return false
|
||||||
@@ -711,7 +727,7 @@ internal.buffers = function(opts)
|
|||||||
if opts.ignore_current_buffer and b == vim.api.nvim_get_current_buf() then
|
if opts.ignore_current_buffer and b == vim.api.nvim_get_current_buf() then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
if opts.only_cwd and not string.find(vim.api.nvim_buf_get_name(b), vim.loop.cwd(), 1, true) then
|
if opts.cwd_only and not string.find(vim.api.nvim_buf_get_name(b), vim.loop.cwd(), 1, true) then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
|
|||||||
Reference in New Issue
Block a user