Allow users to override the .scip output file path

Previously, rust-analyzer would write to the file index.scip
unconditionally.
This commit is contained in:
Wilfred Hughes 2023-05-25 15:47:34 -07:00
parent 06d02e0a1e
commit 5b0e170683
2 changed files with 7 additions and 1 deletions

View File

@ -112,6 +112,9 @@ xflags::xflags! {
cmd scip {
required path: PathBuf
/// The output path where the SCIP file will be written to. Defaults to `index.scip`.
optional --output path: PathBuf
}
}
}
@ -208,6 +211,7 @@ pub struct Lsif {
#[derive(Debug)]
pub struct Scip {
pub path: PathBuf,
pub output: Option<PathBuf>,
}
impl RustAnalyzer {

View File

@ -2,6 +2,7 @@
use std::{
collections::{HashMap, HashSet},
path::PathBuf,
time::Instant,
};
@ -165,7 +166,8 @@ impl flags::Scip {
special_fields: Default::default(),
};
scip::write_message_to_file("index.scip", index)
let out_path = self.output.unwrap_or_else(|| PathBuf::from(r"index.scip"));
scip::write_message_to_file(out_path, index)
.map_err(|err| anyhow::anyhow!("Failed to write scip to file: {}", err))?;
eprintln!("Generating SCIP finished {:?}", now.elapsed());