file_finder_settings.rs

 1use anyhow::Result;
 2use schemars::JsonSchema;
 3use serde::{Deserialize, Serialize};
 4use settings::{Settings, SettingsKey, SettingsSources, SettingsUi};
 5
 6#[derive(Deserialize, Debug, Clone, Copy, PartialEq)]
 7pub struct FileFinderSettings {
 8    pub file_icons: bool,
 9    pub modal_max_width: Option<FileFinderWidth>,
10    pub skip_focus_for_active_in_search: bool,
11    pub include_ignored: Option<bool>,
12}
13
14impl Settings for FileFinderSettings {
15    type FileContent = FileFinderSettingsContent;
16
17    fn load(sources: SettingsSources<Self::FileContent>, _: &mut gpui::App) -> Result<Self> {
18        sources.json_merge()
19    }
20
21    fn import_from_vscode(_vscode: &settings::VsCodeSettings, _current: &mut Self::FileContent) {}
22}
23
24#[derive(Debug, PartialEq, Eq, Clone, Copy, Default, Serialize, Deserialize, JsonSchema)]
25#[serde(rename_all = "lowercase")]
26pub enum FileFinderWidth {
27    #[default]
28    Small,
29    Medium,
30    Large,
31    XLarge,
32    Full,
33}