Use NonZeroU32 to ensure settings tabsize cannot be zero

This commit is contained in:
Keith Simmons
2022-06-23 12:55:38 -07:00
parent 1720933597
commit 755636d10e
11 changed files with 83 additions and 58 deletions
+7 -7
View File
@@ -83,21 +83,21 @@ fn main() {
.with_language_defaults(
"C",
settings::LanguageSettings {
tab_size: Some(2),
tab_size: Some(2.try_into().unwrap()),
..Default::default()
},
)
.with_language_defaults(
"C++",
settings::LanguageSettings {
tab_size: Some(2),
tab_size: Some(2.try_into().unwrap()),
..Default::default()
},
)
.with_language_defaults(
"Go",
settings::LanguageSettings {
tab_size: Some(4),
tab_size: Some(4.try_into().unwrap()),
hard_tabs: Some(true),
..Default::default()
},
@@ -112,28 +112,28 @@ fn main() {
.with_language_defaults(
"Rust",
settings::LanguageSettings {
tab_size: Some(4),
tab_size: Some(4.try_into().unwrap()),
..Default::default()
},
)
.with_language_defaults(
"JavaScript",
settings::LanguageSettings {
tab_size: Some(2),
tab_size: Some(2.try_into().unwrap()),
..Default::default()
},
)
.with_language_defaults(
"TypeScript",
settings::LanguageSettings {
tab_size: Some(2),
tab_size: Some(2.try_into().unwrap()),
..Default::default()
},
)
.with_language_defaults(
"TSX",
settings::LanguageSettings {
tab_size: Some(2),
tab_size: Some(2.try_into().unwrap()),
..Default::default()
},
);
+10 -10
View File
@@ -128,7 +128,7 @@ mod tests {
let settings = cx.read(Settings::test).with_language_defaults(
"JavaScript",
LanguageSettings {
tab_size: Some(2),
tab_size: Some(2.try_into().unwrap()),
..Default::default()
},
);
@@ -156,9 +156,9 @@ mod tests {
assert_eq!(settings.preferred_line_length(Some("Markdown")), 100);
assert_eq!(settings.preferred_line_length(Some("JavaScript")), 80);
assert_eq!(settings.tab_size(None), 8);
assert_eq!(settings.tab_size(Some("Markdown")), 2);
assert_eq!(settings.tab_size(Some("JavaScript")), 8);
assert_eq!(settings.tab_size(None).get(), 8);
assert_eq!(settings.tab_size(Some("Markdown")).get(), 2);
assert_eq!(settings.tab_size(Some("JavaScript")).get(), 8);
fs.save(
"/settings2.json".as_ref(),
@@ -192,9 +192,9 @@ mod tests {
assert_eq!(settings.preferred_line_length(Some("Markdown")), 120);
assert_eq!(settings.preferred_line_length(Some("JavaScript")), 80);
assert_eq!(settings.tab_size(None), 2);
assert_eq!(settings.tab_size(Some("Markdown")), 2);
assert_eq!(settings.tab_size(Some("JavaScript")), 2);
assert_eq!(settings.tab_size(None).get(), 2);
assert_eq!(settings.tab_size(Some("Markdown")).get(), 2);
assert_eq!(settings.tab_size(Some("JavaScript")).get(), 2);
fs.remove_file("/settings2.json".as_ref(), Default::default())
.await
@@ -217,8 +217,8 @@ mod tests {
assert_eq!(settings.preferred_line_length(Some("Markdown")), 100);
assert_eq!(settings.preferred_line_length(Some("JavaScript")), 80);
assert_eq!(settings.tab_size(None), 8);
assert_eq!(settings.tab_size(Some("Markdown")), 2);
assert_eq!(settings.tab_size(Some("JavaScript")), 8);
assert_eq!(settings.tab_size(None).get(), 8);
assert_eq!(settings.tab_size(Some("Markdown")).get(), 2);
assert_eq!(settings.tab_size(Some("JavaScript")).get(), 8);
}
}
+3
View File
@@ -166,6 +166,9 @@ pub fn initialize_workspace(
let action_names = cx.all_action_names().collect::<Vec<_>>();
project.set_language_server_settings(serde_json::json!({
"json": {
"format": {
"enable": true,
},
"schemas": [
{
"fileMatch": [".zed/settings.json"],