summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.all-contributorsrc9
-rw-r--r--AUTHORS.md1
-rw-r--r--flake.nix13
-rw-r--r--src/project.rs7
4 files changed, 29 insertions, 1 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 904d199..b5b4ffd 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -1731,6 +1731,15 @@
"contributions": [
"content"
]
+ },
+ {
+ "login": "dbarrosop",
+ "name": "David Barroso",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6246622?v=4",
+ "profile": "https://www.linkedin.com/in/dbarrosop",
+ "contributions": [
+ "infra"
+ ]
}
],
"contributorsPerLine": 8,
diff --git a/AUTHORS.md b/AUTHORS.md
index 5f9dc6d..6d8a05e 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -246,6 +246,7 @@ authors.
<td align="center"><a href="https://github.com/tkburis"><img src="https://avatars.githubusercontent.com/u/20501289?v=4?s=100" width="100px;" alt="TK Buristrakul"/><br /><sub><b>TK Buristrakul</b></sub></a><br /><a href="#content-tkburis" title="Content">🖋</a></td>
<td align="center"><a href="https://github.com/HerschelW"><img src="https://avatars.githubusercontent.com/u/17935816?v=4?s=100" width="100px;" alt="Kent Worthington"/><br /><sub><b>Kent Worthington</b></sub></a><br /><a href="#content-HerschelW" title="Content">🖋</a></td>
<td align="center"><a href="https://github.com/seporterfield"><img src="https://avatars.githubusercontent.com/u/107010978?v=4?s=100" width="100px;" alt="seporterfield"/><br /><sub><b>seporterfield</b></sub></a><br /><a href="#content-seporterfield" title="Content">🖋</a></td>
+ <td align="center"><a href="https://www.linkedin.com/in/dbarrosop"><img src="https://avatars.githubusercontent.com/u/6246622?v=4?s=100" width="100px;" alt="David Barroso"/><br /><sub><b>David Barroso</b></sub></a><br /><a href="#infra-dbarrosop" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
</tr>
</tbody>
</table>
diff --git a/flake.nix b/flake.nix
index a670319..2c29ffa 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,11 +14,18 @@
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
+
+ cargoBuildInputs = with pkgs; lib.optionals stdenv.isDarwin [
+ darwin.apple_sdk.frameworks.CoreServices
+ ];
+
rustlings =
pkgs.rustPlatform.buildRustPackage {
name = "rustlings";
version = "5.3.0";
+ buildInputs = cargoBuildInputs;
+
src = with pkgs.lib; cleanSourceWith {
src = self;
# a function that returns a bool determining if the path should be included in the cleaned source
@@ -42,12 +49,16 @@
in
{
devShell = pkgs.mkShell {
+ RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
+
buildInputs = with pkgs; [
cargo
rustc
rust-analyzer
rustlings
- ];
+ rustfmt
+ clippy
+ ] ++ cargoBuildInputs;
};
});
}
diff --git a/src/project.rs b/src/project.rs
index f093cdf..6e48350 100644
--- a/src/project.rs
+++ b/src/project.rs
@@ -1,5 +1,6 @@
use glob::glob;
use serde::{Deserialize, Serialize};
+use std::env;
use std::error::Error;
use std::process::Command;
@@ -64,6 +65,12 @@ impl RustAnalyzerProject {
/// Use `rustc` to determine the default toolchain
pub fn get_sysroot_src(&mut self) -> Result<(), Box<dyn Error>> {
+ // check if RUST_SRC_PATH is set
+ if let Ok(path) = env::var("RUST_SRC_PATH") {
+ self.sysroot_src = path;
+ return Ok(());
+ }
+
let toolchain = Command::new("rustc")
.arg("--print")
.arg("sysroot")