Skip to content

Commit

Permalink
feat: add resession extension
Browse files Browse the repository at this point in the history
  • Loading branch information
stevearc committed Sep 11, 2022
1 parent 9ffdff2 commit f7d6ca8
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lua/aerial/window.lua
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,10 @@ M.open_aerial_in_win = function(src_bufnr, src_winid, aer_winid)
end
setup_aerial_win(src_winid, aer_winid, aer_bufnr)
vim.api.nvim_win_set_buf(aer_winid, aer_bufnr)
local backend = backends.get(src_bufnr)
if backend and not data:has_symbols(src_bufnr) then
backend.fetch_symbols(src_bufnr)
end
end

---@param bufnr? integer
Expand Down
31 changes: 31 additions & 0 deletions lua/resession/extensions/aerial.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
local window = require("aerial.window")
local util = require("aerial.util")
local M = {}

M.on_save = function() end
M.on_load = function() end

M.is_win_supported = function(winid, bufnr)
return util.is_aerial_buffer(bufnr)
end

M.save_win = function(winid)
local source_win = util.get_source_win(winid)
local rel_nr = vim.api.nvim_win_get_number(source_win) - vim.api.nvim_win_get_number(winid)
local bufnr = util.get_source_buffer(vim.api.nvim_win_get_buf(winid))
return {
rel_nr = rel_nr,
bufname = vim.api.nvim_buf_get_name(bufnr),
}
end

M.load_win = function(winid, config)
local source_nr = vim.api.nvim_win_get_number(winid) + config.rel_nr
local source_win = vim.api.nvim_tabpage_list_wins(0)[source_nr]
vim.defer_fn(function()
local bufnr = vim.fn.bufadd(config.bufname)
window.open_aerial_in_win(bufnr, source_win, winid)
end, 5)
end

return M

0 comments on commit f7d6ca8

Please sign in to comment.