dotfiles

.vsnip/nix.json [raw] [blame]
  1{
  2  "nix shell": {
  3    "prefix": ["nix-shell"],
  4    "body": [
  5      "{ pkgs ? import <nixpkgs> {} }:",
  6      "",
  7      "pkgs.mkShell {",
  8      "  packages = with pkgs; [",
  9      "    $0",
 10      "  ];",
 11      "}"
 12    ]
 13  },
 14  "python": {
 15    "prefix": ["nix-py"],
 16    "body": [
 17      "{ pkgs ? import <nixpkgs> {} }:",
 18      "",
 19      "pkgs.mkShell {",
 20      "  packages = with pkgs; [",
 21      "    python3",
 22      "    pyright",
 23      "    black",
 24      "    isort",
 25      "  ];",
 26      "}"
 27    ]
 28  },
 29  "python poetry project": {
 30    "prefix": ["nix-py-poetry"],
 31    "body": [
 32      "{ pkgs ? import <nixpkgs> {} }:",
 33      "",
 34      "let",
 35      "  inherit (pkgs) fetchFromGitHub callPackage;",
 36      "",
 37      "  poetry2nix-src = fetchFromGitHub {",
 38      "      owner = \"nix-community\";",
 39      "      repo = \"poetry2nix\";",
 40      "      rev = \"e0b44e9e2d3aa855d1dd77b06f067cd0e0c3860d\";",
 41      "      # To get sha256, run",
 42      "      # nix-prefetch-url --unpack https://github.com/nix-community/poetry2nix/archive/<rev>.tar.gz",
 43      "      sha256 = \"0zz3qzp2b5i9gw4yfxfrq07iadcdadackph12h02w19bb3535rm6\";",
 44      "  };",
 45      "",
 46      "  poetry2nix = callPackage poetry2nix-src { };",
 47      "",
 48      "in",
 49      "  let",
 50      "    poetryEnv = poetry2nix.mkPoetryEnv {",
 51      "      projectDir = ./.;",
 52      "      editablePackageSources = {",
 53      "        project = ./src;",
 54      "      };",
 55      "    };",
 56      "  in poetryEnv.env.overrideAttrs (oldAttrs: {",
 57      "    buildInputs = with pkgs; [",
 58      "      isort",
 59      "      pyright",
 60      "      python3Packages.flake8",
 61      "    ];",
 62      "  })"
 63    ]
 64  },
 65  "go project": {
 66    "prefix": ["nix-golang"],
 67    "body": [
 68      "{ pkgs ? import <nixpkgs> {} }:",
 69      "",
 70      "pkgs.mkShell {",
 71      "  packages = with pkgs; [",
 72      "    go",
 73      "    gopls",
 74      "  ];",
 75      "}"
 76    ]
 77  },
 78  "terraform project": {
 79    "prefix": ["nix-terraform"],
 80    "body": [
 81      "{ pkgs ? import <nixpkgs> {} }:",
 82      "",
 83      "pkgs.mkShell {",
 84      "  packages = with pkgs; [",
 85      "    terraform",
 86      "    terraform-ls",
 87      "  ];",
 88      "}"
 89    ]
 90  },
 91  "maven project": {
 92    "prefix": ["nix-maven"],
 93    "body": [
 94      "{ pkgs ? import <nixpkgs> {} }:",
 95      "",
 96      "pkgs.mkShell {",
 97      "  packages = with pkgs; [",
 98      "    graalvm-ce",
 99      "    jdt-language-server",
100      "    lombok",
101      "    maven",
102      "  ];",
103      "  shellHook = ''",
104      "    export JDTLS_JVM_ARGS=\"-javaagent:\\${pkgs.lombok}/share/java/lombok.jar\"",
105      "  '';",
106      "}"
107    ]
108  }
109}