diff --git a/Makefile b/Makefile deleted file mode 100644 index a89ec6d..0000000 --- a/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -SHELL:=/usr/bin/env bash - -LOG_INFO=$(shell date +"%H:%M:%S") \e[0;34mINFO\e[0m -LOG_ERROR=$(shell date +"%H:%M:%S") \e[1;31mERROR\e[0m -LOG_WARNING=$(shell date +"%H:%M:%S") \e[0;33mWARNING\e[0m -LOG_SUCCESS=$(shell date +"%H:%M:%S") \e[0;32mSUCCESS\e[0m -GIT_ROOT=$(shell git rev-parse --show-toplevel) - -.DEFAULT_GOAL := load - -load: - @echo -e "$(LOG_INFO) Loading dev env..." - @echo -e "$(LOG_WARNING) Opening $(GIT_ROOT)" - nvim --cmd "set rtp+=$(GIT_ROOT)" diff --git a/README.md b/README.md index 6f45cad..7e0014e 100644 --- a/README.md +++ b/README.md @@ -65,10 +65,10 @@ use({ "okuuva/auto-save.nvim", tag = 'v1*', config = function() - require("auto-save").setup { + require("auto-save").setup({ -- your config goes here -- or just leave it empty :) - } + }) end, }) ``` @@ -78,10 +78,10 @@ use({ ```vim Plug 'okuuva/auto-save.nvim', { 'tag': 'v1*' } lua << EOF - require("auto-save").setup { + require("auto-save").setup({ -- your config goes here -- or just leave it empty :) - } + }) EOF ``` @@ -124,7 +124,7 @@ It is also possible to pass a pattern to a trigger event, if you only want to ex { trigger_events = { immediate_save = { - { "BufLeave", pattern = {"*.c", "*.h"} } + { "BufLeave", pattern = { "*.c", "*.h" } } } } } @@ -134,19 +134,18 @@ It is also possible to pass a pattern to a trigger event, if you only want to ex The `condition` field of the configuration allows the user to exclude **auto-save** from saving specific buffers. -Here is an example using a helper function from `auto-save.utils.data` that disables auto-save for specified file types: +Here is an example that disables auto-save for specified file types: ```lua { condition = function(buf) - local fn = vim.fn - local utils = require("auto-save.utils.data") + local filetype = vim.fn.getbufvar(buf, "&filetype") -- don't save for `sql` file types - if utils.not_in(fn.getbufvar(buf, "&filetype"), {'sql'}) then - return true + if vim.list_contains({ "sql" }, filetype) then + return false end - return false + return true end } ``` @@ -156,10 +155,8 @@ You may also exclude `special-buffers` see (`:h buftype` and `:h special-buffers ```lua { condition = function(buf) - local fn = vim.fn - -- don't save for special-buffers - if fn.getbufvar(buf, "&buftype") ~= '' then + if vim.fn.getbufvar(buf, "&buftype") ~= '' then return false end return true @@ -178,7 +175,7 @@ Besides running auto-save at startup (if you have `enabled = true` in your confi You may want to set up a key mapping for toggling: ```lua -vim.api.nvim_set_keymap("n", "n", ":ASToggle", {}) +vim.api.nvim_set_keymap("n", "n", "ASToggle", {}) ``` or as part of the `lazy.nvim` plugin spec: @@ -187,7 +184,7 @@ or as part of the `lazy.nvim` plugin spec: { "okuuva/auto-save.nvim", keys = { - { "n", ":ASToggle", desc = "Toggle auto-save" }, + { "n", "ASToggle", desc = "Toggle auto-save" }, }, ... }, @@ -216,12 +213,34 @@ vim.api.nvim_create_autocmd('User', { callback = function(opts) if opts.data.saved_buffer ~= nil then local filename = vim.api.nvim_buf_get_name(opts.data.saved_buffer) - print('AutoSave: saved ' .. filename .. ' at ' .. vim.fn.strftime('%H:%M:%S')) + vim.notify('AutoSave: saved ' .. filename .. ' at ' .. vim.fn.strftime('%H:%M:%S'), vim.log.levels.INFO) end end, }) ``` +Another example to print a message when enabling/disabling autosave: + +```lua +local group = vim.api.nvim_create_augroup('autosave', {}) + +vim.api.nvim_create_autocmd('User', { + pattern = 'AutoSaveEnable', + group = group, + callback = function(opts) + vim.notify('AutoSave enabled', vim.log.levels.INFO) + end, +}) + +vim.api.nvim_create_autocmd('User', { + pattern = 'AutoSaveDisable', + group = group, + callback = function(opts) + vim.notify('AutoSave disabled', vim.log.levels.INFO) + end, +}) +``` + If you want more Events, feel free to open an issue. ## 🤝 Contributing diff --git a/lua/auto-save/init.lua b/lua/auto-save/init.lua index 300f696..1ae6ec4 100644 --- a/lua/auto-save/init.lua +++ b/lua/auto-save/init.lua @@ -2,7 +2,6 @@ local M = {} --- @class Config local cnf = require("auto-save.config") -local echo = require("auto-save.utils.echo") local autocmds = require("auto-save.utils.autocommands") local api = vim.api @@ -155,10 +154,8 @@ end function M.toggle() if autosave_running then M.off() - echo("off") else M.on() - echo("on") end end diff --git a/lua/auto-save/utils/data.lua b/lua/auto-save/utils/data.lua index 8057565..fb91eb8 100644 --- a/lua/auto-save/utils/data.lua +++ b/lua/auto-save/utils/data.lua @@ -1,5 +1,7 @@ +--- @deprecated local M = {} +--- @deprecated function M.set_of(list) local set = {} for i = 1, #list do @@ -8,6 +10,7 @@ function M.set_of(list) return set end +--- @deprecated function M.not_in(var, arr) if M.set_of(arr)[var] == nil then return true diff --git a/lua/auto-save/utils/echo.lua b/lua/auto-save/utils/echo.lua deleted file mode 100644 index c6e03a2..0000000 --- a/lua/auto-save/utils/echo.lua +++ /dev/null @@ -1,25 +0,0 @@ -local TITLE = "auto-save" - -return function(msg, kind) - local has_notify_plugin = pcall(require, "notify") - local level = {} - - if kind == "error" then - level.log = vim.log.levels.ERROR - level.type = "error" - elseif kind == "warn" then - level.log = vim.log.levels.WARN - level.type = "error" - else - level.log = kind or vim.log.levels.INFO - level.type = "info" - end - - if has_notify_plugin then - vim.notify(msg, level.log, { - title = TITLE, - }) - else - vim.notify(("%s: %s"):format(TITLE, msg), level.log) - end -end