summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/telescope.txt7
-rw-r--r--lua/telescope/builtin/init.lua3
-rw-r--r--lua/telescope/builtin/internal.lua5
3 files changed, 12 insertions, 3 deletions
diff --git a/doc/telescope.txt b/doc/telescope.txt
index 7bc2062..1cf5c91 100644
--- a/doc/telescope.txt
+++ b/doc/telescope.txt
@@ -659,9 +659,12 @@ builtin.buffers({opts}) *builtin.buffers()*
{only_cwd} (boolean) if true, only show buffers in the
current working directory (default
false)
- {sort_lastused} (boolean) if true, sort the shown buffers so
- that the last used one is selected
+ {sort_lastused} (boolean) Sorts current and last buffer to the
+ top and selects the lastused
(default false)
+ {sort_mru} (boolean) Sorts all buffers after most recent
+ used. Not just the current and last
+ one (default false)
{bufnr_width} (number) Defines the width of the buffer
numbers in front of the filenames
diff --git a/lua/telescope/builtin/init.lua b/lua/telescope/builtin/init.lua
index 0c2c461..0bb1dc3 100644
--- a/lua/telescope/builtin/init.lua
+++ b/lua/telescope/builtin/init.lua
@@ -248,7 +248,8 @@ builtin.reloader = require('telescope.builtin.internal').reloader
---@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 only_cwd boolean: if true, only show buffers in the current working directory (default false)
----@field sort_lastused boolean: if true, sort the shown buffers so that the last used one is selected (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 bufnr_width number: Defines the width of the buffer numbers in front of the filenames
builtin.buffers = require('telescope.builtin.internal').buffers
diff --git a/lua/telescope/builtin/internal.lua b/lua/telescope/builtin/internal.lua
index a874016..ad6293c 100644
--- a/lua/telescope/builtin/internal.lua
+++ b/lua/telescope/builtin/internal.lua
@@ -593,6 +593,11 @@ internal.buffers = function(opts)
return true
end, vim.api.nvim_list_bufs())
if not next(bufnrs) then return end
+ if opts.sort_mru then
+ table.sort(bufnrs, function(a, b)
+ return vim.fn.getbufinfo(a)[1].lastused > vim.fn.getbufinfo(b)[1].lastused
+ end)
+ end
local buffers = {}
local default_selection_idx = 1