aboutsummaryrefslogtreecommitdiff
path: root/nvim/.config/nvim/lua/resession
diff options
context:
space:
mode:
authoromagdy7 <omar.professional8777@gmail.com>2023-05-09 14:08:17 +0300
committeromagdy7 <omar.professional8777@gmail.com>2023-05-09 14:08:17 +0300
commit4b03a8311272e99e9fe0c2c869928f60e54c2483 (patch)
treead8ad22855cce44586ac62aa87a5b4230d90bdcb /nvim/.config/nvim/lua/resession
parentf90b78e354a71cfbc73ad17194dead598c5c820f (diff)
downloaddotfiles-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.lua32
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