From c3d120445877b307f5ea7e95aed4bab45d7dede0 Mon Sep 17 00:00:00 2001 From: Rutger Broekhoff Date: Fri, 26 Jan 2024 00:03:47 +0100 Subject: Make rust-analyzer work again --- flake.lock | 26 +++++++++++++++++++++++++- flake.nix | 36 +++++++++++++++++++++++++++--------- 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/flake.lock b/flake.lock index 8f73a8f..eaa9d01 100644 --- a/flake.lock +++ b/flake.lock @@ -71,7 +71,31 @@ "advisory-db": "advisory-db", "crane": "crane", "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706149103, + "narHash": "sha256-Me28A0tAb1EzZIozfi31+hnsQIaYU0HXaMPWCe+zByc=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "493cc67d5e9f1b298241b8d92aa06883296acc3f", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" } }, "systems": { diff --git a/flake.nix b/flake.nix index 0c3fea5..e484e36 100644 --- a/flake.nix +++ b/flake.nix @@ -2,24 +2,39 @@ inputs = { nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.2311.*.tar.gz"; flake-utils.url = "https://flakehub.com/f/numtide/flake-utils/0.1.90.tar.gz"; - crane.url = "https://flakehub.com/f/ipetkov/crane/0.16.0.tar.gz"; - crane.inputs.nixpkgs.follows = "nixpkgs"; + + crane = { + url = "https://flakehub.com/f/ipetkov/crane/0.16.0.tar.gz"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + advisory-db = { url = "github:rustsec/advisory-db"; flake = false; }; + + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-utils.follows = "flake-utils"; + }; + }; }; - outputs = { self, nixpkgs, flake-utils, crane, advisory-db, ... }@inputs: + outputs = { self, nixpkgs, flake-utils, crane, rust-overlay, advisory-db, ... }@inputs: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; - overlays = [ ]; + overlays = [ (import rust-overlay) ]; }; - craneLib = crane.lib.${system}; + rustToolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = [ "rust-src" ]; + }; + craneLib = (crane.mkLib pkgs).overrideToolchain rustToolchain; src = craneLib.cleanCargoSource (craneLib.path ./.); commonArgs = { @@ -44,19 +59,19 @@ inherit cargoArtifacts; cargoClippyExtraArgs = "--all-targets -- --deny warnings"; }); - + gitolfs3-doc = craneLib.cargoDoc (commonArgs // { inherit cargoArtifacts; }); - + # Check formatting gitolfs3-fmt = craneLib.cargoFmt commonArgs; - + # Audit dependencies gitolfs3-audit = craneLib.cargoAudit (commonArgs // { inherit advisory-db; }); - + # Run tests with cargo-nextest gitolfs3-nextest = craneLib.cargoNextest (commonArgs // { inherit cargoArtifacts; @@ -70,6 +85,9 @@ devShells.default = craneLib.devShell { checks = self.checks.${system}; + + packages = [ rustToolchain pkgs.rust-analyzer ]; + RUST_SRC_PATH = "${rustToolchain}/lib/rustlib/src/rust/library"; }; formatter = pkgs.nixpkgs-fmt; -- cgit v1.2.3