1
Fork 0
satellite/home/features/neovim/config/lua/my/helpers/env.lua
2023-12-02 00:59:18 +01:00

44 lines
881 B
Lua

local function makeEnv(cond)
return {
-- I am doing this to get type hints!
active = function()
return cond
end,
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 require("nix.env") == "neovide"
end),
firenvim = makeEnv(function()
return vim.g.started_by_firenvim ~= nil or require("nix.env") == "firenvim"
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,
}