From 6f6cbc394d2a7e64964b6067a2f42d2e6a07824e Mon Sep 17 00:00:00 2001 From: Christian Chiarulli Date: Mon, 17 Oct 2022 08:06:12 -0400 Subject: [PATCH] feat(config): allow disabling reload-on-save (#3261) --- lua/lvim/config/defaults.lua | 1 + lua/lvim/config/init.lua | 4 ++++ lua/lvim/core/autocmds.lua | 35 +++++++++++++++++------------------ 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/lua/lvim/config/defaults.lua b/lua/lvim/config/defaults.lua index 7e111429..1bd57b94 100644 --- a/lua/lvim/config/defaults.lua +++ b/lua/lvim/config/defaults.lua @@ -1,5 +1,6 @@ return { leader = "space", + reload_config_on_save = true, colorscheme = "tokyonight", transparent_window = false, format_on_save = { diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua index ea36a9a0..59722673 100644 --- a/lua/lvim/config/init.lua +++ b/lua/lvim/config/init.lua @@ -139,6 +139,10 @@ function M:load(config_path) if lvim.transparent_window then autocmds.enable_transparent_mode() end + + if lvim.reload_config_on_save then + autocmds.enable_reload_config_on_save() + end end --- Override the configuration with a user provided one diff --git a/lua/lvim/core/autocmds.lua b/lua/lvim/core/autocmds.lua index 0e6b4cd7..ae10d552 100644 --- a/lua/lvim/core/autocmds.lua +++ b/lua/lvim/core/autocmds.lua @@ -3,13 +3,6 @@ local Log = require "lvim.core.log" --- Load the default set of autogroups and autocommands. function M.load_defaults() - local user_config_file = require("lvim.config"):get_user_config_path() - - if vim.loop.os_uname().version:match "Windows" then - -- autocmds require forward slashes even on windows - user_config_file = user_config_file:gsub("\\", "/") - end - vim.api.nvim_create_autocmd({ "FileType" }, { pattern = { "Jaq", @@ -41,17 +34,6 @@ function M.load_defaults() end, }, }, - { - "BufWritePost", - { - group = "_general_settings", - pattern = user_config_file, - desc = "Trigger LvimReload on saving " .. vim.fn.expand "%:~", - callback = function() - require("lvim.config"):reload() - end, - }, - }, { "FileType", { @@ -181,6 +163,23 @@ function M.toggle_format_on_save() end end +function M.enable_reload_config_on_save() + local user_config_file = require("lvim.config"):get_user_config_path() + + if vim.loop.os_uname().version:match "Windows" then + -- autocmds require forward slashes even on windows + user_config_file = user_config_file:gsub("\\", "/") + end + vim.api.nvim_create_autocmd("BufWritePost", { + group = "_general_settings", + pattern = user_config_file, + desc = "Trigger LvimReload on saving config.lua", + callback = function() + require("lvim.config"):reload() + end, + }) +end + function M.enable_transparent_mode() vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*",