Add more preview tab settings and fix janky behavior (#43921)
Closes #41495 Known issues: - File path links always open as non-preview tabs. Fixing this is not technically too difficult but requires more invasive changes and so should be done in a future PR. Release Notes: - Fixed strange behavior when reopening closed preview tabs - Overhauled preview tabs settings: - Added setting `preview_tabs.enable_preview_from_project_panel` (default `true`) - Kept setting `preview_tabs.enable_preview_from_file_finder` (default `false`) - Added setting `preview_tabs.enable_preview_from_multibuffer` (default `true`) - Added setting `preview_tabs.enable_preview_multibuffer_from_code_navigation` (default `false`) - Added setting `preview_tabs.enable_preview_file_from_code_navigation` (default `true`) - Renamed setting `preview_tabs.enable_preview_from_code_navigation` to `preview_tabs.enable_keep_preview_on_code_navigation` (default `false`) --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com> Co-authored-by: Cole Miller <cole@zed.dev>
This commit is contained in:
co-authored by
Smit Barmase
Cole Miller
parent
290a1550aa
commit
87976e91cf
@@ -152,14 +152,31 @@ pub struct PreviewTabsSettingsContent {
|
||||
///
|
||||
/// Default: true
|
||||
pub enabled: Option<bool>,
|
||||
/// Whether to open tabs in preview mode when opened from the project panel with a single click.
|
||||
///
|
||||
/// Default: true
|
||||
pub enable_preview_from_project_panel: Option<bool>,
|
||||
/// Whether to open tabs in preview mode when selected from the file finder.
|
||||
///
|
||||
/// Default: false
|
||||
pub enable_preview_from_file_finder: Option<bool>,
|
||||
/// Whether a preview tab gets replaced when code navigation is used to navigate away from the tab.
|
||||
/// Whether to open tabs in preview mode when opened from a multibuffer.
|
||||
///
|
||||
/// Default: true
|
||||
pub enable_preview_from_multibuffer: Option<bool>,
|
||||
/// Whether to open tabs in preview mode when code navigation is used to open a multibuffer.
|
||||
///
|
||||
/// Default: false
|
||||
pub enable_preview_from_code_navigation: Option<bool>,
|
||||
pub enable_preview_multibuffer_from_code_navigation: Option<bool>,
|
||||
/// Whether to open tabs in preview mode when code navigation is used to open a single file.
|
||||
///
|
||||
/// Default: true
|
||||
pub enable_preview_file_from_code_navigation: Option<bool>,
|
||||
/// Whether to keep tabs in preview mode when code navigation is used to navigate away from them.
|
||||
/// If `enable_preview_file_from_code_navigation` or `enable_preview_multibuffer_from_code_navigation` is also true, the new tab may replace the existing one.
|
||||
///
|
||||
/// Default: false
|
||||
pub enable_keep_preview_on_code_navigation: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(
|
||||
|
||||
@@ -619,9 +619,13 @@ impl VsCodeSettings {
|
||||
fn preview_tabs_settings_content(&self) -> Option<PreviewTabsSettingsContent> {
|
||||
skip_default(PreviewTabsSettingsContent {
|
||||
enabled: self.read_bool("workbench.editor.enablePreview"),
|
||||
enable_preview_from_project_panel: None,
|
||||
enable_preview_from_file_finder: self
|
||||
.read_bool("workbench.editor.enablePreviewFromQuickOpen"),
|
||||
enable_preview_from_code_navigation: self
|
||||
enable_preview_from_multibuffer: None,
|
||||
enable_preview_multibuffer_from_code_navigation: None,
|
||||
enable_preview_file_from_code_navigation: None,
|
||||
enable_keep_preview_on_code_navigation: self
|
||||
.read_bool("workbench.editor.enablePreviewFromCodeNavigation"),
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user