mirror of
https://github.com/youwen5/nix-dev-envs.git
synced 2024-11-24 18:33:50 -08:00
132 lines
3.1 KiB
Nix
132 lines
3.1 KiB
Nix
{
|
|
description = "Flake for various development environments.";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
|
};
|
|
|
|
outputs = {
|
|
nixpkgs,
|
|
flake-utils,
|
|
rust-overlay,
|
|
...
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (
|
|
system: let
|
|
overlays = [(import rust-overlay)];
|
|
pkgs = import nixpkgs {
|
|
inherit system overlays;
|
|
};
|
|
in {
|
|
devShells = {
|
|
go = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
go
|
|
gopls
|
|
];
|
|
};
|
|
|
|
zig = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
zig
|
|
zls
|
|
];
|
|
};
|
|
|
|
pythonPoetry = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
poetry
|
|
pyright
|
|
];
|
|
};
|
|
|
|
haskellStack = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
haskellPackages.stack
|
|
haskell-language-server
|
|
];
|
|
};
|
|
|
|
haskellCabal = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
haskellPackages.cabal-install
|
|
ghc
|
|
haskell-language-server
|
|
];
|
|
};
|
|
|
|
rustBeta = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
rust-bin.beta.latest.default
|
|
rust-analyzer
|
|
];
|
|
};
|
|
|
|
rustNightly = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
rust-bin.nightly.latest.default
|
|
rust-analyzer
|
|
];
|
|
};
|
|
|
|
rustStable = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
rust-bin.stable.latest.default
|
|
rust-analyzer
|
|
];
|
|
};
|
|
|
|
npmNode = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
nodejs
|
|
nodePackages_latest.npm
|
|
nodePackages_latest.prettier
|
|
typescript-language-server
|
|
];
|
|
};
|
|
|
|
pnpmNode = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
nodejs
|
|
nodePackages_latest.pnpm
|
|
nodePackages_latest.prettier
|
|
typescript-language-server
|
|
];
|
|
};
|
|
|
|
yarnNode = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
nodejs
|
|
nodePackages_latest.yarn
|
|
nodePackages_latest.prettier
|
|
typescript-language-server
|
|
];
|
|
};
|
|
|
|
typst = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
typst
|
|
typstfmt
|
|
tinymist
|
|
];
|
|
};
|
|
|
|
latexFull = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
texliveFull
|
|
texlab
|
|
];
|
|
};
|
|
|
|
latexMinimal = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
texliveMinimal
|
|
texlab
|
|
];
|
|
};
|
|
};
|
|
}
|
|
);
|
|
}
|