From 23df368b00bda0ed4a01fac92f7ad80998c1d34a Mon Sep 17 00:00:00 2001 From: kylo252 <59826753+kylo252@users.noreply.github.com> Date: Sat, 21 May 2022 16:48:47 +0200 Subject: refactor: load the default options once (#2592) BREAKING CHANGE: modifying the default options for keymaps and autocmds is now done by overwriting them, since they won't be loaded into the global `lvim` table anymore * refactor: use the lua-commands api * refactor!: use the lua-autocmds api * fix(settings): let neovim handle spellfile * feat: add log:set_log_level() * chore: update examples * chore: add deprecation notice for custom_groups --- lua/lvim/keymappings.lua | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) (limited to 'lua/lvim/keymappings.lua') diff --git a/lua/lvim/keymappings.lua b/lua/lvim/keymappings.lua index 62a351ee..8c91b761 100644 --- a/lua/lvim/keymappings.lua +++ b/lua/lvim/keymappings.lua @@ -21,8 +21,15 @@ local mode_adapters = { command_mode = "c", } +---@class Keys +---@field insert_mode table +---@field normal_mode table +---@field terminal_mode table +---@field visual_mode table +---@field visual_block_mode table +---@field command_mode table + local defaults = { - ---@usage change or add keymappings for insert mode insert_mode = { -- 'jk' for quitting insert mode ["jk"] = "", @@ -41,7 +48,6 @@ local defaults = { [""] = "l", }, - ---@usage change or add keymappings for normal mode normal_mode = { -- Better window movement [""] = "h", @@ -69,7 +75,6 @@ local defaults = { [""] = ":call QuickFixToggle()", }, - ---@usage change or add keymappings for terminal mode term_mode = { -- Terminal window navigation [""] = "h", @@ -78,7 +83,6 @@ local defaults = { [""] = "l", }, - ---@usage change or add keymappings for visual mode visual_mode = { -- Better indenting ["<"] = ""] = ":m '<-2gv-gv", }, - ---@usage change or add keymappings for command mode command_mode = { -- navigate tab completion with and -- runs conditionally @@ -116,16 +118,6 @@ if vim.fn.has "mac" == 1 then Log:debug "Activated mac keymappings" end --- Append key mappings to lunarvim's defaults for a given mode --- @param keymaps The table of key mappings containing a list per mode (normal_mode, insert_mode, ..) -function M.append_to_defaults(keymaps) - for mode, mappings in pairs(keymaps) do - for k, v in pairs(mappings) do - defaults[mode][k] = v - end - end -end - -- Unsets all keybindings defined in keymaps -- @param keymaps The table of key mappings containing a list per mode (normal_mode, insert_mode, ..) function M.clear(keymaps) @@ -135,7 +127,7 @@ function M.clear(keymaps) for key, _ in pairs(mappings) do -- some plugins may override default bindings that the user hasn't manually overridden if default[mode][key] ~= nil or (default[translated_mode] ~= nil and default[translated_mode][key] ~= nil) then - pcall(vim.api.nvim_del_keymap, translated_mode, key) + pcall(vim.keymap.del, translated_mode, key) end end end @@ -152,7 +144,7 @@ function M.set_keymaps(mode, key, val) val = val[1] end if val then - vim.api.nvim_set_keymap(mode, key, val, opt) + vim.keymap.set(mode, key, val, opt) else pcall(vim.api.nvim_del_keymap, mode, key) end @@ -180,9 +172,11 @@ end -- Load the default keymappings function M.load_defaults() M.load(M.get_defaults()) - lvim.keys = {} + lvim.keys = lvim.keys or {} for idx, _ in pairs(defaults) do - lvim.keys[idx] = {} + if not lvim.keys[idx] then + lvim.keys[idx] = {} + end end end -- cgit v1.2.3