summaryrefslogtreecommitdiff
path: root/lua/telescope/builtin
diff options
context:
space:
mode:
authorSimon Hauser <Simon-Hauser@outlook.de>2021-07-19 09:10:06 +0200
committerGitHub <noreply@github.com>2021-07-19 09:10:06 +0200
commit46e03a935f1d080a9bd856d5a8acfcc093cd1461 (patch)
tree1ad21f773c357fede0a344b1ed06a676e7fde86b /lua/telescope/builtin
parent8c3f2b630be0241fe10709e61ee9dab473518f32 (diff)
feat: sort_mru for builtin buffers (#1028)
:help builtin.buffers
Diffstat (limited to 'lua/telescope/builtin')
-rw-r--r--lua/telescope/builtin/init.lua3
-rw-r--r--lua/telescope/builtin/internal.lua5
2 files changed, 7 insertions, 1 deletions
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