diff options
| author | Christian Chiarulli <[email protected]> | 2021-11-12 21:21:43 +0000 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2021-11-12 21:21:43 +0000 | 
| commit | 3a2d62ed2510ca05eb6ea87240a86df82338f5aa (patch) | |
| tree | a58cc0e1318977b045c476c6d355d1c0abc6ec19 /lua/lvim | |
| parent | a57e34a85edc8fc15a5c06640a15b0a0fec89d91 (diff) | |
feat: last updates before 1.0.0 (#1953)
Diffstat (limited to 'lua/lvim')
| -rw-r--r-- | lua/lvim/config/init.lua | 10 | ||||
| -rw-r--r-- | lua/lvim/core/nvimtree.lua | 2 | ||||
| -rw-r--r-- | lua/lvim/keymappings.lua | 26 | 
3 files changed, 32 insertions, 6 deletions
| diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua index c932c456..20bc4c81 100644 --- a/lua/lvim/config/init.lua +++ b/lua/lvim/config/init.lua @@ -26,15 +26,14 @@ function M:init()      lvim.database = { save_location = utils.join_paths(home_dir, ".config", "lunarvim_db"), auto_execute = 1 }    end +  lvim.keys = apply_defaults(lvim.keys, require("lvim.keymappings").get_defaults()) +    local builtins = require "lvim.core.builtins"    builtins.config { user_config_file = user_config_file }    local settings = require "lvim.config.settings"    settings.load_options() -  local default_keymaps = require("lvim.keymappings").get_defaults() -  lvim.keys = apply_defaults(lvim.keys, default_keymaps) -    local autocmds = require "lvim.core.autocmds"    lvim.autocommands = apply_defaults(lvim.autocommands, autocmds.load_augroups()) @@ -89,6 +88,9 @@ function M:load(config_path)    autocmds.define_augroups(lvim.autocommands)    vim.g.mapleader = (lvim.leader == "space" and " ") or lvim.leader + +  local default_keymaps = require("lvim.keymappings").get_defaults() +  lvim.keys = apply_defaults(lvim.keys, default_keymaps)    require("lvim.keymappings").load(lvim.keys)    local settings = require "lvim.config.settings" @@ -98,6 +100,8 @@ end  --- Override the configuration with a user provided one  -- @param config_path The path to the configuration overrides  function M:reload() +  require("lvim.keymappings").clear(lvim.keys) +    local lvim_modules = {}    for module, _ in pairs(package.loaded) do      if module:match "lvim.core" then diff --git a/lua/lvim/core/nvimtree.lua b/lua/lvim/core/nvimtree.lua index d9e6fb5d..893ddffc 100644 --- a/lua/lvim/core/nvimtree.lua +++ b/lua/lvim/core/nvimtree.lua @@ -24,7 +24,7 @@ function M.config()        view = {          width = 30,          side = "left", -        auto_resize = false, +        auto_resize = true,          mappings = {            custom_only = false,          }, diff --git a/lua/lvim/keymappings.lua b/lua/lvim/keymappings.lua index a57b2d36..b05d1754 100644 --- a/lua/lvim/keymappings.lua +++ b/lua/lvim/keymappings.lua @@ -24,13 +24,31 @@ local mode_adapters = {  -- 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) +  local default = M.get_defaults() +  lvim.keys = lvim.keys or default    for mode, mappings in pairs(keymaps) do -    for k, v in ipairs(mappings) do +    lvim.keys[mode] = lvim.keys[mode] or default[mode] +    for k, v in pairs(mappings) do        lvim.keys[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) +  local default = M.get_defaults() +  for mode, mappings in pairs(keymaps) do +    local translated_mode = mode_adapters[mode] and mode_adapters[mode] or mode +    for key, _ in pairs(mappings) do +      -- some plugins may override default bindings that the user hasn't manually overriden +      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) +      end +    end +  end +end +  -- Set key mappings individually  -- @param mode The keymap mode, can be one of the keys of mode_adapters  -- @param key The key of keymap @@ -41,7 +59,11 @@ function M.set_keymaps(mode, key, val)      opt = val[2]      val = val[1]    end -  vim.api.nvim_set_keymap(mode, key, val, opt) +  if val then +    vim.api.nvim_set_keymap(mode, key, val, opt) +  else +    pcall(vim.api.nvim_del_keymap, mode, key) +  end  end  -- Load key mappings for a given mode | 
