Something went wrong. Try again.
A post-modern development environment.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101{ description = "A post-modern text editor.";
inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; };
outputs = { self, nixpkgs, rust-overlay, ... }: let inherit (nixpkgs) lib; eachSystem = lib.genAttrs lib.systems.flakeExposed; pkgsFor = eachSystem (system: import nixpkgs { localSystem.system = system; overlays = [(import rust-overlay) self.overlays.helix]; }); gitRev = self.rev or self.dirtyRev or null; in { packages = eachSystem (system: { inherit (pkgsFor.${system}) helix; /* The default Helix build. Uses the latest stable Rust toolchain, and unstable nixpkgs.
The build inputs can be overridden with the following:
packages.${system}.default.override { rustPlatform = newPlatform; };
Overriding a derivation attribute can be done as well:
packages.${system}.default.overrideAttrs { buildType = "debug"; }; */ default = self.packages.${system}.helix; }); checks = lib.mapAttrs (system: pkgs: let # Get Helix's MSRV toolchain to build with by default. msrvToolchain = pkgs.pkgsBuildHost.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; msrvPlatform = pkgs.makeRustPlatform { cargo = msrvToolchain; rustc = msrvToolchain; }; in { helix = self.packages.${system}.helix.override { rustPlatform = msrvPlatform; }; }) pkgsFor;
# Devshell behavior is preserved. devShells = lib.mapAttrs (system: pkgs: { default = let commonRustFlagsEnv = "-C link-arg=-fuse-ld=lld -C target-cpu=native --cfg tokio_unstable"; platformRustFlagsEnv = lib.optionalString pkgs.stdenv.isLinux "-Clink-arg=-Wl,--no-rosegment"; in pkgs.mkShell { inputsFrom = [ (self.checks.${system}.helix.override { includeGrammarIf = _: false; }) ]; nativeBuildInputs = with pkgs; [ lld cargo-flamegraph rust-bin.nightly.latest.rust-analyzer mdbook ] ++ (lib.optional (stdenv.isx86_64 && stdenv.isLinux) cargo-tarpaulin) ++ (lib.optional stdenv.isLinux lldb); shellHook = '' export RUST_BACKTRACE="1" export RUSTFLAGS="''${RUSTFLAGS:-""} ${commonRustFlagsEnv} ${platformRustFlagsEnv}" ''; }; }) pkgsFor;
overlays = { helix = final: prev: { helix = final.callPackage ./default.nix {inherit gitRev;}; };
default = self.overlays.helix; }; }; nixConfig = { extra-substituters = ["https://helix.cachix.org"]; extra-trusted-public-keys = ["helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="]; };}