summaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins/autosave.lua
diff options
context:
space:
mode:
Diffstat (limited to 'config/nvim/lua/plugins/autosave.lua')
-rw-r--r--config/nvim/lua/plugins/autosave.lua38
1 files changed, 7 insertions, 31 deletions
diff --git a/config/nvim/lua/plugins/autosave.lua b/config/nvim/lua/plugins/autosave.lua
index 069afbf..f6f280d 100644
--- a/config/nvim/lua/plugins/autosave.lua
+++ b/config/nvim/lua/plugins/autosave.lua
@@ -1,18 +1,12 @@
return {
"okuuva/auto-save.nvim",
enabled = true,
- cmd = "ASToggle", -- optional for lazy loading on command
- event = { "InsertLeave", "TextChanged" }, -- optional for lazy loading on trigger events
+ cmd = "ASToggle",
+ event = { "InsertLeave", "TextChanged" },
opts = {
- enabled = true, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
- trigger_events = { -- See :h events
- -- -- vim events that trigger an immediate save
- -- -- I'm disabling this, as it's autosaving when I leave the buffer and
- -- -- that's autoformatting stuff if on insert mode and following a tutorial
- -- -- Re-enabling this to only save if NOT in insert mode in the condition below
- -- immediate_save = { nil },
- immediate_save = { "BufLeave", "FocusLost", "QuitPre", "VimSuspend" }, -- vim events that trigger an immediate save
- -- vim events that trigger a deferred save (saves after `debounce_delay`)
+ enabled = true,
+ trigger_events = {
+ immediate_save = { "BufLeave", "FocusLost", "QuitPre", "VimSuspend" },
defer_save = {
"InsertLeave",
"TextChanged",
@@ -29,28 +23,12 @@ return {
{ "User", pattern = "SnacksPickerInputEnter" },
},
},
- -- function that takes the buffer handle and determines whether to save the current buffer or not
- -- return true: if buffer is ok to be saved
- -- return false: if it's not ok to be saved
- -- if set to `nil` then no specific condition is applied
condition = function(buf)
- -- Do not save when I'm in insert mode
- -- Do NOT ADD VISUAL MODE HERE or the cancel_deferred_save wont' work
- -- If I STAY in insert mode and switch to another app, like YouTube to
- -- take notes, the BufLeave or FocusLost immediate_save will be ignored
- -- and the save will not be triggered
local mode = vim.fn.mode()
if mode == "i" then
return false
end
- -- Disable auto-save for the harpoon plugin, otherwise it just opens and closes
- -- https://github.com/ThePrimeagen/harpoon/issues/434
- --
- -- don't save for `sql` file types
- -- I do this so when working with dadbod the file is not saved every time
- -- I make a change, and a SQL query executed
- -- Run `:set filetype?` on a dadbod query to make sure of the filetype
local filetype = vim.bo[buf].filetype
if filetype == "harpoon" or filetype == "mysql" then
return false
@@ -58,12 +36,10 @@ return {
return true
end,
- write_all_buffers = true, -- write all buffers when the current one meets `condition`
+ write_all_buffers = true,
noautocmd = false,
- lockmarks = false, -- lock marks when saving, see `:h lockmarks` for more details
- -- delay after which a pending save is executed (default 1000)
+ lockmarks = false,
debounce_delay = 2000,
- -- log debug messages to 'auto-save.log' file in neovim cache directory, set to `true` to enable
debug = false,
},
}