use magenta instead of bold for highlighting

according to a poll of gay people in my phone, purple is the most popular color to use for highlighting

| color      | percentage |
| ---------- | ---------- |
| bold white | 6%         |
| blue       | 14%        |
| cyan       | 26%        |
| purple     | 37%        |
| magenta    | 17%        |

unfortunately, purple is not supported by 16-color terminals, which rustc apparently wants to support for some reason.
until we require support for full 256-color terms (e.g. by doing the same feature detection as we currently do for urls), we can't use it.

instead, i have collapsed the purple votes into magenta on the theory that they're close, and also because magenta is pretty.
This commit is contained in:
jyn 2023-12-08 14:09:10 -05:00
parent 9f0c6f15ce
commit 96b027f35d
6 changed files with 58 additions and 12 deletions

View File

@ -2719,7 +2719,7 @@ fn color_spec(&self, lvl: Level) -> ColorSpec {
spec.set_bold(true);
}
Style::Highlight => {
spec.set_bold(true);
spec.set_bold(true).set_fg(Some(Color::Magenta));
}
}
spec

View File

@ -11,7 +11,7 @@
const ENTRY_LIMIT: usize = 900;
// FIXME: The following limits should be reduced eventually.
const ISSUES_ENTRY_LIMIT: usize = 1852;
const ROOT_ENTRY_LIMIT: usize = 866;
const ROOT_ENTRY_LIMIT: usize = 867;
const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
"rs", // test source files

View File

@ -0,0 +1,23 @@
// Make sure "highlighted" code is colored purple
// compile-flags: --error-format=human --color=always
// error-pattern:for<'a> 
// edition:2018
use core::pin::Pin;
use core::future::Future;
use core::any::Any;
fn query(_: fn(Box<(dyn Any + Send + '_)>) -> Pin<Box<(
dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static
)>>) {}
fn wrapped_fn<'a>(_: Box<(dyn Any + Send)>) -> Pin<Box<(
dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static
)>> {
Box::pin(async { Err("nope".into()) })
}
fn main() {
query(wrapped_fn);
}

View File

@ -0,0 +1,22 @@
error[E0308]: mismatched types
 --> $DIR/highlighting.rs:22:11
 |
LL |  query(wrapped_fn);
 |  ----- ^^^^^^^^^^ one type is more general than the other
 |  |
 |  arguments to this function are incorrect
 |
 = note: expected fn pointer `for<'a> fn(Box<(dyn Any + Send + 'a)>) -> Pin<_>`
 found fn item `fn(Box<(dyn Any + Send + 'static)>) -> Pin<_> {wrapped_fn}`
note: function defined here
 --> $DIR/highlighting.rs:11:4
 |
LL | fn query(_: fn(Box<(dyn Any + Send + '_)>) -> Pin<Box<(
 |  ____^^^^^_-
LL | |  dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static
LL | | )>>) {}
 | |___-
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0308`.

View File

@ -1,18 +1,19 @@
// compile-flags: --error-format=human --color=always
// error-pattern: missing lifetime specifier
// ignore-windows
fn short(foo_bar: &Vec<&i32>) -> &i32 { //~ ERROR missing lifetime specifier
fn short(foo_bar: &Vec<&i32>) -> &i32 {
&12
}
fn long( //~ ERROR missing lifetime specifier
fn long(
foo_bar: &Vec<&i32>,
something_very_long_so_that_the_line_will_wrap_around__________: i32,
) -> &i32 {
&12
}
fn long2( //~ ERROR missing lifetime specifier
fn long2(
foo_bar: &Vec<&i32>) -> &i32 {
&12
}

View File

@ -1,17 +1,17 @@
error[E0106]: missing lifetime specifier
 --> $DIR/multiline-multipart-suggestion.rs:4:34
 --> $DIR/multiline-multipart-suggestion.rs:5:34
 |
LL | fn short(foo_bar: &Vec<&i32>) -> &i32 {
LL | fn short(foo_bar: &Vec<&i32>) -> &i32 {
 |  ---------- ^ expected named lifetime parameter
 |
 = help: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from
help: consider introducing a named lifetime parameter
 |
LL | fn short<'a>(foo_bar: &'a Vec<&'a i32>) -> &'a i32 {
LL | fn short<'a>(foo_bar: &'a Vec<&'a i32>) -> &'a i32 {
 | ++++ ++ ++ ++
error[E0106]: missing lifetime specifier
 --> $DIR/multiline-multipart-suggestion.rs:11:6
 --> $DIR/multiline-multipart-suggestion.rs:12:6
 |
LL |  foo_bar: &Vec<&i32>,
 |  ----------
@ -22,14 +22,14 @@
 = help: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from
help: consider introducing a named lifetime parameter
 |
LL ~ fn long<'a>(
LL ~ fn long<'a>(
LL ~  foo_bar: &'a Vec<&'a i32>,
LL |  something_very_long_so_that_the_line_will_wrap_around__________: i32,
LL ~ ) -> &'a i32 {
 |
error[E0106]: missing lifetime specifier
 --> $DIR/multiline-multipart-suggestion.rs:16:29
 --> $DIR/multiline-multipart-suggestion.rs:17:29
 |
LL |  foo_bar: &Vec<&i32>) -> &i32 {
 |  ---------- ^ expected named lifetime parameter
@ -37,7 +37,7 @@
 = help: this function's return type contains a borrowed value, but the signature does not say which one of `foo_bar`'s 2 lifetimes it is borrowed from
help: consider introducing a named lifetime parameter
 |
LL ~ fn long2<'a>(
LL ~ fn long2<'a>(
LL ~  foo_bar: &'a Vec<&'a i32>) -> &'a i32 {
 |