Files
dotfiles/.config/nvim/lua/plugins/auto-save.lua
2026-05-17 14:47:30 +03:00

43 lines
1.6 KiB
Lua

return {
'okuuva/auto-save.nvim',
cmd = 'ASToggle',
event = { 'InsertLeave', 'TextChanged' },
opts = function()
-- Disable autoformat between automatic saves
vim.api.nvim_create_autocmd('User', {
pattern = 'AutoSaveWritePre',
group = vim.api.nvim_create_augroup('autosave-pre', { clear = true }),
callback = function(opts)
local bufnr = opts.data.saved_buffer
vim.b[bufnr].disable_autoformat = true
end,
})
vim.api.nvim_create_autocmd('User', {
pattern = 'AutoSaveWritePost',
group = vim.api.nvim_create_augroup('autosave-post', { clear = true }),
callback = function(opts)
local bufnr = opts.data.saved_buffer
vim.b[bufnr].disable_autoformat = false
end,
})
return {
-- execution_message = { enabled = false }, removed
condition = function(buf)
-- TODO: oil issues might be bcz of autosaving?
-- Maybe I should exclude Oil ft?
-- Might be unrelated tho
-- Oil error is "cannot save, action already in progress"
local buftype = vim.fn.getbufvar(buf, '&buftype')
local filetype = vim.bo[buf].filetype
-- Don't autosave special buffers or Oil buffers
local result = buftype == '' and filetype ~= 'oil' and filetype ~= 'hyprlang' and filetype ~= 'build_terminal'
return result
end,
}
end,
}