45 lines
1.4 KiB
Lua
45 lines
1.4 KiB
Lua
-- Auto-save functionality
|
|
return {
|
|
"okuuva/auto-save.nvim",
|
|
event = { "User AstroFile", "InsertEnter" },
|
|
dependencies = {
|
|
"AstroNvim/astrocore",
|
|
opts = {
|
|
autocmds = {
|
|
autoformat_toggle = {
|
|
{
|
|
event = "User",
|
|
desc = "Disable autoformat before saving",
|
|
pattern = "AutoSaveWritePre",
|
|
callback = function()
|
|
vim.g.OLD_AUTOFORMAT = vim.g.autoformat
|
|
vim.g.autoformat = false
|
|
local old_autoformat_buffers = {}
|
|
for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do
|
|
if vim.b[bufnr].autoformat then
|
|
table.insert(old_autoformat_buffers, bufnr)
|
|
vim.b[bufnr].autoformat = false
|
|
end
|
|
end
|
|
vim.g.OLD_AUTOFORMAT_BUFFERS = old_autoformat_buffers
|
|
end,
|
|
},
|
|
{
|
|
event = "User",
|
|
desc = "Re-enable autoformat after saving",
|
|
pattern = "AutoSaveWritePost",
|
|
callback = function()
|
|
vim.g.autoformat = vim.g.OLD_AUTOFORMAT
|
|
for _, bufnr in ipairs(vim.g.OLD_AUTOFORMAT_BUFFERS or {}) do
|
|
vim.b[bufnr].autoformat = true
|
|
end
|
|
end,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
opts = {},
|
|
}
|
|
|