add vs code snippets for nix modules

This commit is contained in:
Joseph Hanson 2024-09-05 15:25:16 -05:00
parent 3a1eb9d320
commit b69c3c32e0
Signed by: jahanson
SSH key fingerprint: SHA256:vy6dKBECV522aPAwklFM3ReKAVB086rT3oWwiuiFG7o

46
.vscode/nixmodule.code-snippets vendored Normal file
View file

@ -0,0 +1,46 @@
{
// If scope is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
"Nix Module with Enable Option": {
"scope": "nix",
"prefix": "nixmodule",
"body": [
"{ config, lib, pkgs, ... }:",
"let",
" cfg = config.mySystem.${1:moduleName};",
"in",
"{",
" options.${1:moduleName} = {",
" enable = lib.mkEnableOption \"${2:Description of the module}\";",
" };",
"",
" config = lib.mkIf cfg.enable {",
" $0",
" };",
"}"
],
"description": "Creates a blank Nix module with an enable option"
},
"Nix Home Manager Module with Enable Option": {
"scope": "nix",
"prefix": "nixmodule-homemanager",
"body": [
"{ config, lib, pkgs, ... }:",
"let",
" cfg = config.myHome.programs.${1:moduleName};",
"in",
"{",
" options.${1:moduleName} = {",
" enable = lib.mkEnableOption \"${2:Description of the module}\";",
" };",
"",
" config = lib.mkIf cfg.enable {",
" $0",
" };",
"}"
],
"description": "Creates a blank Nix module with an enable option"
}
}