powersort/shell.nix

54 lines
1.3 KiB
Nix

# Gradle's toolchain support does not work with IntelliJ, thus we have to use buildFHSUserEnv
# https://discourse.nixos.org/t/how-to-create-a-development-environment-with-intellij-idea-and-openjdk/10153
# How to use `config.allowUnfree` in shell.nix
# https://github.com/NixOS/nixpkgs/issues/166220#issuecomment-1745803058
{
### Import nixpkgs as channels ###
#
# nixpkgs stable
#pkgs ? import <nixpkgs> {
# # Required for IntelliJ Ultimate
# config.allowUnfree = true;
#},
# nixpkgs unstable
#unstable ? import <unstable> { }
}:
let
### Import nixpkgs with Niv ###
#
sources = import ./nix/sources.nix;
# nixpkgs stable
pkgs = import sources.nixpkgs {
# Required for IntelliJ Ultimate
config.allowUnfree = true;
};
# nixpkgs unstable
unstable = import sources.unstable { };
jdk = unstable.jdk23;
gradle = unstable.gradle.override {
java = jdk;
# Required for `gradle javaToolchains` to list JDK23
javaToolchains = [ jdk ];
};
in
(
pkgs.buildFHSUserEnv
{
name = "intellij-gradle-jdk23";
targetPkgs = pkgs_: [
pkgs_.jetbrains.idea-ultimate
# IntelliJ needs at least one font installed.
# If this shell.nix is run on a non-NixOS system, that might not be the case.
# Thus, we manually add one font.
pkgs_.noto-fonts
jdk
gradle
];
}
).env