Skip to content

Commit 5c194f7

Browse files
settings_ui: Last minute cleanup (#40217)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Mikayla <[email protected]>
1 parent 54df581 commit 5c194f7

File tree

8 files changed

+1013
-479
lines changed

8 files changed

+1013
-479
lines changed

crates/language/src/buffer_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ async fn test_first_line_pattern(cx: &mut TestAppContext) {
269269
async fn test_language_for_file_with_custom_file_types(cx: &mut TestAppContext) {
270270
cx.update(|cx| {
271271
init_settings(cx, |settings| {
272-
settings.file_types.extend([
272+
settings.file_types.get_or_insert_default().extend([
273273
("TypeScript".into(), vec!["js".into()].into()),
274274
(
275275
"JavaScript".into(),

crates/language/src/language_settings.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ impl settings::Settings for AllLanguageSettings {
639639

640640
let mut file_types: FxHashMap<Arc<str>, GlobSet> = FxHashMap::default();
641641

642-
for (language, patterns) in &all_languages.file_types {
642+
for (language, patterns) in all_languages.file_types.iter().flatten() {
643643
let mut builder = GlobSetBuilder::new();
644644

645645
for pattern in &patterns.0 {
@@ -778,6 +778,7 @@ impl settings::Settings for AllLanguageSettings {
778778
.project
779779
.all_languages
780780
.file_types
781+
.get_or_insert_default()
781782
.extend(associations);
782783

783784
// cursor global ignore list applies to cursor-tab, so transfer it to edit_predictions.disabled_globs

crates/settings/src/settings_content.rs

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,6 @@ impl UserSettingsContent {
234234
Eq,
235235
Default,
236236
strum::VariantArray,
237-
strum::VariantNames,
238237
)]
239238
pub enum BaseKeymapContent {
240239
#[default]
@@ -248,6 +247,19 @@ pub enum BaseKeymapContent {
248247
None,
249248
}
250249

250+
impl strum::VariantNames for BaseKeymapContent {
251+
const VARIANTS: &'static [&'static str] = &[
252+
"VSCode",
253+
"JetBrains",
254+
"Sublime Text",
255+
"Atom",
256+
"TextMate",
257+
"Emacs",
258+
"Cursor",
259+
"None",
260+
];
261+
}
262+
251263
#[skip_serializing_none]
252264
#[derive(Clone, PartialEq, Default, Serialize, Deserialize, JsonSchema, MergeFrom, Debug)]
253265
pub struct TitleBarSettingsContent {
@@ -502,7 +514,18 @@ pub struct GitPanelSettingsContent {
502514
}
503515

504516
#[derive(
505-
Default, Copy, Clone, Debug, Serialize, Deserialize, JsonSchema, MergeFrom, PartialEq, Eq,
517+
Default,
518+
Copy,
519+
Clone,
520+
Debug,
521+
Serialize,
522+
Deserialize,
523+
JsonSchema,
524+
MergeFrom,
525+
PartialEq,
526+
Eq,
527+
strum::VariantArray,
528+
strum::VariantNames,
506529
)]
507530
#[serde(rename_all = "snake_case")]
508531
pub enum StatusStyle {
@@ -512,7 +535,9 @@ pub enum StatusStyle {
512535
}
513536

514537
#[skip_serializing_none]
515-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, JsonSchema, MergeFrom, PartialEq, Eq)]
538+
#[derive(
539+
Copy, Clone, Default, Debug, Serialize, Deserialize, JsonSchema, MergeFrom, PartialEq, Eq,
540+
)]
516541
pub struct ScrollbarSettings {
517542
pub show: Option<ShowScrollbar>,
518543
}
@@ -814,7 +839,19 @@ pub struct ImageViewerSettingsContent {
814839
}
815840

816841
#[skip_serializing_none]
817-
#[derive(Clone, Copy, Debug, Serialize, Deserialize, JsonSchema, MergeFrom, Default, PartialEq)]
842+
#[derive(
843+
Clone,
844+
Copy,
845+
Debug,
846+
Serialize,
847+
Deserialize,
848+
JsonSchema,
849+
MergeFrom,
850+
Default,
851+
PartialEq,
852+
strum::VariantArray,
853+
strum::VariantNames,
854+
)]
818855
#[serde(rename_all = "snake_case")]
819856
pub enum ImageFileSizeUnit {
820857
/// Displays file size in binary units (e.g., KiB, MiB).

crates/settings/src/settings_content/editor.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,18 @@ pub struct GutterContent {
334334

335335
/// How to render LSP `textDocument/documentColor` colors in the editor.
336336
#[derive(
337-
Copy, Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq, JsonSchema, MergeFrom,
337+
Copy,
338+
Clone,
339+
Debug,
340+
Default,
341+
Serialize,
342+
Deserialize,
343+
PartialEq,
344+
Eq,
345+
JsonSchema,
346+
MergeFrom,
347+
strum::VariantArray,
348+
strum::VariantNames,
338349
)]
339350
#[serde(rename_all = "snake_case")]
340351
pub enum DocumentColorsRenderMode {

crates/settings/src/settings_content/language.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ pub struct AllLanguageSettingsContent {
2727
pub languages: LanguageToSettingsMap,
2828
/// Settings for associating file extensions and filenames
2929
/// with languages.
30-
#[serde(default)]
31-
pub file_types: HashMap<Arc<str>, ExtendingVec<String>>,
30+
pub file_types: Option<HashMap<Arc<str>, ExtendingVec<String>>>,
3231
}
3332

3433
impl merge_from::MergeFrom for AllLanguageSettingsContent {

crates/settings/src/settings_content/workspace.rs

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use crate::{DockPosition, DockSide, ScrollbarSettingsContent, ShowIndentGuides};
1212
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize, JsonSchema, MergeFrom)]
1313
pub struct WorkspaceSettingsContent {
1414
/// Active pane styling settings.
15-
pub active_pane_modifiers: Option<ActivePanelModifiers>,
15+
pub active_pane_modifiers: Option<ActivePaneModifiers>,
1616
/// Layout mode for the bottom dock
1717
///
1818
/// Default: contained
@@ -243,7 +243,7 @@ pub enum ActivateOnClose {
243243
#[skip_serializing_none]
244244
#[derive(Copy, Clone, PartialEq, Debug, Default, Serialize, Deserialize, JsonSchema, MergeFrom)]
245245
#[serde(rename_all = "snake_case")]
246-
pub struct ActivePanelModifiers {
246+
pub struct ActivePaneModifiers {
247247
/// Size of the border surrounding the active pane.
248248
/// When set to 0, the active pane doesn't have any border.
249249
/// The border is drawn inset.
@@ -403,14 +403,38 @@ impl AutosaveSetting {
403403
}
404404
}
405405

406-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, JsonSchema, MergeFrom)]
406+
#[derive(
407+
Copy,
408+
Clone,
409+
Debug,
410+
Serialize,
411+
Deserialize,
412+
PartialEq,
413+
Eq,
414+
JsonSchema,
415+
MergeFrom,
416+
strum::VariantArray,
417+
strum::VariantNames,
418+
)]
407419
#[serde(rename_all = "snake_case")]
408420
pub enum PaneSplitDirectionHorizontal {
409421
Up,
410422
Down,
411423
}
412424

413-
#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, JsonSchema, MergeFrom)]
425+
#[derive(
426+
Copy,
427+
Clone,
428+
Debug,
429+
Serialize,
430+
Deserialize,
431+
PartialEq,
432+
Eq,
433+
JsonSchema,
434+
MergeFrom,
435+
strum::VariantArray,
436+
strum::VariantNames,
437+
)]
414438
#[serde(rename_all = "snake_case")]
415439
pub enum PaneSplitDirectionVertical {
416440
Left,

0 commit comments

Comments
 (0)