{
  // 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.mySystem.${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.myHome.programs.${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"
  }
}