local opts = {} hilbish.opts = {} setmetatable(hilbish.opts, { __newindex = function(_, k, v) if opts[k] == nil then error(string.format('opt %s does not exist', k)) end opts[k] = v end, __index = function(_, k) return opts[k] end }) local function setupOpt(name, default) opts[name] = default require('nature.opts.' .. name) end local defaultOpts = { autocd = false, history = true } for optsName, default in pairs(defaultOpts) do setupOpt(optsName, default) end