38 lines
1.0 KiB
Lua
38 lines
1.0 KiB
Lua
-- Leaders early so plugins see them
|
|
vim.g.mapleader = " "
|
|
vim.g.maplocalleader = " "
|
|
|
|
-- Bootstrap lazy.nvim (auto-install on first run)
|
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
if not vim.loop.fs_stat(lazypath) then
|
|
vim.fn.system({ "git", "clone", "--filter=blob:none",
|
|
"https://github.com/folke/lazy.nvim", lazypath })
|
|
end
|
|
vim.opt.rtp:prepend(lazypath)
|
|
|
|
-- Collect plugin specs
|
|
local plugins = {}
|
|
|
|
-- Core/global plugins
|
|
vim.list_extend(plugins, require("core.plugins"))
|
|
|
|
-- NOTE: In the future, add language packs here.
|
|
-- Example (loads only if the module exists):
|
|
-- local ok, c_plugins = pcall(require, "c.plugins")
|
|
-- if ok then vim.list_extend(plugins, c_plugins) end
|
|
|
|
local ok_c, c_plugins = pcall(require, "c.plugins")
|
|
if ok_c then vim.list_extend(plugins, c_plugins) end
|
|
|
|
-- Set up plugins
|
|
require("lazy").setup(plugins, {
|
|
ui = { border = "rounded" },
|
|
})
|
|
|
|
-- Editor config (numbers, etc.) and global keymaps
|
|
require("core.config")
|
|
require("core.keybindings")
|
|
|
|
require("c.config")
|
|
require("c.keybindings")
|