LunarVim/init.lua
Luc Sinet 00b895d9e9
[Feature] Encapsulate config logic (#1338)
* Define core/builtins, streamline status_color interface

* Encapsulate configuration in its own module

* Add fallback to lv-config.lua

* Rectify settings loading order to allow overriding vim options

* Move default-config into config/ module

* replace uv.fs_stat with utils.is_file
2021-08-25 07:47:48 +02:00

60 lines
1.9 KiB
Lua

-- {{{ Bootstrap
local home_dir = vim.loop.os_homedir()
vim.opt.rtp:append(home_dir .. "/.local/share/lunarvim/lvim")
vim.opt.rtp:remove(home_dir .. "/.config/nvim")
vim.opt.rtp:remove(home_dir .. "/.config/nvim/after")
vim.opt.rtp:append(home_dir .. "/.config/lvim")
vim.opt.rtp:append(home_dir .. "/.config/lvim/after")
vim.opt.rtp:remove(home_dir .. "/.local/share/nvim/site")
vim.opt.rtp:remove(home_dir .. "/.local/share/nvim/site/after")
vim.opt.rtp:append(home_dir .. "/.local/share/lunarvim/site")
vim.opt.rtp:append(home_dir .. "/.local/share/lunarvim/site/after")
-- TODO: we need something like this: vim.opt.packpath = vim.opt.rtp
vim.cmd [[let &packpath = &runtimepath]]
-- }}}
local config = require "config"
config:init()
config:load()
local autocmds = require "core.autocmds"
autocmds.define_augroups(lvim.autocommands)
local plugins = require "plugins"
local plugin_loader = require("plugin-loader").init()
plugin_loader:load { plugins, lvim.plugins }
vim.g.colors_name = lvim.colorscheme -- Colorscheme must get called after plugins are loaded or it will break new installs.
vim.cmd("colorscheme " .. lvim.colorscheme)
local utils = require "utils"
utils.toggle_autoformat()
local commands = require "core.commands"
commands.load(commands.defaults)
require("lsp").config()
local null_status_ok, null_ls = pcall(require, "null-ls")
if null_status_ok then
null_ls.config {}
require("lspconfig")["null-ls"].setup(lvim.lsp.null_ls.setup)
end
local lsp_settings_status_ok, lsp_settings = pcall(require, "nlspsettings")
if lsp_settings_status_ok then
lsp_settings.setup {
config_home = os.getenv "HOME" .. "/.config/lvim/lsp-settings",
}
end
require("keymappings").setup()
-- TODO: these guys need to be in language files
-- if lvim.lang.emmet.active then
-- require "lsp.emmet-ls"
-- end
-- if lvim.lang.tailwindcss.active then
-- require "lsp.tailwind