session: terminal-width
-> output-width
Rename the `--terminal-width` flag to `--output-width` as the behaviour doesn't just apply to terminals (and so is slightly less accurate). Signed-off-by: David Wood <david.wood@huawei.com>
This commit is contained in:
parent
e5288842fa
commit
cd23af6793
31 changed files with 65 additions and 65 deletions
|
@ -63,7 +63,7 @@ impl HumanReadableErrorType {
|
|||
bundle: Option<Lrc<FluentBundle>>,
|
||||
fallback_bundle: LazyFallbackBundle,
|
||||
teach: bool,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
macro_backtrace: bool,
|
||||
) -> EmitterWriter {
|
||||
let (short, color_config) = self.unzip();
|
||||
|
@ -76,7 +76,7 @@ impl HumanReadableErrorType {
|
|||
short,
|
||||
teach,
|
||||
color,
|
||||
terminal_width,
|
||||
output_width,
|
||||
macro_backtrace,
|
||||
)
|
||||
}
|
||||
|
@ -710,7 +710,7 @@ pub struct EmitterWriter {
|
|||
short_message: bool,
|
||||
teach: bool,
|
||||
ui_testing: bool,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
|
||||
macro_backtrace: bool,
|
||||
}
|
||||
|
@ -730,7 +730,7 @@ impl EmitterWriter {
|
|||
fallback_bundle: LazyFallbackBundle,
|
||||
short_message: bool,
|
||||
teach: bool,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
macro_backtrace: bool,
|
||||
) -> EmitterWriter {
|
||||
let dst = Destination::from_stderr(color_config);
|
||||
|
@ -742,7 +742,7 @@ impl EmitterWriter {
|
|||
short_message,
|
||||
teach,
|
||||
ui_testing: false,
|
||||
terminal_width,
|
||||
output_width,
|
||||
macro_backtrace,
|
||||
}
|
||||
}
|
||||
|
@ -755,7 +755,7 @@ impl EmitterWriter {
|
|||
short_message: bool,
|
||||
teach: bool,
|
||||
colored: bool,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
macro_backtrace: bool,
|
||||
) -> EmitterWriter {
|
||||
EmitterWriter {
|
||||
|
@ -766,7 +766,7 @@ impl EmitterWriter {
|
|||
short_message,
|
||||
teach,
|
||||
ui_testing: false,
|
||||
terminal_width,
|
||||
output_width,
|
||||
macro_backtrace,
|
||||
}
|
||||
}
|
||||
|
@ -1615,7 +1615,7 @@ impl EmitterWriter {
|
|||
width_offset + annotated_file.multiline_depth + 1
|
||||
};
|
||||
|
||||
let column_width = if let Some(width) = self.terminal_width {
|
||||
let column_width = if let Some(width) = self.output_width {
|
||||
width.saturating_sub(code_offset)
|
||||
} else if self.ui_testing {
|
||||
DEFAULT_COLUMN_WIDTH
|
||||
|
|
|
@ -42,7 +42,7 @@ pub struct JsonEmitter {
|
|||
pretty: bool,
|
||||
ui_testing: bool,
|
||||
json_rendered: HumanReadableErrorType,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
macro_backtrace: bool,
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ impl JsonEmitter {
|
|||
fallback_bundle: LazyFallbackBundle,
|
||||
pretty: bool,
|
||||
json_rendered: HumanReadableErrorType,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
macro_backtrace: bool,
|
||||
) -> JsonEmitter {
|
||||
JsonEmitter {
|
||||
|
@ -66,7 +66,7 @@ impl JsonEmitter {
|
|||
pretty,
|
||||
ui_testing: false,
|
||||
json_rendered,
|
||||
terminal_width,
|
||||
output_width,
|
||||
macro_backtrace,
|
||||
}
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ impl JsonEmitter {
|
|||
json_rendered: HumanReadableErrorType,
|
||||
fluent_bundle: Option<Lrc<FluentBundle>>,
|
||||
fallback_bundle: LazyFallbackBundle,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
macro_backtrace: bool,
|
||||
) -> JsonEmitter {
|
||||
let file_path_mapping = FilePathMapping::empty();
|
||||
|
@ -87,7 +87,7 @@ impl JsonEmitter {
|
|||
fallback_bundle,
|
||||
pretty,
|
||||
json_rendered,
|
||||
terminal_width,
|
||||
output_width,
|
||||
macro_backtrace,
|
||||
)
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ impl JsonEmitter {
|
|||
fallback_bundle: LazyFallbackBundle,
|
||||
pretty: bool,
|
||||
json_rendered: HumanReadableErrorType,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
macro_backtrace: bool,
|
||||
) -> JsonEmitter {
|
||||
JsonEmitter {
|
||||
|
@ -112,7 +112,7 @@ impl JsonEmitter {
|
|||
pretty,
|
||||
ui_testing: false,
|
||||
json_rendered,
|
||||
terminal_width,
|
||||
output_width,
|
||||
macro_backtrace,
|
||||
}
|
||||
}
|
||||
|
@ -345,7 +345,7 @@ impl Diagnostic {
|
|||
je.fluent_bundle.clone(),
|
||||
je.fallback_bundle.clone(),
|
||||
false,
|
||||
je.terminal_width,
|
||||
je.output_width,
|
||||
je.macro_backtrace,
|
||||
)
|
||||
.ui_testing(je.ui_testing)
|
||||
|
|
|
@ -726,7 +726,7 @@ impl Default for Options {
|
|||
prints: Vec::new(),
|
||||
cg: Default::default(),
|
||||
error_format: ErrorOutputType::default(),
|
||||
terminal_width: None,
|
||||
output_width: None,
|
||||
externs: Externs(BTreeMap::new()),
|
||||
crate_name: None,
|
||||
libs: Vec::new(),
|
||||
|
@ -1430,8 +1430,8 @@ pub fn rustc_optgroups() -> Vec<RustcOptGroup> {
|
|||
),
|
||||
opt::opt_s(
|
||||
"",
|
||||
"terminal-width",
|
||||
"Inform rustc of the width of the terminal so that errors can be truncated",
|
||||
"output-width",
|
||||
"Inform rustc of the width of the output so that errors can be truncated to fit",
|
||||
"WIDTH",
|
||||
),
|
||||
opt::multi_s(
|
||||
|
@ -2209,8 +2209,8 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options {
|
|||
|
||||
let error_format = parse_error_format(matches, color, json_rendered);
|
||||
|
||||
let terminal_width = matches.opt_get("terminal-width").unwrap_or_else(|_| {
|
||||
early_error(error_format, "`--terminal-width` must be an positive integer");
|
||||
let output_width = matches.opt_get("output-width").unwrap_or_else(|_| {
|
||||
early_error(error_format, "`--output-width` must be an positive integer");
|
||||
});
|
||||
|
||||
let unparsed_crate_types = matches.opt_strs("crate-type");
|
||||
|
@ -2485,7 +2485,7 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options {
|
|||
prints,
|
||||
cg,
|
||||
error_format,
|
||||
terminal_width,
|
||||
output_width,
|
||||
externs,
|
||||
unstable_features: UnstableFeatures::from_environment(crate_name.as_deref()),
|
||||
crate_name,
|
||||
|
|
|
@ -170,7 +170,7 @@ top_level_options!(
|
|||
|
||||
test: bool [TRACKED],
|
||||
error_format: ErrorOutputType [UNTRACKED],
|
||||
terminal_width: Option<usize> [UNTRACKED],
|
||||
output_width: Option<usize> [UNTRACKED],
|
||||
|
||||
/// If `Some`, enable incremental compilation, using the given
|
||||
/// directory to store intermediate results.
|
||||
|
@ -1389,6 +1389,8 @@ options! {
|
|||
"panic strategy for out-of-memory handling"),
|
||||
osx_rpath_install_name: bool = (false, parse_bool, [TRACKED],
|
||||
"pass `-install_name @rpath/...` to the macOS linker (default: no)"),
|
||||
output_width: Option<usize> = (None, parse_opt_number, [UNTRACKED],
|
||||
"set the current output width for diagnostic truncation"),
|
||||
panic_abort_tests: bool = (false, parse_bool, [TRACKED],
|
||||
"support compiling tests with panic=abort (default: no)"),
|
||||
panic_in_drop: PanicStrategy = (PanicStrategy::Unwind, parse_panic_strategy, [TRACKED],
|
||||
|
@ -1515,8 +1517,6 @@ options! {
|
|||
"show extended diagnostic help (default: no)"),
|
||||
temps_dir: Option<String> = (None, parse_opt_string, [UNTRACKED],
|
||||
"the directory the intermediate files are written to"),
|
||||
terminal_width: Option<usize> = (None, parse_opt_number, [UNTRACKED],
|
||||
"set the current terminal width"),
|
||||
// Diagnostics are considered side-effects of a query (see `QuerySideEffects`) and are saved
|
||||
// alongside query results and changes to translation options can affect diagnostics - so
|
||||
// translation options should be tracked.
|
||||
|
|
|
@ -1162,7 +1162,7 @@ fn default_emitter(
|
|||
fallback_bundle,
|
||||
short,
|
||||
sopts.debugging_opts.teach,
|
||||
sopts.terminal_width,
|
||||
sopts.output_width,
|
||||
macro_backtrace,
|
||||
),
|
||||
Some(dst) => EmitterWriter::new(
|
||||
|
@ -1188,7 +1188,7 @@ fn default_emitter(
|
|||
fallback_bundle,
|
||||
pretty,
|
||||
json_rendered,
|
||||
sopts.terminal_width,
|
||||
sopts.output_width,
|
||||
macro_backtrace,
|
||||
)
|
||||
.ui_testing(sopts.debugging_opts.ui_testing),
|
||||
|
@ -1202,7 +1202,7 @@ fn default_emitter(
|
|||
fallback_bundle,
|
||||
pretty,
|
||||
json_rendered,
|
||||
sopts.terminal_width,
|
||||
sopts.output_width,
|
||||
macro_backtrace,
|
||||
)
|
||||
.ui_testing(sopts.debugging_opts.ui_testing),
|
||||
|
|
|
@ -74,7 +74,7 @@ pub(crate) struct Options {
|
|||
/// How to format errors and warnings.
|
||||
pub(crate) error_format: ErrorOutputType,
|
||||
/// Width of terminal to truncate errors appropriately.
|
||||
pub(crate) terminal_width: Option<usize>,
|
||||
pub(crate) output_width: Option<usize>,
|
||||
/// Library search paths to hand to the compiler.
|
||||
pub(crate) libs: Vec<SearchPath>,
|
||||
/// Library search paths strings to hand to the compiler.
|
||||
|
@ -336,12 +336,12 @@ impl Options {
|
|||
let config::JsonConfig { json_rendered, json_unused_externs, .. } =
|
||||
config::parse_json(matches);
|
||||
let error_format = config::parse_error_format(matches, color, json_rendered);
|
||||
let terminal_width = matches.opt_get("terminal-width").unwrap_or_default();
|
||||
let output_width = matches.opt_get("output-width").unwrap_or_default();
|
||||
|
||||
let codegen_options = CodegenOptions::build(matches, error_format);
|
||||
let debugging_opts = DebuggingOptions::build(matches, error_format);
|
||||
|
||||
let diag = new_handler(error_format, None, terminal_width, &debugging_opts);
|
||||
let diag = new_handler(error_format, None, output_width, &debugging_opts);
|
||||
|
||||
// check for deprecated options
|
||||
check_deprecated_options(matches, &diag);
|
||||
|
@ -705,7 +705,7 @@ impl Options {
|
|||
input,
|
||||
proc_macro_crate,
|
||||
error_format,
|
||||
terminal_width,
|
||||
output_width,
|
||||
libs,
|
||||
lib_strs,
|
||||
externs,
|
||||
|
|
|
@ -154,7 +154,7 @@ impl<'tcx> DocContext<'tcx> {
|
|||
pub(crate) fn new_handler(
|
||||
error_format: ErrorOutputType,
|
||||
source_map: Option<Lrc<source_map::SourceMap>>,
|
||||
terminal_width: Option<usize>,
|
||||
output_width: Option<usize>,
|
||||
debugging_opts: &DebuggingOptions,
|
||||
) -> rustc_errors::Handler {
|
||||
let fallback_bundle =
|
||||
|
@ -170,7 +170,7 @@ pub(crate) fn new_handler(
|
|||
fallback_bundle,
|
||||
short,
|
||||
debugging_opts.teach,
|
||||
terminal_width,
|
||||
output_width,
|
||||
false,
|
||||
)
|
||||
.ui_testing(debugging_opts.ui_testing),
|
||||
|
@ -188,7 +188,7 @@ pub(crate) fn new_handler(
|
|||
fallback_bundle,
|
||||
pretty,
|
||||
json_rendered,
|
||||
terminal_width,
|
||||
output_width,
|
||||
false,
|
||||
)
|
||||
.ui_testing(debugging_opts.ui_testing),
|
||||
|
@ -209,7 +209,7 @@ pub(crate) fn create_config(
|
|||
crate_name,
|
||||
proc_macro_crate,
|
||||
error_format,
|
||||
terminal_width,
|
||||
output_width,
|
||||
libs,
|
||||
externs,
|
||||
mut cfgs,
|
||||
|
@ -268,7 +268,7 @@ pub(crate) fn create_config(
|
|||
actually_rustdoc: true,
|
||||
debugging_opts,
|
||||
error_format,
|
||||
terminal_width,
|
||||
output_width,
|
||||
edition,
|
||||
describe_lints,
|
||||
crate_name,
|
||||
|
|
|
@ -462,11 +462,11 @@ fn opts() -> Vec<RustcOptGroup> {
|
|||
"human|json|short",
|
||||
)
|
||||
}),
|
||||
unstable("terminal-width", |o| {
|
||||
unstable("output-width", |o| {
|
||||
o.optopt(
|
||||
"",
|
||||
"terminal-width",
|
||||
"Provide width of the terminal for truncated error messages",
|
||||
"output-width",
|
||||
"Provide width of the output for truncated error messages",
|
||||
"WIDTH",
|
||||
)
|
||||
}),
|
||||
|
@ -744,7 +744,7 @@ fn main_options(options: config::Options) -> MainResult {
|
|||
let diag = core::new_handler(
|
||||
options.error_format,
|
||||
None,
|
||||
options.terminal_width,
|
||||
options.output_width,
|
||||
&options.debugging_opts,
|
||||
);
|
||||
|
||||
|
|
|
@ -110,8 +110,8 @@ Options:
|
|||
never = never colorize output
|
||||
--error-format human|json|short
|
||||
How errors and other messages are produced
|
||||
--terminal-width WIDTH
|
||||
Provide width of the terminal for truncated error
|
||||
--output-width WIDTH
|
||||
Provide width of the output for truncated error
|
||||
messages
|
||||
--json CONFIG Configure the structure of JSON diagnostics
|
||||
--disable-minification
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// compile-flags: -Zunstable-options --terminal-width=10
|
||||
// compile-flags: -Zunstable-options --output-width=10
|
||||
#![deny(rustdoc::bare_urls)]
|
||||
|
||||
/// This is a long line that contains a http://link.com
|
|
@ -1,11 +1,11 @@
|
|||
error: this URL is not a hyperlink
|
||||
--> $DIR/terminal-width.rs:4:41
|
||||
--> $DIR/output-width.rs:4:41
|
||||
|
|
||||
LL | ... a http://link.com
|
||||
| ^^^^^^^^^^^^^^^ help: use an automatic link instead: `<http://link.com>`
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/terminal-width.rs:2:9
|
||||
--> $DIR/output-width.rs:2:9
|
||||
|
|
||||
LL | ...ny(rustdoc::bare_url...
|
||||
| ^^^^^^^^^^^^^^^^^^
|
9
src/test/ui/output-width/flag-human.rs
Normal file
9
src/test/ui/output-width/flag-human.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
// compile-flags: --output-width=20
|
||||
|
||||
// This test checks that `-Z output-width` effects the human error output by restricting it to an
|
||||
// arbitrarily low value so that the effect is visible.
|
||||
|
||||
fn main() {
|
||||
let _: () = 42;
|
||||
//~^ ERROR mismatched types
|
||||
}
|
9
src/test/ui/output-width/flag-json.rs
Normal file
9
src/test/ui/output-width/flag-json.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
// compile-flags: --output-width=20 --error-format=json
|
||||
|
||||
// This test checks that `-Z output-width` effects the JSON error output by restricting it to an
|
||||
// arbitrarily low value so that the effect is visible.
|
||||
|
||||
fn main() {
|
||||
let _: () = 42;
|
||||
//~^ ERROR arguments to this function are incorrect
|
||||
}
|
|
@ -24,7 +24,7 @@ This error occurs when an expression was used in a place where the compiler
|
|||
expected an expression of a different type. It can occur in several cases, the
|
||||
most common being when calling a function and passing an argument which has a
|
||||
different type than the matching type in the function declaration.
|
||||
"},"level":"error","spans":[{"file_name":"$DIR/flag-json.rs","byte_start":243,"byte_end":245,"line_start":7,"line_end":7,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":" let _: () = 42;","highlight_start":17,"highlight_end":19}],"label":"expected `()`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/flag-json.rs","byte_start":238,"byte_end":240,"line_start":7,"line_end":7,"column_start":12,"column_end":14,"is_primary":false,"text":[{"text":" let _: () = 42;","highlight_start":12,"highlight_end":14}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0308]: mismatched types
|
||||
"},"level":"error","spans":[{"file_name":"$DIR/flag-json.rs","byte_start":239,"byte_end":241,"line_start":7,"line_end":7,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":" let _: () = 42;","highlight_start":17,"highlight_end":19}],"label":"expected `()`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/flag-json.rs","byte_start":234,"byte_end":236,"line_start":7,"line_end":7,"column_start":12,"column_end":14,"is_primary":false,"text":[{"text":" let _: () = 42;","highlight_start":12,"highlight_end":14}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error[E0308]: mismatched types
|
||||
--> $DIR/flag-json.rs:7:17
|
||||
|
|
||||
LL | ..._: () = 42;
|
|
@ -1,9 +0,0 @@
|
|||
// compile-flags: --terminal-width=20
|
||||
|
||||
// This test checks that `-Z terminal-width` effects the human error output by restricting it to an
|
||||
// arbitrarily low value so that the effect is visible.
|
||||
|
||||
fn main() {
|
||||
let _: () = 42;
|
||||
//~^ ERROR mismatched types
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
// compile-flags: --terminal-width=20 --error-format=json
|
||||
|
||||
// This test checks that `-Z terminal-width` effects the JSON error output by restricting it to an
|
||||
// arbitrarily low value so that the effect is visible.
|
||||
|
||||
fn main() {
|
||||
let _: () = 42;
|
||||
//~^ ERROR arguments to this function are incorrect
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue