marleyvim/lua/snippets/nix.lua

142 lines
2.6 KiB
Lua

local ls = require 'luasnip'
local s = ls.snippet
local i = ls.insert_node
local f = ls.function_node
local fmta = require('luasnip.extras.fmt').fmta
local rep = require('luasnip.extras').rep
local fill = require('snippets.helpers').fill
return {
s({ trig = 'dc', desc = 'divider comment' }, f(fill, {}, { user_args = { '#%- ' } })),
s(
{ trig = 'mexpr', desc = 'Basic module expression' },
fmta(
[[
{ <>... }:
{
<>
}
]],
{ i(1), i(0) }
)
),
s(
{ trig = 'sov', desc = 'Snowfall lib overlay' },
fmta(
[[
<>: final: prev: {
<>
}
]],
{ i(1, '_'), i(0) }
)
),
s(
{ trig = 'sovi', desc = 'Snowfall lib overlay pulling from inputs' },
fmta(
[[
{inputs, ...}: final: prev: {
<> = inputs.<>.<>."${prev.system}".<>;
}
]],
{ i(1, 'pkg'), i(2, 'input'), i(3, 'packages'), i(4, 'default') }
)
),
s(
{ trig = 'sovc', desc = 'Snowfall lib overlay pulling from channels' },
fmta(
[[
{channels, ...}: final: prev: {
inherit (channels.<>) <>;
}
]],
{ i(1, 'unstable'), i(2, 'pkg') }
)
),
s(
{ trig = 'ovr', desc = 'Override' },
fmta(
[[
<> = prev.<>.override {
<>
};
]],
{ i(1, 'pkg'), rep(1), i(0) }
)
),
s(
{ trig = 'ovra', desc = 'OverrideAttrs' },
fmta(
[[
<> = prev.<>.overrideAttrs (old: {
<>
});
]],
{ i(1, 'pkg'), rep(1), i(0) }
)
),
s(
{ trig = 'hpkg', desc = 'home.packages list' },
fmta(
[[
home.packages = with pkgs; [
<>
];<>
]],
{ i(1), i(0) }
)
),
s(
{ trig = 'ospkg', desc = 'NixOS environment.systemPackages list' },
fmta(
[[
environment.systemPackages = with pkgs; [
<>
];<>
]],
{ i(1), i(0) }
)
),
s(
{ trig = 'smod', desc = 'Snowfall lib module' },
fmta(
[[
{
lib,
config,<>
...
}:
let<>
cfg = config.marleyos.<>.<>;
in
{
options.marleyos.<>.<>.enable = mkEnableOption "<>";
config = lib.mkIf cfg.enable {
<>
};
}
]],
{
i(1), -- extra args
i(2, { '', ' inherit (lib.marleyos) enabled;' }),
i(3), -- group
i(4), -- mod
rep(3), -- group
rep(4), -- mod
rep(4), -- mod
i(0), -- end
}
)
),
}