From 0ea1cfebb6c5fd3c9797cef187573c4dbf05fad3 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 6 May 2025 08:00:00 +0100 Subject: [PATCH] Add Nix snippets --- .../config/lua/opdavies/snippets/nix.lua | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 modules/home-manager/coding/neovim/config/lua/opdavies/snippets/nix.lua diff --git a/modules/home-manager/coding/neovim/config/lua/opdavies/snippets/nix.lua b/modules/home-manager/coding/neovim/config/lua/opdavies/snippets/nix.lua new file mode 100644 index 00000000..351bc56a --- /dev/null +++ b/modules/home-manager/coding/neovim/config/lua/opdavies/snippets/nix.lua @@ -0,0 +1,63 @@ +require("luasnip.session.snippet_collection").clear_snippets "nix" + +local ls = require "luasnip" + +local i = ls.insert_node +local s = ls.snippet + +local fmta = require("luasnip.extras.fmt").fmta +local rep = require("luasnip.extras").rep + +ls.add_snippets("nix", { + s("homepackages", fmta("home.packages = with pkgs; [ <> ];", i(0))), + + s( + "imports", + fmta( + [[ + { + imports = [ + <> + ]; + } + ]], + { i(0) } + ) + ), + + s( + "newmodule", + fmta( + [[ + { config, lib, ... }: + + with lib; + + let + name = "<>"; + cfg = config.<>.<>; + in + { + options.<>.<> = { + enable = mkEnableOption "Enable ${name}";<> + }; + + config = mkIf cfg.enable { + <> + }; + } + ]], + { + i(1), + i(2), + rep(1), + rep(2), + rep(1), + i(3), + i(0), + } + ) + ), + + s("systempackages", fmta("environment.systemPackages = with pkgs; [<>];", i(0))), +})