@@ -15,7 +15,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
SettingsPageItem::SectionHeader("General Settings"),
SettingsPageItem::SettingItem(SettingItem {
title: "Confirm Quit",
- description: "Whether to confirm before quitting Zed",
+ description: "Confirm before quitting Zed",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.workspace.confirm_quit,
pick_mut: |settings_content| &mut settings_content.workspace.confirm_quit,
@@ -25,7 +25,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Restore On Startup",
- description: "Whether to restore previous session when opening Zed",
+ description: "Restore previous session when opening Zed",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.workspace.restore_on_startup,
pick_mut: |settings_content| {
@@ -35,30 +35,6 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Restore File State",
- description: "Whether to restore previous file state when reopening",
- field: Box::new(SettingField {
- pick: |settings_content| &settings_content.workspace.restore_on_file_reopen,
- pick_mut: |settings_content| {
- &mut settings_content.workspace.restore_on_file_reopen
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Close on File Delete",
- description: "Whether to automatically close files that have been deleted",
- field: Box::new(SettingField {
- pick: |settings_content| &settings_content.workspace.close_on_file_delete,
- pick_mut: |settings_content| {
- &mut settings_content.workspace.close_on_file_delete
- },
- }),
- metadata: None,
- files: USER,
- }),
SettingsPageItem::SettingItem(SettingItem {
title: "When Closing With No Tabs",
description: "What to do when using the 'close active item' action with no tabs",
@@ -87,7 +63,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Use System Path Prompts",
- description: "Whether to use native OS dialogs for 'Open' and 'Save As'",
+ description: "Use native OS dialogs for 'Open' and 'Save As'",
field: Box::new(SettingField {
pick: |settings_content| {
&settings_content.workspace.use_system_path_prompts
@@ -101,7 +77,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Use System Prompts",
- description: "Whether to use native OS dialogs for confirmations",
+ description: "Use native OS dialogs for confirmations",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.workspace.use_system_prompts,
pick_mut: |settings_content| {
@@ -111,6 +87,18 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Redact Private Values",
+ description: "Hide the values of variables in private files",
+ field: Box::new(SettingField {
+ pick: |settings_content| &settings_content.editor.redact_private_values,
+ pick_mut: |settings_content| {
+ &mut settings_content.editor.redact_private_values
+ },
+ }),
+ metadata: None,
+ files: USER,
+ }),
SettingsPageItem::SectionHeader("Scoped Settings"),
SettingsPageItem::SettingItem(SettingItem {
// todo(settings_ui): Implement another setting item type that just shows an edit in settings.json
@@ -338,7 +326,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
// behavior to have them both enabled at the same time
SettingsPageItem::SettingItem(SettingItem {
title: "Vim Mode",
- description: "Whether to enable vim modes and key bindings",
+ description: "Enable vim modes and key bindings",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.vim_mode,
pick_mut: |settings_content| &mut settings_content.vim_mode,
@@ -348,7 +336,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Helix Mode",
- description: "Whether to enable helix modes and key bindings",
+ description: "Enable helix modes and key bindings",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.helix_mode,
pick_mut: |settings_content| &mut settings_content.helix_mode,
@@ -426,7 +414,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Selection Highlight",
- description: "Whether to highlight all occurrences of selected text",
+ description: "Highlight all occurrences of selected text",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.editor.selection_highlight,
pick_mut: |settings_content| {
@@ -446,10 +434,24 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Minimum Contrast For Highlights",
+ description: "The minimum APCA perceptual contrast to maintain when rendering text over highlight backgrounds",
+ field: Box::new(SettingField {
+ pick: |settings_content| {
+ &settings_content.editor.minimum_contrast_for_highlights
+ },
+ pick_mut: |settings_content| {
+ &mut settings_content.editor.minimum_contrast_for_highlights
+ },
+ }),
+ metadata: None,
+ files: USER,
+ }),
SettingsPageItem::SectionHeader("Guides"),
SettingsPageItem::SettingItem(SettingItem {
title: "Show Wrap Guides",
- description: "Whether to show wrap guides (vertical rulers)",
+ description: "Show wrap guides (vertical rulers)",
field: Box::new(SettingField {
pick: |settings_content| {
&settings_content
@@ -487,29 +489,6 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER | LOCAL,
}),
- SettingsPageItem::SectionHeader("Whitespace"),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Show Whitespace",
- description: "Whether to show tabs and spaces",
- field: Box::new(SettingField {
- pick: |settings_content| {
- &settings_content
- .project
- .all_languages
- .defaults
- .show_whitespaces
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .project
- .all_languages
- .defaults
- .show_whitespaces
- },
- }),
- metadata: None,
- files: USER | LOCAL,
- }),
SettingsPageItem::SectionHeader("Layout"),
SettingsPageItem::SettingItem(SettingItem {
title: "Bottom Dock Layout",
@@ -573,7 +552,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Zoomed Padding",
- description: "Whether to show padding for zoomed panels",
+ description: "Show padding for zoomed panels",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.workspace.zoomed_padding,
pick_mut: |settings_content| &mut settings_content.workspace.zoomed_padding,
@@ -601,68 +580,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
title: "Editor",
items: {
let mut items = vec![
- SettingsPageItem::SectionHeader("Search"),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Search Wrap",
- description: "Whether the editor search results will loop",
- field: Box::new(SettingField {
- pick: |settings_content| &settings_content.editor.search_wrap,
- pick_mut: |settings_content| &mut settings_content.editor.search_wrap,
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Seed Search Query From Cursor",
- description: "When to populate a new search's query based on the text under the cursor",
- field: Box::new(SettingField {
- pick: |settings_content| {
- &settings_content.editor.seed_search_query_from_cursor
- },
- pick_mut: |settings_content| {
- &mut settings_content.editor.seed_search_query_from_cursor
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Use Smartcase Search",
- description: "Whether to use smartcase (i.e., case-sensitive) search",
- field: Box::new(SettingField {
- pick: |settings_content| &settings_content.editor.use_smartcase_search,
- pick_mut: |settings_content| {
- &mut settings_content.editor.use_smartcase_search
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SectionHeader("Editor Behavior"),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Redact Private Values",
- description: "Hide the values of variables in private files",
- field: Box::new(SettingField {
- pick: |settings_content| &settings_content.editor.redact_private_values,
- pick_mut: |settings_content| {
- &mut settings_content.editor.redact_private_values
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Middle Click Paste",
- description: "Whether to enable middle-click paste on Linux",
- field: Box::new(SettingField {
- pick: |settings_content| &settings_content.editor.middle_click_paste,
- pick_mut: |settings_content| {
- &mut settings_content.editor.middle_click_paste
- },
- }),
- metadata: None,
- files: USER,
- }),
+ SettingsPageItem::SectionHeader("Multibuffer"),
SettingsPageItem::SettingItem(SettingItem {
title: "Double Click In Multibuffer",
description: "What to do when multibuffer is double-clicked in some of its excerpts",
@@ -677,20 +595,6 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Go To Definition Fallback",
- description: "Whether to follow-up empty go to definition responses from the language server",
- field: Box::new(SettingField {
- pick: |settings_content| {
- &settings_content.editor.go_to_definition_fallback
- },
- pick_mut: |settings_content| {
- &mut settings_content.editor.go_to_definition_fallback
- },
- }),
- metadata: None,
- files: USER,
- }),
SettingsPageItem::SettingItem(SettingItem {
title: "Expand Excerpt Lines",
description: "How many lines to expand the multibuffer excerpts by default",
@@ -715,20 +619,6 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Minimum Contrast For Highlights",
- description: "The minimum APCA perceptual contrast to maintain when rendering text over highlight backgrounds",
- field: Box::new(SettingField {
- pick: |settings_content| {
- &settings_content.editor.minimum_contrast_for_highlights
- },
- pick_mut: |settings_content| {
- &mut settings_content.editor.minimum_contrast_for_highlights
- },
- }),
- metadata: None,
- files: USER,
- }),
SettingsPageItem::SectionHeader("Scrolling"),
SettingsPageItem::SettingItem(SettingItem {
title: "Scroll Beyond Last Line",
@@ -813,7 +703,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
SettingsPageItem::SectionHeader("Signature Help"),
SettingsPageItem::SettingItem(SettingItem {
title: "Auto Signature Help",
- description: "Whether to automatically show a signature help pop-up or not",
+ description: "Automatically show a signature help pop-up",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.editor.auto_signature_help,
pick_mut: |settings_content| {
@@ -825,7 +715,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Show Signature Help After Edits",
- description: "Whether to show the signature help pop-up after completions or bracket pairs inserted",
+ description: "Show the signature help pop-up after completions or bracket pairs are inserted",
field: Box::new(SettingField {
pick: |settings_content| {
&settings_content.editor.show_signature_help_after_edits
@@ -852,7 +742,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
SettingsPageItem::SectionHeader("Hover"),
SettingsPageItem::SettingItem(SettingItem {
title: "Hover Popover Enabled",
- description: "Whether to show the informational hover box when moving the mouse over symbols in the editor",
+ description: "Show the informational hover box when moving the mouse over symbols in the editor",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.editor.hover_popover_enabled,
pick_mut: |settings_content| {
@@ -875,10 +765,10 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Code Actions"),
+ SettingsPageItem::SectionHeader("Code Actions & Selection"),
SettingsPageItem::SettingItem(SettingItem {
title: "Inline Code Actions",
- description: "Whether to show code action button at start of buffer line",
+ description: "Show code action button at start of buffer line",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.editor.inline_code_actions,
pick_mut: |settings_content| {
@@ -888,10 +778,9 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Selection"),
SettingsPageItem::SettingItem(SettingItem {
title: "Drag And Drop Selection",
- description: "Whether to enable drag and drop selection",
+ description: "Enable drag and drop selection",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(drag_and_drop) =
@@ -940,7 +829,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
SettingsPageItem::SectionHeader("Gutter"),
SettingsPageItem::SettingItem(SettingItem {
title: "Show Line Numbers",
- description: "Whether to show line numbers in the gutter",
+ description: "Show line numbers in the gutter",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(gutter) = &settings_content.editor.gutter {
@@ -962,7 +851,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Relative Line Numbers",
- description: "Whether the line numbers on editors gutter are relative or not",
+ description: "Whether the line numbers in the editor's gutter are relative or not",
field: Box::new(SettingField {
pick: |settings_content| &settings_content.editor.relative_line_numbers,
pick_mut: |settings_content| {
@@ -974,7 +863,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Show Runnables",
- description: "Whether to show runnable buttons in the gutter",
+ description: "Show runnable buttons in the gutter",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(gutter) = &settings_content.editor.gutter {
@@ -996,7 +885,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Show Breakpoints",
- description: "Whether to show breakpoints in the gutter",
+ description: "Show breakpoints in the gutter",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(gutter) = &settings_content.editor.gutter {
@@ -1018,7 +907,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Show Folds",
- description: "Whether to show code folding controls in the gutter",
+ description: "Show code folding controls in the gutter",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(gutter) = &settings_content.editor.gutter {
@@ -1081,7 +970,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Cursors",
- description: "Whether to show cursor positions in the scrollbar",
+ description: "Show cursor positions in the scrollbar",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(scrollbar) = &settings_content.editor.scrollbar {
@@ -1103,7 +992,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Git Diff",
- description: "Whether to show git diff indicators in the scrollbar",
+ description: "Show git diff indicators in the scrollbar",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(scrollbar) = &settings_content.editor.scrollbar {
@@ -1125,7 +1014,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Search Results",
- description: "Whether to show buffer search result indicators in the scrollbar",
+ description: "Show buffer search result indicators in the scrollbar",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(scrollbar) = &settings_content.editor.scrollbar {
@@ -1147,7 +1036,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Selected Text",
- description: "Whether to show selected text occurrences in the scrollbar",
+ description: "Show selected text occurrences in the scrollbar",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(scrollbar) = &settings_content.editor.scrollbar {
@@ -1169,7 +1058,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Selected Symbol",
- description: "Whether to show selected symbol occurrences in the scrollbar",
+ description: "Show selected symbol occurrences in the scrollbar",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(scrollbar) = &settings_content.editor.scrollbar {
@@ -1398,100 +1287,10 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Tabs"),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Show Tab Bar",
- description: "Whether or not to show the tab bar in the editor",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(tab_bar) = &settings_content.tab_bar {
- &tab_bar.show
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content.tab_bar.get_or_insert_default().show
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Show Git Status In Tabs",
- description: "Whether to show the Git file status on a tab item",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(tabs) = &settings_content.tabs {
- &tabs.git_status
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content.tabs.get_or_insert_default().git_status
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Show File Icons In Tabs",
- description: "Whether to show the file icon for a tab",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(tabs) = &settings_content.tabs {
- &tabs.file_icons
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content.tabs.get_or_insert_default().file_icons
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- title: "Tab Close Position",
- description: "Position of the close button in a tab",
- field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(tabs) = &settings_content.tabs {
- &tabs.close_position
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content.tabs.get_or_insert_default().close_position
- },
- }),
- metadata: None,
- files: USER,
- }),
- SettingsPageItem::SettingItem(SettingItem {
- files: USER,
- title: "Maximum Tabs",
- description: "Maximum open tabs in a pane. Will not close an unsaved tab",
- // todo(settings_ui): The default for this value is null and it's use in code
- // is complex, so I'm going to come back to this later
- field: Box::new(
- SettingField {
- pick: |settings_content| &settings_content.workspace.max_tabs,
- pick_mut: |settings_content| {
- &mut settings_content.workspace.max_tabs
- },
- }
- .unimplemented(),
- ),
- metadata: None,
- }),
SettingsPageItem::SectionHeader("Toolbar"),
SettingsPageItem::SettingItem(SettingItem {
title: "Breadcrumbs",
- description: "Whether to show breadcrumbs",
+ description: "Show breadcrumbs",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(toolbar) = &settings_content.editor.toolbar {
@@ -1513,7 +1312,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Quick Actions",
- description: "Whether to show quick action buttons (e.g., search, selection, editor controls, etc.)",
+ description: "Show quick action buttons (e.g., search, selection, editor controls, etc.)",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(toolbar) = &settings_content.editor.toolbar {
@@ -1535,7 +1334,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Selections Menu",
- description: "Whether to show the selections menu in the editor toolbar",
+ description: "Show the selections menu in the editor toolbar",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(toolbar) = &settings_content.editor.toolbar {
@@ -1557,7 +1356,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Agent Review",
- description: "Whether to show agent review buttons in the editor toolbar",
+ description: "Show agent review buttons in the editor toolbar",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(toolbar) = &settings_content.editor.toolbar {
@@ -1579,7 +1378,7 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
}),
SettingsPageItem::SettingItem(SettingItem {
title: "Code Actions",
- description: "Whether to show code action buttons in the editor toolbar",
+ description: "Show code action buttons in the editor toolbar",
field: Box::new(SettingField {
pick: |settings_content| {
if let Some(toolbar) = &settings_content.editor.toolbar {
@@ -1676,656 +1475,809 @@ pub(crate) fn settings_data() -> Vec<SettingsPage> {
],
},
SettingsPage {
- title: "Workbench & Window",
+ title: "Search & Files",
items: vec![
- SettingsPageItem::SectionHeader("Status Bar"),
+ SettingsPageItem::SectionHeader("Search"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Project Panel Button",
- description: "Whether to show the project panel button in the status bar",
+ title: "Whole Word",
+ description: "Search for whole words by default",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(project_panel) = &settings_content.project_panel {
- &project_panel.button
+ if let Some(search) = &settings_content.editor.search {
+ &search.whole_word
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .project_panel
+ .editor
+ .search
.get_or_insert_default()
- .button
+ .whole_word
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Active Language Button",
- description: "Whether to show the active language button in the status bar",
+ title: "Case Sensitive",
+ description: "Search case-sensitively by default",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(status_bar) = &settings_content.status_bar {
- &status_bar.active_language_button
+ if let Some(search) = &settings_content.editor.search {
+ &search.case_sensitive
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .status_bar
+ .editor
+ .search
.get_or_insert_default()
- .active_language_button
+ .case_sensitive
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Cursor Position Button",
- description: "Whether to show the cursor position button in the status bar",
+ title: "Include Ignored",
+ description: "Include ignored files in search results by default",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(status_bar) = &settings_content.status_bar {
- &status_bar.cursor_position_button
+ if let Some(search) = &settings_content.editor.search {
+ &search.include_ignored
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .status_bar
+ .editor
+ .search
.get_or_insert_default()
- .cursor_position_button
+ .include_ignored
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Terminal Button",
- description: "Whether to show the terminal button in the status bar",
+ title: "Regex",
+ description: "Use regex search by default",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(terminal) = &settings_content.terminal {
- &terminal.button
+ if let Some(search) = &settings_content.editor.search {
+ &search.regex
} else {
&None
}
},
pick_mut: |settings_content| {
- &mut settings_content.terminal.get_or_insert_default().button
+ &mut settings_content.editor.search.get_or_insert_default().regex
},
}),
metadata: None,
files: USER,
}),
+ // todo: null by default
SettingsPageItem::SettingItem(SettingItem {
- title: "Diagnostics Button",
- description: "Whether to show the project diagnostics button in the status bar",
+ title: "Include Ignored in Search",
+ description: "Use gitignored files when searching",
+ field: Box::new(
+ SettingField {
+ pick: |settings_content| {
+ if let Some(file_finder) = &settings_content.file_finder {
+ &file_finder.include_ignored
+ } else {
+ &None
+ }
+ },
+ pick_mut: |settings_content| {
+ &mut settings_content
+ .file_finder
+ .get_or_insert_default()
+ .include_ignored
+ },
+ }
+ .unimplemented(),
+ ),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Search Wrap",
+ description: "Whether the editor search results will loop",
+ field: Box::new(SettingField {
+ pick: |settings_content| &settings_content.editor.search_wrap,
+ pick_mut: |settings_content| &mut settings_content.editor.search_wrap,
+ }),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Seed Search Query From Cursor",
+ description: "When to populate a new search's query based on the text under the cursor",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(diagnostics) = &settings_content.diagnostics {
- &diagnostics.button
- } else {
- &None
- }
+ &settings_content.editor.seed_search_query_from_cursor
},
pick_mut: |settings_content| {
- &mut settings_content.diagnostics.get_or_insert_default().button
+ &mut settings_content.editor.seed_search_query_from_cursor
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Project Search Button",
- description: "Whether to show the project search button in the status bar",
+ title: "Use Smartcase Search",
+ description: "Use smartcase (i.e., case-sensitive) search",
field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(search) = &settings_content.editor.search {
- &search.button
+ pick: |settings_content| &settings_content.editor.use_smartcase_search,
+ pick_mut: |settings_content| {
+ &mut settings_content.editor.use_smartcase_search
+ },
+ }),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SectionHeader("File Management"),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "File Icons",
+ description: "Show file icons in the file finder",
+ field: Box::new(SettingField {
+ pick: |settings_content| {
+ if let Some(file_finder) = &settings_content.file_finder {
+ &file_finder.file_icons
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .editor
- .search
+ .file_finder
.get_or_insert_default()
- .button
+ .file_icons
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Debugger Button",
- description: "Whether to show the debugger button in the status bar",
+ title: "Modal Max Width",
+ description: "Determines how much space the file finder can take up in relation to the available window width",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(debugger) = &settings_content.debugger {
- &debugger.button
+ if let Some(file_finder) = &settings_content.file_finder {
+ &file_finder.modal_max_width
} else {
&None
}
},
pick_mut: |settings_content| {
- &mut settings_content.debugger.get_or_insert_default().button
+ &mut settings_content
+ .file_finder
+ .get_or_insert_default()
+ .modal_max_width
},
}),
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Tab Bar"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Editor Tabs",
- description: "Whether or not to show the tab bar in the editor",
+ title: "Restore File State",
+ description: "Restore previous file state when reopening",
field: Box::new(SettingField {
- pick: |settings_content| {
- if let Some(tab_bar) = &settings_content.tab_bar {
- &tab_bar.show
- } else {
- &None
- }
+ pick: |settings_content| &settings_content.workspace.restore_on_file_reopen,
+ pick_mut: |settings_content| {
+ &mut settings_content.workspace.restore_on_file_reopen
},
+ }),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Close on File Delete",
+ description: "Automatically close files that have been deleted",
+ field: Box::new(SettingField {
+ pick: |settings_content| &settings_content.workspace.close_on_file_delete,
pick_mut: |settings_content| {
- &mut settings_content.tab_bar.get_or_insert_default().show
+ &mut settings_content.workspace.close_on_file_delete
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show Navigation History Buttons",
- description: "Whether or not to show the navigation history buttons in the tab bar",
+ title: "Skip Focus For Active In Search",
+ description: "Whether the file finder should skip focus for the active file in search results",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(tab_bar) = &settings_content.tab_bar {
- &tab_bar.show_nav_history_buttons
+ if let Some(file_finder) = &settings_content.file_finder {
+ &file_finder.skip_focus_for_active_in_search
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .tab_bar
+ .file_finder
.get_or_insert_default()
- .show_nav_history_buttons
+ .skip_focus_for_active_in_search
},
}),
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Title Bar"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show Branch Icon",
- description: "Whether to show the branch icon beside branch switcher in the titlebar",
+ title: "Git Status",
+ description: "Show the git status in the file finder",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(title_bar) = &settings_content.title_bar {
- &title_bar.show_branch_icon
+ if let Some(file_finder) = &settings_content.file_finder {
+ &file_finder.git_status
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .title_bar
+ .file_finder
.get_or_insert_default()
- .show_branch_icon
+ .git_status
},
}),
metadata: None,
files: USER,
}),
+ SettingsPageItem::SectionHeader("File Scan"),
+ ],
+ },
+ SettingsPage {
+ title: "Workbench & Window",
+ items: vec![
+ SettingsPageItem::SectionHeader("Status Bar"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show Branch Name",
- description: "Whether to show the branch name button in the titlebar",
+ title: "Project Panel Button",
+ description: "Show the project panel button in the status bar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(title_bar) = &settings_content.title_bar {
- &title_bar.show_branch_name
+ if let Some(project_panel) = &settings_content.project_panel {
+ &project_panel.button
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .title_bar
+ .project_panel
.get_or_insert_default()
- .show_branch_name
+ .button
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show Project Items",
- description: "Whether to show the project host and name in the titlebar",
+ title: "Active Language Button",
+ description: "Show the active language button in the status bar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(title_bar) = &settings_content.title_bar {
- &title_bar.show_project_items
+ if let Some(status_bar) = &settings_content.status_bar {
+ &status_bar.active_language_button
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .title_bar
+ .status_bar
.get_or_insert_default()
- .show_project_items
+ .active_language_button
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show Onboarding Banner",
- description: "Whether to show banners announcing new features in the titlebar",
+ title: "Cursor Position Button",
+ description: "Show the cursor position button in the status bar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(title_bar) = &settings_content.title_bar {
- &title_bar.show_onboarding_banner
+ if let Some(status_bar) = &settings_content.status_bar {
+ &status_bar.cursor_position_button
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .title_bar
+ .status_bar
.get_or_insert_default()
- .show_onboarding_banner
+ .cursor_position_button
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show User Picture",
- description: "Whether to show user picture in the titlebar",
+ title: "Terminal Button",
+ description: "Show the terminal button in the status bar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(title_bar) = &settings_content.title_bar {
- &title_bar.show_user_picture
+ if let Some(terminal) = &settings_content.terminal {
+ &terminal.button
} else {
&None
}
},
pick_mut: |settings_content| {
- &mut settings_content
- .title_bar
- .get_or_insert_default()
- .show_user_picture
+ &mut settings_content.terminal.get_or_insert_default().button
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show Sign In",
- description: "Whether to show the sign in button in the titlebar",
+ title: "Diagnostics Button",
+ description: "Show the project diagnostics button in the status bar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(title_bar) = &settings_content.title_bar {
- &title_bar.show_sign_in
+ if let Some(diagnostics) = &settings_content.diagnostics {
+ &diagnostics.button
} else {
&None
}
},
pick_mut: |settings_content| {
- &mut settings_content
- .title_bar
- .get_or_insert_default()
- .show_sign_in
+ &mut settings_content.diagnostics.get_or_insert_default().button
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show Menus",
- description: "Whether to show the menus in the titlebar",
+ title: "Project Search Button",
+ description: "Show the project search button in the status bar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(title_bar) = &settings_content.title_bar {
- &title_bar.show_menus
+ if let Some(search) = &settings_content.editor.search {
+ &search.button
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .title_bar
+ .editor
+ .search
.get_or_insert_default()
- .show_menus
+ .button
},
}),
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Tab Settings"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Activate On Close",
- description: "What to do after closing the current tab",
+ title: "Debugger Button",
+ description: "Show the debugger button in the status bar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(tabs) = &settings_content.tabs {
- &tabs.activate_on_close
+ if let Some(debugger) = &settings_content.debugger {
+ &debugger.button
} else {
&None
}
},
pick_mut: |settings_content| {
- &mut settings_content
- .tabs
- .get_or_insert_default()
- .activate_on_close
+ &mut settings_content.debugger.get_or_insert_default().button
},
}),
metadata: None,
files: USER,
}),
+ SettingsPageItem::SectionHeader("Title Bar"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Tab Show Diagnostics",
- description: "Which files containing diagnostic errors/warnings to mark in the tabs",
+ title: "Show Branch Icon",
+ description: "Show the branch icon beside branch switcher in the titlebar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(tabs) = &settings_content.tabs {
- &tabs.show_diagnostics
+ if let Some(title_bar) = &settings_content.title_bar {
+ &title_bar.show_branch_icon
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .tabs
+ .title_bar
.get_or_insert_default()
- .show_diagnostics
+ .show_branch_icon
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Show Close Button",
- description: "Controls the appearance behavior of the tab's close button",
+ title: "Show Branch Name",
+ description: "Show the branch name button in the titlebar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(tabs) = &settings_content.tabs {
- &tabs.show_close_button
+ if let Some(title_bar) = &settings_content.title_bar {
+ &title_bar.show_branch_name
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .tabs
+ .title_bar
.get_or_insert_default()
- .show_close_button
+ .show_branch_name
},
}),
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Preview Tabs"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Preview Tabs Enabled",
- description: "Whether to show opened editors as preview tabs",
+ title: "Show Project Items",
+ description: "Show the project host and name in the titlebar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(preview_tabs) = &settings_content.preview_tabs {
- &preview_tabs.enabled
+ if let Some(title_bar) = &settings_content.title_bar {
+ &title_bar.show_project_items
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .preview_tabs
+ .title_bar
.get_or_insert_default()
- .enabled
+ .show_project_items
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Enable Preview From File Finder",
- description: "Whether to open tabs in preview mode when selected from the file finder",
+ title: "Show Onboarding Banner",
+ description: "Show banners announcing new features in the titlebar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(preview_tabs) = &settings_content.preview_tabs {
- &preview_tabs.enable_preview_from_file_finder
+ if let Some(title_bar) = &settings_content.title_bar {
+ &title_bar.show_onboarding_banner
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .preview_tabs
+ .title_bar
.get_or_insert_default()
- .enable_preview_from_file_finder
+ .show_onboarding_banner
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Enable Preview From Code Navigation",
- description: "Whether a preview tab gets replaced when code navigation is used to navigate away from the tab",
+ title: "Show User Picture",
+ description: "Show user picture in the titlebar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(preview_tabs) = &settings_content.preview_tabs {
- &preview_tabs.enable_preview_from_code_navigation
+ if let Some(title_bar) = &settings_content.title_bar {
+ &title_bar.show_user_picture
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .preview_tabs
+ .title_bar
.get_or_insert_default()
- .enable_preview_from_code_navigation
+ .show_user_picture
},
}),
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("Search Settings"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Whole Word",
- description: "Whether to search for whole words by default",
+ title: "Show Sign In",
+ description: "Show the sign in button in the titlebar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(search) = &settings_content.editor.search {
- &search.whole_word
+ if let Some(title_bar) = &settings_content.title_bar {
+ &title_bar.show_sign_in
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .editor
- .search
+ .title_bar
.get_or_insert_default()
- .whole_word
+ .show_sign_in
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Case Sensitive",
- description: "Whether to search case-sensitively by default",
+ title: "Show Menus",
+ description: "Show the menus in the titlebar",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(search) = &settings_content.editor.search {
- &search.case_sensitive
+ if let Some(title_bar) = &settings_content.title_bar {
+ &title_bar.show_menus
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .editor
- .search
+ .title_bar
.get_or_insert_default()
- .case_sensitive
+ .show_menus
},
}),
metadata: None,
files: USER,
}),
+ SettingsPageItem::SectionHeader("Tab Bar"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Include Ignored",
- description: "Whether to include ignored files in search results by default",
+ title: "Show Tab Bar",
+ description: "Show the tab bar in the editor",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(search) = &settings_content.editor.search {
- &search.include_ignored
+ if let Some(tab_bar) = &settings_content.tab_bar {
+ &tab_bar.show
} else {
&None
}
},
pick_mut: |settings_content| {
- &mut settings_content
- .editor
- .search
- .get_or_insert_default()
- .include_ignored
+ &mut settings_content.tab_bar.get_or_insert_default().show
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Regex",
- description: "Whether to use regex search by default",
+ title: "Editor Tabs",
+ description: "Show the tab bar in the editor",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(search) = &settings_content.editor.search {
- &search.regex
+ if let Some(tab_bar) = &settings_content.tab_bar {
+ &tab_bar.show
} else {
&None
}
},
pick_mut: |settings_content| {
- &mut settings_content.editor.search.get_or_insert_default().regex
+ &mut settings_content.tab_bar.get_or_insert_default().show
},
}),
metadata: None,
files: USER,
}),
- SettingsPageItem::SectionHeader("File Finder"),
SettingsPageItem::SettingItem(SettingItem {
- title: "File Icons",
- description: "Whether to show file icons in the file finder",
+ title: "Show Git Status In Tabs",
+ description: "Show the Git file status on a tab item",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(file_finder) = &settings_content.file_finder {
- &file_finder.file_icons
+ if let Some(tabs) = &settings_content.tabs {
+ &tabs.git_status
+ } else {
+ &None
+ }
+ },
+ pick_mut: |settings_content| {
+ &mut settings_content.tabs.get_or_insert_default().git_status
+ },
+ }),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Show File Icons In Tabs",
+ description: "Show the file icon for a tab",
+ field: Box::new(SettingField {
+ pick: |settings_content| {
+ if let Some(tabs) = &settings_content.tabs {
+ &tabs.file_icons
+ } else {
+ &None
+ }
+ },
+ pick_mut: |settings_content| {
+ &mut settings_content.tabs.get_or_insert_default().file_icons
+ },
+ }),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Tab Close Position",
+ description: "Position of the close button in a tab",
+ field: Box::new(SettingField {
+ pick: |settings_content| {
+ if let Some(tabs) = &settings_content.tabs {
+ &tabs.close_position
+ } else {
+ &None
+ }
+ },
+ pick_mut: |settings_content| {
+ &mut settings_content.tabs.get_or_insert_default().close_position
+ },
+ }),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ files: USER,
+ title: "Maximum Tabs",
+ description: "Maximum open tabs in a pane. Will not close an unsaved tab",
+ // todo(settings_ui): The default for this value is null and it's use in code
+ // is complex, so I'm going to come back to this later
+ field: Box::new(
+ SettingField {
+ pick: |settings_content| &settings_content.workspace.max_tabs,
+ pick_mut: |settings_content| &mut settings_content.workspace.max_tabs,
+ }
+ .unimplemented(),
+ ),
+ metadata: None,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Show Navigation History Buttons",
+ description: "Show the navigation history buttons in the tab bar",
+ field: Box::new(SettingField {
+ pick: |settings_content| {
+ if let Some(tab_bar) = &settings_content.tab_bar {
+ &tab_bar.show_nav_history_buttons
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .file_finder
+ .tab_bar
.get_or_insert_default()
- .file_icons
+ .show_nav_history_buttons
},
}),
metadata: None,
files: USER,
}),
+ SettingsPageItem::SectionHeader("Tab Settings"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Modal Max Width",
- description: "Determines how much space the file finder can take up in relation to the available window width",
+ title: "Activate On Close",
+ description: "What to do after closing the current tab",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(file_finder) = &settings_content.file_finder {
- &file_finder.modal_max_width
+ if let Some(tabs) = &settings_content.tabs {
+ &tabs.activate_on_close
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .file_finder
+ .tabs
.get_or_insert_default()
- .modal_max_width
+ .activate_on_close
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Skip Focus For Active In Search",
- description: "Whether the file finder should skip focus for the active file in search results",
+ title: "Tab Show Diagnostics",
+ description: "Which files containing diagnostic errors/warnings to mark in the tabs",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(file_finder) = &settings_content.file_finder {
- &file_finder.skip_focus_for_active_in_search
+ if let Some(tabs) = &settings_content.tabs {
+ &tabs.show_diagnostics
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .file_finder
+ .tabs
.get_or_insert_default()
- .skip_focus_for_active_in_search
+ .show_diagnostics
},
}),
metadata: None,
files: USER,
}),
SettingsPageItem::SettingItem(SettingItem {
- title: "Git Status",
- description: "Whether to show the git status in the file finder",
+ title: "Show Close Button",
+ description: "Controls the appearance behavior of the tab's close button",
field: Box::new(SettingField {
pick: |settings_content| {
- if let Some(file_finder) = &settings_content.file_finder {
- &file_finder.git_status
+ if let Some(tabs) = &settings_content.tabs {
+ &tabs.show_close_button
} else {
&None
}
},
pick_mut: |settings_content| {
&mut settings_content
- .file_finder
+ .tabs
.get_or_insert_default()
- .git_status
+ .show_close_button
},
}),
metadata: None,
files: USER,
}),
- // todo: null by default
+ SettingsPageItem::SectionHeader("Preview Tabs"),
SettingsPageItem::SettingItem(SettingItem {
- title: "Include Ignored",
- description: "Whether to use gitignored files when searching",
- field: Box::new(
- SettingField {
- pick: |settings_content| {
- if let Some(file_finder) = &settings_content.file_finder {
- &file_finder.include_ignored
- } else {
- &None
- }
- },
- pick_mut: |settings_content| {
- &mut settings_content
- .file_finder
- .get_or_insert_default()
- .include_ignored
- },
- }
- .unimplemented(),
- ),
+ title: "Preview Tabs Enabled",
+ description: "Show opened editors as preview tabs",
+ field: Box::new(SettingField {
+ pick: |settings_content| {
+ if let Some(preview_tabs) = &settings_content.preview_tabs {
+ &preview_tabs.enabled
+ } else {
+ &None
+ }
+ },
+ pick_mut: |settings_content| {
+ &mut settings_content
+ .preview_tabs
+ .get_or_insert_default()
+ .enabled
+ },
+ }),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Enable Preview From File Finder",
+ description: "Whether to open tabs in preview mode when selected from the file finder",
+ field: Box::new(SettingField {
+ pick: |settings_content| {
+ if let Some(preview_tabs) = &settings_content.preview_tabs {
+ &preview_tabs.enable_preview_from_file_finder
+ } else {
+ &None
+ }
+ },
+ pick_mut: |settings_content| {
+ &mut settings_content
+ .preview_tabs
+ .get_or_insert_default()
+ .enable_preview_from_file_finder
+ },
+ }),
+ metadata: None,
+ files: USER,
+ }),
+ SettingsPageItem::SettingItem(SettingItem {
+ title: "Enable Preview From Code Navigation",
+ description: "Whether a preview tab gets replaced when code navigation is used to navigate away from the tab",
+ field: Box::new(SettingField {
+ pick: |settings_content| {
+ if let Some(preview_tabs) = &settings_content.preview_tabs {
+ &preview_tabs.enable_preview_from_code_navigation
+ } else {
+ &None
+ }
+ },
+ pick_mut: |settings_content| {
+ &mut settings_content
+ .preview_tabs
+ .get_or_insert_default()
+ .enable_preview_from_code_navigation
+ },
+ }),
metadata: None,
files: USER,
}),