diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2020-03-30 21:21:35 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2020-04-02 10:36:25 -0400 |
| commit | e992565857df86b8dde9365b7fa76cbfdbf283c3 (patch) | |
| tree | 557228df9a4b695b0f522b2e74c2f1273c7ce1e2 | |
| parent | 0f72ce1b271b40a5652049362e6aab5914f7b1d3 (diff) | |
| download | rust-e992565857df86b8dde9365b7fa76cbfdbf283c3.tar.gz rust-e992565857df86b8dde9365b7fa76cbfdbf283c3.zip | |
bootstrap: add `--json-output` for rust-analyzer
| -rw-r--r-- | src/bootstrap/compile.rs | 6 | ||||
| -rw-r--r-- | src/bootstrap/config.rs | 2 | ||||
| -rw-r--r-- | src/bootstrap/flags.rs | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs index ad494b88b3a..5602c659138 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs @@ -911,7 +911,11 @@ pub fn stream_cargo( } // Instruct Cargo to give us json messages on stdout, critically leaving // stderr as piped so we can get those pretty colors. - let mut message_format = String::from("json-render-diagnostics"); + let mut message_format = if builder.config.json_output { + String::from("json") + } else { + String::from("json-render-diagnostics") + }; if let Some(s) = &builder.config.rustc_error_format { message_format.push_str(",json-diagnostic-"); message_format.push_str(s); diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 56164b74f30..133709421a5 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -48,6 +48,7 @@ pub struct Config { pub ignore_git: bool, pub exclude: Vec<PathBuf>, pub rustc_error_format: Option<String>, + pub json_output: bool, pub test_compare_mode: bool, pub llvm_libunwind: bool, @@ -415,6 +416,7 @@ impl Config { let mut config = Config::default_opts(); config.exclude = flags.exclude; config.rustc_error_format = flags.rustc_error_format; + config.json_output = flags.json_output; config.on_fail = flags.on_fail; config.stage = flags.stage; config.jobs = flags.jobs.map(threads_from_config); diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs index eda26f7df1f..5d6e401d5b3 100644 --- a/src/bootstrap/flags.rs +++ b/src/bootstrap/flags.rs @@ -31,6 +31,7 @@ pub struct Flags { pub incremental: bool, pub exclude: Vec<PathBuf>, pub rustc_error_format: Option<String>, + pub json_output: bool, pub dry_run: bool, // This overrides the deny-warnings configuration option, @@ -156,6 +157,7 @@ To learn more about a subcommand, run `./x.py <subcommand> -h`", "VALUE", ); opts.optopt("", "error-format", "rustc error format", "FORMAT"); + opts.optflag("", "json-output", "use message-format=json"); opts.optopt( "", "llvm-skip-rebuild", @@ -503,6 +505,7 @@ Arguments: dry_run: matches.opt_present("dry-run"), on_fail: matches.opt_str("on-fail"), rustc_error_format: matches.opt_str("error-format"), + json_output: matches.opt_present("json-output"), keep_stage: matches .opt_strs("keep-stage") .into_iter() |
