Files
vern-nvim/lua/Polydev/init.lua
T
DarthMooMancer 734b60f145 feat: added ui.lua to cleanup init.lua
chore: optimized keybind setup in init.lua
2025-05-08 09:22:47 -04:00

43 lines
1.2 KiB
Lua

local M = {}
local loaded_languages = {}
local function load_language_module(lang, opts)
if loaded_languages[lang] then return true end
local ok, mod = pcall(require, "Polydev.languages." .. lang)
if not ok or type(mod.setup) ~= "function" then return false end
mod.setup(opts and opts[lang] or {})
loaded_languages[lang] = mod
return true
end
function M.setup(opts)
local opts = opts or {}
local config = require("Polydev.configs")
config.setup(opts)
require("Polydev.utils").setup(opts)
for lang, user_opts in pairs(opts) do
local default = config.defaults[lang] or {}
config.user_config[lang] = vim.tbl_deep_extend("force", default, user_opts)
end
vim.api.nvim_create_user_command("PolydevOpen", require("Polydev.ui").open_project_manager, {})
local keys = vim.tbl_deep_extend("force", {}, config.get("globals").keybinds, opts or {})
for key, command in pairs(keys) do
vim.keymap.set("n", key, ":PolydevOpen<CR>", { silent = true })
break
end
vim.api.nvim_create_autocmd("FileType", {
pattern = "*",
callback = function()
local filetype = vim.bo.filetype
load_language_module(filetype, opts)
end,
})
end
return M