diff options
author | Chris Copeland <chris@chrisnc.net> | 2022-07-15 14:56:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-15 21:56:26 +0000 |
commit | 2a676dfad837d1784ed0911d314bc263804ef4ef (patch) | |
tree | f5ab5069dd71fc6c73c8d3f4dd5d409b5b37523a /alacritty_config_derive | |
parent | 40bbdce6de8775b7bbc3f9a5731337d1dd05d195 (diff) | |
download | alacritty-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.rs | 8 | ||||
-rw-r--r-- | alacritty_config_derive/tests/config.rs | 10 |
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", ]); } |