Skip to content

Commit

Permalink
feat: filter settings (#2289)
Browse files Browse the repository at this point in the history
* filter settings

* settings filter matches
  • Loading branch information
tk103331 committed Mar 28, 2023
1 parent 401b6c7 commit 8ebbbe2
Show file tree
Hide file tree
Showing 5 changed files with 218 additions and 26 deletions.
7 changes: 7 additions & 0 deletions lapce-data/src/data.rs
Original file line number Diff line number Diff line change
Expand Up @@ -869,6 +869,13 @@ impl LapceTabData {
&config,
event_sink.clone(),
);
main_split.add_editor(
settings.filter_editor_id,
None,
LocalBufferKind::SettingsFilter,
&config,
event_sink.clone(),
);
main_split.add_editor(
rename.view_id,
None,
Expand Down
5 changes: 5 additions & 0 deletions lapce-data/src/document.rs
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,8 @@ pub enum LocalBufferKind {
Rename,
/// Search buffer in plugin panel
PluginSearch,
/// Settings filter in settings panel
SettingsFilter,
/// Source Control branch filter in the branch list
BranchesFilter,
}
Expand Down Expand Up @@ -192,6 +194,7 @@ impl BufferContent {
| LocalBufferKind::BranchesFilter
| LocalBufferKind::FilePicker
| LocalBufferKind::Settings
| LocalBufferKind::SettingsFilter
| LocalBufferKind::Keymap
| LocalBufferKind::PathName
| LocalBufferKind::PluginSearch
Expand All @@ -213,6 +216,7 @@ impl BufferContent {
| LocalBufferKind::Palette
| LocalBufferKind::FilePicker
| LocalBufferKind::Settings
| LocalBufferKind::SettingsFilter
| LocalBufferKind::Keymap
| LocalBufferKind::PathName
| LocalBufferKind::PluginSearch
Expand Down Expand Up @@ -1023,6 +1027,7 @@ impl Document {
LocalBufferKind::PluginSearch => {}
LocalBufferKind::SourceControl => {}
LocalBufferKind::BranchesFilter => {}
LocalBufferKind::SettingsFilter => {}
LocalBufferKind::Empty => {}
LocalBufferKind::Rename => {}
LocalBufferKind::Palette => {
Expand Down
23 changes: 22 additions & 1 deletion lapce-data/src/settings.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use std::sync::Arc;

use druid::{Command, Env, EventCtx, Modifiers, Target, WidgetId};
use indexmap::IndexMap;
use lapce_core::{
command::{EditCommand, FocusCommand, MoveCommand},
mode::Mode,
Expand Down Expand Up @@ -47,6 +48,11 @@ pub struct LapceSettingsPanelData {
pub settings_widget_id: WidgetId,
pub settings_view_id: WidgetId,
pub settings_split_id: WidgetId,
pub settings_sections: IndexMap<LapceSettingsKind, String>,
pub plugin_section: String,

pub filter_editor_id: WidgetId,
pub filter_matches: IndexMap<String, usize>,

/// Mapping of setting key to dropdown data for that key
pub dropdown_data:
Expand Down Expand Up @@ -91,6 +97,14 @@ impl KeyPressFocus for LapceSettingsPanelData {

impl LapceSettingsPanelData {
pub fn new() -> Self {
let settings_sections = IndexMap::from([
(LapceSettingsKind::Core, "Core Settings".to_string()),
(LapceSettingsKind::UI, "UI Settings".to_string()),
(LapceSettingsKind::Editor, "Editor Settings".to_string()),
(LapceSettingsKind::Terminal, "Terminal Settings".to_string()),
(LapceSettingsKind::Theme, "Theme Settings".to_string()),
(LapceSettingsKind::Keymap, "Keybindings".to_string()),
]);
Self {
panel_widget_id: WidgetId::next(),
keymap_widget_id: WidgetId::next(),
Expand All @@ -99,10 +113,17 @@ impl LapceSettingsPanelData {
settings_widget_id: WidgetId::next(),
settings_view_id: WidgetId::next(),
settings_split_id: WidgetId::next(),

filter_editor_id: WidgetId::next(),
dropdown_data: im::HashMap::new(),
filter_matches: IndexMap::new(),
settings_sections,
plugin_section: String::from("Plugin Settings"),
}
}

pub fn update_matches(&mut self, key: String, count: usize) {
self.filter_matches.insert(key, count);
}
}

impl Default for LapceSettingsPanelData {
Expand Down
1 change: 1 addition & 0 deletions lapce-ui/src/editor/view.rs
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ impl LapceEditorView {
LocalBufferKind::Settings => {}
LocalBufferKind::PluginSearch => {}
LocalBufferKind::BranchesFilter => {}
LocalBufferKind::SettingsFilter => {}
LocalBufferKind::Palette => {
data.focus_area = FocusArea::Palette;
}
Expand Down
Loading

0 comments on commit 8ebbbe2

Please sign in to comment.