@@ -38,7 +38,7 @@ use helix_core::{
38use helix_core::{Position, Selection};
38use helix_core::{Position, Selection};
39use helix_dap as dap;
39use helix_dap as dap;
41−use serde::{ser::SerializeMap, Deserialize, Deserializer, Serialize};
41+use serde::{ser::SerializeMap, Deserialize, Deserializer, Serialize, Serializer};
43fn deserialize_duration_millis<'de, D>(deserializer: D) -> Result<Duration, D::Error>
43fn deserialize_duration_millis<'de, D>(deserializer: D) -> Result<Duration, D::Error>
@@ -48,6 +48,18 @@ where
48 Ok(Duration::from_millis(millis))
48 Ok(Duration::from_millis(millis))
51+fn serialize_duration_millis<S>(duration: &Duration, serializer: S) -> Result<S::Ok, S::Error>
55+ serializer.serialize_u64(
59+ .map_err(|_| serde::ser::Error::custom("duration value overflowed u64"))?,
51#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
63#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
52#[serde(rename_all = "kebab-case", default, deny_unknown_fields)]
64#[serde(rename_all = "kebab-case", default, deny_unknown_fields)]
53pub struct FilePickerConfig {
65pub struct FilePickerConfig {
@@ -109,8 +121,12 @@ pub struct Config {
109 pub auto_pairs: AutoPairConfig,
121 pub auto_pairs: AutoPairConfig,
110 /// Automatic auto-completion, automatically pop up without user trigger. Defaults to true.
122 /// Automatic auto-completion, automatically pop up without user trigger. Defaults to true.
111 pub auto_completion: bool,
123 pub auto_completion: bool,
112− /// Time in milliseconds since last keypress before idle timers trigger. Used for autocompletion, set to 0 for instant. Defaults to 400ms.
124+ /// Time in milliseconds since last keypress before idle timers trigger.
125+ /// Used for autocompletion, set to 0 for instant. Defaults to 400ms.
127+ serialize_with = "serialize_duration_millis",
113− #[serde(skip_serializing, deserialize_with = "deserialize_duration_millis")]
128+ deserialize_with = "deserialize_duration_millis"
114 pub idle_timeout: Duration,
130 pub idle_timeout: Duration,
115 pub completion_trigger_len: u8,
131 pub completion_trigger_len: u8,
116 /// Whether to display infoboxes. Defaults to true.
132 /// Whether to display infoboxes. Defaults to true.