@@ -2766,150 +2766,6 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
files: USER,
metadata: None,
}),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Blinking",
- description: "Sets the cursor blinking behavior in the terminal",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.blinking
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content.terminal.get_or_insert_default().blinking
- },
- }),
- files: USER,
- metadata: None,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Cursor Shape",
- description: "Default cursor shape for the terminal",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.cursor_shape
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .terminal
- .get_or_insert_default()
- .cursor_shape
- },
- }),
- files: USER,
- metadata: None,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Alternate Scroll",
- description: "Sets whether Alternate Scroll mode is active by default",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.alternate_scroll
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .terminal
- .get_or_insert_default()
- .alternate_scroll
- },
- }),
- files: USER,
- metadata: None,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Option As Meta",
- description: "Sets whether the option key behaves as the meta key",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.option_as_meta
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .terminal
- .get_or_insert_default()
- .option_as_meta
- },
- }),
- files: USER,
- metadata: None,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Copy On Select",
- description: "Whether selecting text in the terminal automatically copies to clipboard",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.copy_on_select
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .terminal
- .get_or_insert_default()
- .copy_on_select
- },
- }),
- files: USER,
- metadata: None,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Keep Selection On Copy",
- description: "Whether to keep the text selection after copying it to the clipboard",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.keep_selection_on_copy
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .terminal
- .get_or_insert_default()
- .keep_selection_on_copy
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Max Scroll History Lines",
- description: "The maximum number of lines to keep in the scrollback history",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.max_scroll_history_lines
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .terminal
- .get_or_insert_default()
- .max_scroll_history_lines
- },
- }),
- metadata: None,
- files: USER,
- }),
SettingsPageItem::SectionHeader("Outline Panel"),
SettingsPageItem::SettingItem(SettingItem {
title: "Outline Panel Button",
@@ -4491,49 +4347,6 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Layout Settings"),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Default Width",
- description: "Default width when the terminal is docked to the left or right (in pixels)",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.default_width
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .terminal
- .get_or_insert_default()
- .default_width
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Default Height",
- description: "Default height when the terminal is docked to the bottom (in pixels)",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.default_height
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .terminal
- .get_or_insert_default()
- .default_height
- },
- }),
- metadata: None,
- files: USER,
- }),
SettingsPageItem::SectionHeader("Advanced Settings"),
SettingsPageItem::SettingItem(SettingItem {
title: "Max Scroll History Lines",
@@ -461,6 +461,14 @@ fn init_renderers(cx: &mut App) {
render_dropdown(*settings_field, file, window, cx)
})
.add_renderer::<settings::ShowMinimap>(|settings_field, file, _, window, cx| {
+ let variants = || -> &'static [settings::ShowMinimap] {
+ <settings::ShowMinimap as strum::VariantArray>::VARIANTS
+ };
+ let labels = || -> &'static [&'static str] {
+ <settings::ShowMinimap as strum::VariantNames>::VARIANTS
+ };
+ dbg!(variants(), labels());
+
render_dropdown(*settings_field, file, window, cx)
})
.add_renderer::<settings::DisplayIn>(|settings_field, file, _, window, cx| {
@@ -2269,7 +2277,7 @@ where
labels()[variants().iter().position(|v| *v == current_value).unwrap()];
DropdownMenu::new(
- "dropdown",
+ SharedString::from(format!("dropdown-{}", field.type_name())),
current_value_label.to_title_case(),
ContextMenu::build(window, cx, move |mut menu, _, _| {
for (&value, &label) in std::iter::zip(variants(), labels()) {