Unnamed repository; edit this file 'description' to name the repository.
Add a serializer for the jump alphabet config option (#10156)
Without a serializer, we drop the custom alphabet when making config
modifications like with `:set`. For example before this commit,
`:set mouse false` would reset a custom alphabet to the default.
| -rw-r--r-- | helix-view/src/editor.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index dd360a78..d7058d3e 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -212,6 +212,14 @@ impl Default for FilePickerConfig { } } +fn serialize_alphabet<S>(alphabet: &[char], serializer: S) -> Result<S::Ok, S::Error> +where + S: Serializer, +{ + let alphabet: String = alphabet.iter().collect(); + serializer.serialize_str(&alphabet) +} + fn deserialize_alphabet<'de, D>(deserializer: D) -> Result<Vec<char>, D::Error> where D: Deserializer<'de>, @@ -323,7 +331,10 @@ pub struct Config { #[serde(default)] pub indent_heuristic: IndentationHeuristic, /// labels characters used in jumpmode - #[serde(skip_serializing, deserialize_with = "deserialize_alphabet")] + #[serde( + serialize_with = "serialize_alphabet", + deserialize_with = "deserialize_alphabet" + )] pub jump_label_alphabet: Vec<char>, } |