From 0a7a64073c8089c7b330cf98a63705645d2c995e Mon Sep 17 00:00:00 2001 From: Nicholas Ciechanowski Date: Fri, 11 Oct 2024 17:00:46 +1100 Subject: [PATCH] feat(auto-save-nvim): swap to okuuva repo --- .../editing-support/auto-save-nvim/README.md | 2 +- .../editing-support/auto-save-nvim/init.lua | 64 +++++++++++-------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/lua/astrocommunity/editing-support/auto-save-nvim/README.md b/lua/astrocommunity/editing-support/auto-save-nvim/README.md index 8974f6780..b5e5a57c8 100644 --- a/lua/astrocommunity/editing-support/auto-save-nvim/README.md +++ b/lua/astrocommunity/editing-support/auto-save-nvim/README.md @@ -2,4 +2,4 @@ 🧶 Automatically save your changes in NeoVim -**Repository:** +**Repository:** diff --git a/lua/astrocommunity/editing-support/auto-save-nvim/init.lua b/lua/astrocommunity/editing-support/auto-save-nvim/init.lua index 4ac684f8a..33fdec3b9 100644 --- a/lua/astrocommunity/editing-support/auto-save-nvim/init.lua +++ b/lua/astrocommunity/editing-support/auto-save-nvim/init.lua @@ -1,30 +1,40 @@ +local group = vim.api.nvim_create_augroup("autosave", {}) + +-- Disable autoformat before saving +vim.api.nvim_create_autocmd("User", { + pattern = "AutoSaveWritePre", + group = group, + callback = function() + -- save global autoformat status + vim.g.OLD_AUTOFORMAT = vim.g.autoformat + vim.g.autoformat = false + vim.g.OLD_AUTOFORMAT_BUFFERS = {} + -- disable all manually enabled buffers + for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do + if vim.b[bufnr].autoformat then + table.insert(vim.g.OLD_AUTOFORMAT_BUFFERS, bufnr) + vim.b[bufnr].autoformat = false + end + end + end, +}) + +-- Re-enable autoformat after saving +vim.api.nvim_create_autocmd("User", { + pattern = "AutoSaveWritePost", + group = group, + callback = function() + -- restore global autoformat status + vim.g.autoformat = vim.g.OLD_AUTOFORMAT + -- re-enable all manually enabled buffers + for _, bufnr in ipairs(vim.g.OLD_AUTOFORMAT_BUFFERS or {}) do + vim.b[bufnr].autoformat = true + end + end, +}) + return { - "Pocco81/auto-save.nvim", + "okuuva/auto-save.nvim", event = { "User AstroFile", "InsertEnter" }, - opts = { - callbacks = { - before_saving = function() - -- save global autoformat status - vim.g.OLD_AUTOFORMAT = vim.g.autoformat_enabled - - vim.g.autoformat_enabled = false - vim.g.OLD_AUTOFORMAT_BUFFERS = {} - -- disable all manually enabled buffers - for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do - if vim.b[bufnr].autoformat_enabled then - table.insert(vim.g.OLD_BUFFER_AUTOFORMATS, bufnr) - vim.b[bufnr].autoformat_enabled = false - end - end - end, - after_saving = function() - -- restore global autoformat status - vim.g.autoformat_enabled = vim.g.OLD_AUTOFORMAT - -- reenable all manually enabled buffers - for _, bufnr in ipairs(vim.g.OLD_AUTOFORMAT_BUFFERS or {}) do - vim.b[bufnr].autoformat_enabled = true - end - end, - }, - }, + opts = {}, }