diff options
| author | omagdy7 <omar.professional8777@gmail.com> | 2023-05-09 14:08:17 +0300 |
|---|---|---|
| committer | omagdy7 <omar.professional8777@gmail.com> | 2023-05-09 14:08:17 +0300 |
| commit | 4b03a8311272e99e9fe0c2c869928f60e54c2483 (patch) | |
| tree | ad8ad22855cce44586ac62aa87a5b4230d90bdcb /nvim/.config/nvim/lua/resession | |
| parent | f90b78e354a71cfbc73ad17194dead598c5c820f (diff) | |
| download | dotfiles-4b03a8311272e99e9fe0c2c869928f60e54c2483.tar.xz dotfiles-4b03a8311272e99e9fe0c2c869928f60e54c2483.zip | |
Added user directory
Diffstat (limited to 'nvim/.config/nvim/lua/resession')
| -rw-r--r-- | nvim/.config/nvim/lua/resession/extensions/astronvim.lua | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/nvim/.config/nvim/lua/resession/extensions/astronvim.lua b/nvim/.config/nvim/lua/resession/extensions/astronvim.lua new file mode 100644 index 0000000..b911032 --- /dev/null +++ b/nvim/.config/nvim/lua/resession/extensions/astronvim.lua @@ -0,0 +1,32 @@ +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 = {} + vim.print(vim.api.nvim_list_bufs()) + 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 |
