local M = {} M.defaults = { globals = { project_root = "~/Projects", keybinds = { ["po"] = "PolydevManager", } }, terminal = { preset = "max", border = true, } } M.defaults.rust = { project_root = M.defaults.globals.project_root .. "/Rust", keybinds = { ["pr"] = "RustRun", }, } M.defaults.java = { project_root = M.defaults.globals.project_root .. "/Java", keybinds = { ["pr"] = "JavaRun", }, } M.defaults.python = { project_root = M.defaults.globals.project_root .. "/Python", keybinds = { ["pr"] = "PythonRun", ["pb"] = "PythonPip", }, } M.defaults.lua = { project_root = M.defaults.globals.project_root .. "/Lua", keybinds = { ["pr"] = "LuaRun", }, } M.defaults.c = { project_root = M.defaults.globals.project_root .. "/C", keybinds = { ["pr"] = "CRun", }, build_attributes = "", } M.defaults.cpp = { project_root = M.defaults.globals.project_root .. "/CPP", keybinds = { ["pr"] = "CppRun", }, build_attributes = "", } M.defaults.html = { project_root = M.defaults.globals.project_root .. "/Html", } M.user_config = {} function M.setup(user_opts) M.user_config = vim.tbl_deep_extend("force", {}, M.defaults, user_opts or {}) end function M.get(lang) return M.user_config[lang] or {} end return M