summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-11-04 16:50:10 +0100
committerkylo252 <[email protected]>2021-11-04 16:50:10 +0100
commit8e834b19d78bbaddc1dcf71f4c04672ff351cc57 (patch)
tree92747eb526b9c9c8fbd74861e041698591f52290
parentb04bb9b79864e846af8936d6cee6ced0dd0bf93e (diff)
parente05ced8ec35b8b8d6862c90b8fc7c10540ed34e2 (diff)
Merge branch 'rolling'
-rw-r--r--init.lua2
-rw-r--r--lua/lvim/config/init.lua20
-rw-r--r--lua/lvim/core/builtins/init.lua1
-rw-r--r--lua/lvim/core/treesitter.lua6
-rw-r--r--lua/lvim/keymappings.lua20
-rwxr-xr-xutils/installer/install.sh5
6 files changed, 30 insertions, 24 deletions
diff --git a/init.lua b/init.lua
index 80fb68a6..3a1457e1 100644
--- a/init.lua
+++ b/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()
diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua
index 1256e236..1dc83c1e 100644
--- a/lua/lvim/config/init.lua
+++ b/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"
diff --git a/lua/lvim/core/builtins/init.lua b/lua/lvim/core/builtins/init.lua
index 315deed3..cd47b638 100644
--- a/lua/lvim/core/builtins/init.lua
+++ b/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",
diff --git a/lua/lvim/core/treesitter.lua b/lua/lvim/core/treesitter.lua
index ce99deba..9c6c555e 100644
--- a/lua/lvim/core/treesitter.lua
+++ b/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)
diff --git a/lua/lvim/keymappings.lua b/lua/lvim/keymappings.lua
index be8ebe96..a57b2d36 100644
--- a/lua/lvim/keymappings.lua
+++ b/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
diff --git a/utils/installer/install.sh b/utils/installer/install.sh
index 2e4fd55e..e7631999 100755
--- a/utils/installer/install.sh
+++ b/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() {