Squashed 'users/daniel/configs/system/nvim/nvim/' content from commit f10b473
git-subtree-dir: users/daniel/configs/system/nvim/nvim git-subtree-split: f10b4730176b567e15911b3c1a7c5a31c82c8b8e
This commit is contained in:
31
lua/resession/extensions/astronvim.lua
Normal file
31
lua/resession/extensions/astronvim.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
local M = {}
|
||||
|
||||
M.on_save = function()
|
||||
-- initiate astronvim data
|
||||
local data = { bufnrs = {}, tabs = {} }
|
||||
|
||||
-- save tab scoped buffers and buffer numbers from buffer name
|
||||
for _, tabpage in ipairs(vim.api.nvim_list_tabpages()) do
|
||||
data.tabs[tabpage] = vim.t[tabpage].bufs
|
||||
for _, bufnr in ipairs(data.tabs[tabpage]) do
|
||||
data.bufnrs[vim.api.nvim_buf_get_name(bufnr)] = bufnr
|
||||
end
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
M.on_load = function(data)
|
||||
-- create map from old buffer numbers to new buffer numbers
|
||||
local new_bufnrs = {}
|
||||
for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do
|
||||
local bufname = vim.api.nvim_buf_get_name(bufnr)
|
||||
if bufname and bufname ~= "" then new_bufnrs[data.bufnrs[bufname]] = bufnr end
|
||||
end
|
||||
-- build new tab scoped buffer lists
|
||||
for tabpage, tabs in pairs(data.tabs) do
|
||||
vim.t[tabpage].bufs = vim.tbl_map(function(bufnr) return new_bufnrs[bufnr] end, tabs)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user