return { "okuuva/auto-save.nvim", version = "^1.0.0", -- see https://devhints.io/semver, alternatively use '*' to use the latest tagged release cmd = "ASToggle", -- optional for lazy loading on command event = { "InsertLeave", "TextChanged" }, opts = {}, config = function(opts) require("auto-save").setup({ enabled = true, trigger_events = { -- See :h events immediate_save = { "BufLeave", "FocusLost", "QuitPre", "VimSuspend" }, -- vim events that trigger an immediate save defer_save = { "InsertLeave" }, -- vim events that trigger a deferred save (saves after `debounce_delay`) cancel_deferred_save = { "InsertEnter" }, -- vim events that cancel a pending deferred save }, debounce_delay = 1000, noautocmd = true, }) local group = vim.api.nvim_create_augroup("autosave", {}) vim.api.nvim_create_autocmd("User", { pattern = "AutoSaveWritePre", group = group, callback = function(opts) if opts.data.saved_buffer ~= nil then local filename = vim.fn.expand("%:t") print("Saved '" .. filename .. "' at " .. vim.fn.strftime("%H:%M:%S")) end end, }) vim.api.nvim_create_autocmd("User", { pattern = "AutoSaveEnable", group = group, callback = function(opts) print("AutoSave enabled") end, }) vim.api.nvim_create_autocmd("User", { pattern = "AutoSaveDisable", group = group, callback = function(opts) print("AutoSave disabled") end, }) end, }