33 lines
1.3 KiB
Lua
33 lines
1.3 KiB
Lua
-- Autocmds are automatically loaded on the VeryLazy event
|
|
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
|
-- Add any additional autocmds here
|
|
|
|
local augroup = vim.api.nvim_create_augroup
|
|
local autocmd = vim.api.nvim_create_autocmd
|
|
local view_group = augroup("auto_view", { clear = true })
|
|
|
|
autocmd({ "BufWinLeave", "BufWritePost", "WinLeave" }, {
|
|
desc = "Save view with mkview for real files",
|
|
group = view_group,
|
|
callback = function(args)
|
|
if vim.b[args.buf].view_activated then
|
|
vim.cmd.mkview({ mods = { emsg_silent = true } })
|
|
end
|
|
end,
|
|
})
|
|
autocmd("BufWinEnter", {
|
|
desc = "Try to load file view if available and enable view saving for real files",
|
|
group = view_group,
|
|
callback = function(args)
|
|
if not vim.b[args.buf].view_activated then
|
|
local filetype = vim.api.nvim_get_option_value("filetype", { buf = args.buf })
|
|
local buftype = vim.api.nvim_get_option_value("buftype", { buf = args.buf })
|
|
local ignore_filetypes = { "gitcommit", "gitrebase", "svg", "hgcommit" }
|
|
if buftype == "" and filetype and filetype ~= "" and not vim.tbl_contains(ignore_filetypes, filetype) then
|
|
vim.b[args.buf].view_activated = true
|
|
vim.cmd.loadview({ mods = { emsg_silent = true } })
|
|
end
|
|
end
|
|
end,
|
|
})
|