48 lines
1.4 KiB
Lua
48 lines
1.4 KiB
Lua
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,
|
|
}
|