diff options
Diffstat (limited to 'config/nvim/lua/plugins/autosave.lua')
| -rw-r--r-- | config/nvim/lua/plugins/autosave.lua | 38 |
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, }, } |
