aboutsummaryrefslogtreecommitdiff
path: root/alacritty_config_derive
diff options
context:
space:
mode:
authorChris Copeland <chris@chrisnc.net>2022-07-15 14:56:26 -0700
committerGitHub <noreply@github.com>2022-07-15 21:56:26 +0000
commit2a676dfad837d1784ed0911d314bc263804ef4ef (patch)
treef5ab5069dd71fc6c73c8d3f4dd5d409b5b37523a /alacritty_config_derive
parent40bbdce6de8775b7bbc3f9a5731337d1dd05d195 (diff)
downloadalacritty-2a676dfad837d1784ed0911d314bc263804ef4ef.tar.gz
alacritty-2a676dfad837d1784ed0911d314bc263804ef4ef.zip
Fix thin strokes on macOS
Remove the `font.use_thin_strokes` config, which only did anything on macOS and only prior to Big Sur. Instead, we will enable or disable "font smoothing" on macOS based on the `AppleFontSmoothing` user default. These changes let users get the "thin strokes" behavior by setting `AppleFontSmoothing` to 0 with: ```sh $ defaults write -g AppleFontSmoothing -int 0 ``` (Or replace `-g` with `org.alacritty` to apply this setting only to Alacritty.app, rather than the whole system.) Add a `removed` config attribute to show helpful warnings to users who are using config options that don't do anything anymore, and apply this attribute to `font.use_thin_strokes`. Bump `crossfont` to 0.5.0 to pick up the new font smoothing behavior. This release also includes a fix for a crash when trying to load a disabled font. Fixes #4616. Fixes #6108.
Diffstat (limited to 'alacritty_config_derive')
-rw-r--r--alacritty_config_derive/src/de_struct.rs8
-rw-r--r--alacritty_config_derive/tests/config.rs10
2 files changed, 12 insertions, 6 deletions
diff --git a/alacritty_config_derive/src/de_struct.rs b/alacritty_config_derive/src/de_struct.rs
index ceb32fd9..cf7ea141 100644
--- a/alacritty_config_derive/src/de_struct.rs
+++ b/alacritty_config_derive/src/de_struct.rs
@@ -135,14 +135,14 @@ fn field_deserializer(field_streams: &mut FieldStreams, field: &Field) -> Result
config.#ident = serde::Deserialize::deserialize(unused).unwrap_or_default();
});
},
- "deprecated" => {
- // Construct deprecation message and append optional attribute override.
- let mut message = format!("Config warning: {} is deprecated", literal);
+ "deprecated" | "removed" => {
+ // Construct deprecation/removal message with optional attribute override.
+ let mut message = format!("Config warning: {} has been {}", literal, parsed.ident);
if let Some(warning) = parsed.param {
message = format!("{}; {}", message, warning.value());
}
- // Append stream to log deprecation warning.
+ // Append stream to log deprecation/removal warning.
match_assignment_stream.extend(quote! {
log::warn!(target: #LOG_TARGET, #message);
});
diff --git a/alacritty_config_derive/tests/config.rs b/alacritty_config_derive/tests/config.rs
index 58ad8bd4..2cdae613 100644
--- a/alacritty_config_derive/tests/config.rs
+++ b/alacritty_config_derive/tests/config.rs
@@ -35,6 +35,8 @@ struct Test {
enom_big: TestEnum,
#[config(deprecated)]
enom_error: TestEnum,
+ #[config(removed = "it's gone")]
+ gone: bool,
}
impl Default for Test {
@@ -48,6 +50,7 @@ impl Default for Test {
enom_small: TestEnum::default(),
enom_big: TestEnum::default(),
enom_error: TestEnum::default(),
+ gone: false,
}
}
}
@@ -90,6 +93,7 @@ fn config_deserialize() {
enom_small: "one"
enom_big: "THREE"
enom_error: "HugaBuga"
+ gone: false
"#,
)
.unwrap();
@@ -101,6 +105,7 @@ fn config_deserialize() {
assert_eq!(test.enom_small, TestEnum::One);
assert_eq!(test.enom_big, TestEnum::Three);
assert_eq!(test.enom_error, Test::default().enom_error);
+ assert_eq!(test.gone, false);
assert_eq!(test.nesting.field1, Test::default().nesting.field1);
assert_eq!(test.nesting.field2, None);
assert_eq!(test.nesting.field3, Test::default().nesting.field3);
@@ -116,8 +121,9 @@ fn config_deserialize() {
]);
let warn_logs = logger.warn_logs.lock().unwrap();
assert_eq!(warn_logs.as_slice(), [
- "Config warning: field1 is deprecated; use field2 instead",
- "Config warning: enom_error is deprecated",
+ "Config warning: field1 has been deprecated; use field2 instead",
+ "Config warning: enom_error has been deprecated",
+ "Config warning: gone has been removed; it's gone",
]);
}