local function makeEnv(cond) return { active = cond, not_active = function() return not cond() end, unless = function(f) if not cond() then f() end end, when = function(f) if cond() then f() end end, } end return { vscode = makeEnv(function() return vim.g.vscode ~= nil end), neovide = makeEnv(function() return vim.g.neovide ~= nil or os.getenv("INSIDE_NEOVIDE") == "1" end), firenvim = makeEnv(function() return vim.g.started_by_firenvim ~= nil end), _and = function(a, b) return makeEnv(function() return a.active() and b.active() end) end, _or = function(a, b) return makeEnv(function() return a.active() or b.active() end) end }