mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-14 14:13:58 +00:00
Gate and rename binary, use it if it's in the sysroot
This commit is contained in:
parent
dadb83282d
commit
74a2fad5e6
4 changed files with 22 additions and 1 deletions
|
@ -86,6 +86,7 @@ fn mk_child(
|
|||
) -> io::Result<Child> {
|
||||
Command::new(path.as_os_str())
|
||||
.args(args)
|
||||
.env("RUST_ANALYZER_INTERNALS_DO_NOT_USE", "this is unstable")
|
||||
.stdin(Stdio::piped())
|
||||
.stdout(Stdio::piped())
|
||||
.stderr(Stdio::inherit())
|
||||
|
|
|
@ -13,5 +13,5 @@ proc-macro-srv = { version = "0.0.0", path = "../proc-macro-srv" }
|
|||
sysroot-abi = ["proc-macro-srv/sysroot-abi"]
|
||||
|
||||
[[bin]]
|
||||
name = "proc-macro-srv"
|
||||
name = "rust-analyzer-proc-macro-srv"
|
||||
path = "src/main.rs"
|
||||
|
|
|
@ -3,5 +3,17 @@
|
|||
use proc_macro_srv::cli;
|
||||
|
||||
fn main() -> std::io::Result<()> {
|
||||
let v = std::env::var("RUST_ANALYZER_INTERNALS_DO_NOT_USE");
|
||||
match v.as_deref() {
|
||||
Ok("this is unstable") => {
|
||||
// very well, if you must
|
||||
}
|
||||
_ => {
|
||||
eprintln!("If you're rust-analyzer, you can use this tool by exporting RUST_ANALYZER_INTERNALS_DO_NOT_USE='this is unstable'.");
|
||||
eprintln!("If not, you probably shouldn't use this tool. But do what you want: I'm an error message, not a cop.");
|
||||
std::process::exit(122);
|
||||
}
|
||||
}
|
||||
|
||||
cli::run()
|
||||
}
|
||||
|
|
|
@ -309,7 +309,9 @@ impl GlobalState {
|
|||
.workspaces
|
||||
.iter()
|
||||
.map(|ws| {
|
||||
let mut args = args.clone();
|
||||
let mut path = path.clone();
|
||||
|
||||
if let ProjectWorkspace::Cargo { sysroot, .. } = ws {
|
||||
tracing::info!("Found a cargo workspace...");
|
||||
if let Some(sysroot) = sysroot.as_ref() {
|
||||
|
@ -324,6 +326,7 @@ impl GlobalState {
|
|||
server_path.display()
|
||||
);
|
||||
path = server_path;
|
||||
args = vec![];
|
||||
} else {
|
||||
tracing::info!(
|
||||
"And the server does not exist at {}",
|
||||
|
@ -333,6 +336,11 @@ impl GlobalState {
|
|||
}
|
||||
}
|
||||
|
||||
tracing::info!(
|
||||
"Using proc-macro server at {} with args {:?}",
|
||||
path.display(),
|
||||
args
|
||||
);
|
||||
ProcMacroServer::spawn(path.clone(), args.clone()).map_err(|err| {
|
||||
let error = format!(
|
||||
"Failed to run proc_macro_srv from path {}, error: {:?}",
|
||||
|
|
Loading…
Reference in a new issue