Jelajahi Sumber

Merge branch 'rolling'

kylo252 3 tahun lalu
induk
melakukan
8e834b19d7

+ 0 - 2
init.lua

@@ -21,6 +21,4 @@ vim.cmd("colorscheme " .. lvim.colorscheme)
 local commands = require "lvim.core.commands"
 commands.load(commands.defaults)
 
-require("lvim.keymappings").setup()
-
 require("lvim.lsp").setup()

+ 15 - 5
lua/lvim/config/init.lua

@@ -5,6 +5,11 @@ local M = {}
 local user_config_dir = get_config_dir()
 local user_config_file = utils.join_paths(user_config_dir, "config.lua")
 
+local function apply_defaults(configs, defaults)
+  configs = configs or {}
+  return vim.tbl_deep_extend("keep", configs, defaults)
+end
+
 ---Get the full path to the user configuration file
 ---@return string
 function M:get_user_config_path()
@@ -27,11 +32,14 @@ function M:init()
   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 = autocmds.load_augroups()
+  lvim.autocommands = apply_defaults(lvim.autocommands, autocmds.load_augroups())
 
   local lvim_lsp_config = require "lvim.lsp.config"
-  lvim.lsp = vim.deepcopy(lvim_lsp_config)
+  lvim.lsp = apply_defaults(lvim.lsp, vim.deepcopy(lvim_lsp_config))
 
   local supported_languages = require "lvim.config.supported_languages"
   require("lvim.lsp.manager").init_defaults(supported_languages)
@@ -80,6 +88,9 @@ function M:load(config_path)
 
   autocmds.define_augroups(lvim.autocommands)
 
+  vim.g.mapleader = (lvim.leader == "space" and " ") or lvim.leader
+  require("lvim.keymappings").load(lvim.keys)
+
   local settings = require "lvim.config.settings"
   settings.load_commands()
 end
@@ -89,8 +100,8 @@ end
 function M:reload()
   local lvim_modules = {}
   for module, _ in pairs(package.loaded) do
-    if module:match "lvim" then
-      package.loaded.module = nil
+    if module:match "lvim.core" then
+      package.loaded[module] = nil
       table.insert(lvim_modules, module)
     end
   end
@@ -98,7 +109,6 @@ function M:reload()
   M:init()
   M:load()
 
-  require("lvim.keymappings").setup() -- this should be done before loading the plugins
   local plugins = require "lvim.plugins"
   utils.toggle_autoformat()
   local plugin_loader = require "lvim.plugin-loader"

+ 0 - 1
lua/lvim/core/builtins/init.lua

@@ -1,7 +1,6 @@
 local M = {}
 
 local builtins = {
-  "lvim.keymappings",
   "lvim.core.which-key",
   "lvim.core.gitsigns",
   "lvim.core.cmp",

+ 5 - 1
lua/lvim/core/treesitter.lua

@@ -71,7 +71,11 @@ M.setup = function()
     return
   end
 
-  treesitter_configs.setup(lvim.builtin.treesitter)
+  local opts = vim.deepcopy(lvim.builtin.treesitter)
+
+  -- avoid running any installers in headless mode since it's harder to detect failures
+  opts.ensure_installed = #vim.api.nvim_list_uis() == 0 and {} or opts.ensure_installed
+  treesitter_configs.setup(opts)
 
   if lvim.builtin.treesitter.on_config_done then
     lvim.builtin.treesitter.on_config_done(treesitter_configs)

+ 9 - 11
lua/lvim/keymappings.lua

@@ -57,13 +57,14 @@ end
 -- Load key mappings for all provided modes
 -- @param keymaps A list of key mappings for each mode
 function M.load(keymaps)
+  keymaps = keymaps or {}
   for mode, mapping in pairs(keymaps) do
     M.load_mode(mode, mapping)
   end
 end
 
-function M.config()
-  lvim.keys = {
+function M.get_defaults()
+  local keys = {
     ---@usage change or add keymappings for insert mode
     insert_mode = {
       -- 'jk' for quitting insert mode
@@ -151,12 +152,14 @@ function M.config()
   }
 
   if vim.fn.has "mac" == 1 then
-    lvim.keys.normal_mode["<A-Up>"] = lvim.keys.normal_mode["<C-Up>"]
-    lvim.keys.normal_mode["<A-Down>"] = lvim.keys.normal_mode["<C-Down>"]
-    lvim.keys.normal_mode["<A-Left>"] = lvim.keys.normal_mode["<C-Left>"]
-    lvim.keys.normal_mode["<A-Right>"] = lvim.keys.normal_mode["<C-Right>"]
+    keys.normal_mode["<A-Up>"] = keys.normal_mode["<C-Up>"]
+    keys.normal_mode["<A-Down>"] = keys.normal_mode["<C-Down>"]
+    keys.normal_mode["<A-Left>"] = keys.normal_mode["<C-Left>"]
+    keys.normal_mode["<A-Right>"] = keys.normal_mode["<C-Right>"]
     Log:debug "Activated mac keymappings"
   end
+
+  return keys
 end
 
 function M.print(mode)
@@ -168,9 +171,4 @@ function M.print(mode)
   end
 end
 
-function M.setup()
-  vim.g.mapleader = (lvim.leader == "space" and " ") or lvim.leader
-  M.load(lvim.keys)
-end
-
 return M

+ 1 - 4
utils/installer/install.sh

@@ -353,16 +353,13 @@ function setup_lvim() {
 
   echo "Preparing Packer setup"
 
-  rm -f "$LUNARVIM_CONFIG_DIR/config.lua"
-  touch "$LUNARVIM_CONFIG_DIR/config.lua"
+  cp "$LUNARVIM_RUNTIME_DIR/lvim/utils/installer/config.example.lua" "$LUNARVIM_CONFIG_DIR/config.lua"
 
   "$INSTALL_PREFIX/bin/lvim" --headless \
     -c 'autocmd User PackerComplete quitall' \
     -c 'PackerSync'
 
   echo "Packer setup complete"
-
-  cp "$LUNARVIM_RUNTIME_DIR/lvim/utils/installer/config.example.lua" "$LUNARVIM_CONFIG_DIR/config.lua"
 }
 
 function update_lvim() {