Skip to content

Commit

Permalink
refactor: simplify partial ordering fn, clean up code
Browse files Browse the repository at this point in the history
  • Loading branch information
ClementTsang committed May 16, 2022
1 parent 1877ed5 commit 0831a56
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 103 deletions.
99 changes: 49 additions & 50 deletions src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ impl App {
.widget_states
.values_mut()
.for_each(|state| {
state.search_state.search_state.reset();
state.proc_search.search_state.reset();
});

// Clear current delete list
Expand Down Expand Up @@ -223,7 +223,7 @@ impl App {
{
if current_proc_state.is_search_enabled() || current_proc_state.is_sort_open
{
current_proc_state.search_state.search_state.is_enabled = false;
current_proc_state.proc_search.search_state.is_enabled = false;
current_proc_state.is_sort_open = false;
self.is_force_redraw = true;
return;
Expand All @@ -236,7 +236,7 @@ impl App {
.get_mut_widget_state(self.current_widget.widget_id - 1)
{
if current_proc_state.is_search_enabled() {
current_proc_state.search_state.search_state.is_enabled = false;
current_proc_state.proc_search.search_state.is_enabled = false;
self.move_widget_selection(&WidgetDirection::Up);
self.is_force_redraw = true;
return;
Expand Down Expand Up @@ -325,7 +325,7 @@ impl App {
_ => 0,
},
) {
proc_widget_state.search_state.search_state.is_enabled = true;
proc_widget_state.proc_search.search_state.is_enabled = true;
self.move_widget_selection(&WidgetDirection::Down);
self.is_force_redraw = true;
}
Expand Down Expand Up @@ -412,12 +412,12 @@ impl App {
.get_mut(&(self.current_widget.widget_id - 1))
{
if is_in_search_widget && proc_widget_state.is_search_enabled() {
proc_widget_state.search_state.search_toggle_ignore_case();
proc_widget_state.proc_search.search_toggle_ignore_case();
proc_widget_state.update_query();
proc_widget_state.force_update = true;

// Remember, it's the opposite (ignoring case is case "in"sensitive)
is_case_sensitive = Some(!proc_widget_state.search_state.is_ignoring_case);
is_case_sensitive = Some(!proc_widget_state.proc_search.is_ignoring_case);
}
}

Expand Down Expand Up @@ -463,12 +463,12 @@ impl App {
.get_mut(&(self.current_widget.widget_id - 1))
{
if is_in_search_widget && proc_widget_state.is_search_enabled() {
proc_widget_state.search_state.search_toggle_whole_word();
proc_widget_state.proc_search.search_toggle_whole_word();
proc_widget_state.update_query();
proc_widget_state.force_update = true;

is_searching_whole_word =
Some(proc_widget_state.search_state.is_searching_whole_word);
Some(proc_widget_state.proc_search.is_searching_whole_word);
}
}

Expand Down Expand Up @@ -518,12 +518,12 @@ impl App {
.get_mut(&(self.current_widget.widget_id - 1))
{
if is_in_search_widget && proc_widget_state.is_search_enabled() {
proc_widget_state.search_state.search_toggle_regex();
proc_widget_state.proc_search.search_toggle_regex();
proc_widget_state.update_query();
proc_widget_state.force_update = true;

is_searching_with_regex =
Some(proc_widget_state.search_state.is_searching_with_regex);
Some(proc_widget_state.proc_search.is_searching_with_regex);
}
}

Expand Down Expand Up @@ -631,10 +631,10 @@ impl App {
.get_mut(&(self.current_widget.widget_id - 1))
{
if is_in_search_widget {
if proc_widget_state.search_state.search_state.is_enabled
if proc_widget_state.proc_search.search_state.is_enabled
&& proc_widget_state.get_search_cursor_position()
< proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.len()
Expand All @@ -644,17 +644,17 @@ impl App {
.search_walk_forward(proc_widget_state.get_search_cursor_position());

let _removed_chars: String = proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.drain(current_cursor..proc_widget_state.get_search_cursor_position())
.collect();

proc_widget_state.search_state.search_state.grapheme_cursor =
proc_widget_state.proc_search.search_state.grapheme_cursor =
GraphemeCursor::new(
current_cursor,
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.len(),
Expand All @@ -680,37 +680,37 @@ impl App {
.get_mut(&(self.current_widget.widget_id - 1))
{
if is_in_search_widget
&& proc_widget_state.search_state.search_state.is_enabled
&& proc_widget_state.proc_search.search_state.is_enabled
&& proc_widget_state.get_search_cursor_position() > 0
{
let current_cursor = proc_widget_state.get_search_cursor_position();
proc_widget_state
.search_walk_back(proc_widget_state.get_search_cursor_position());

let removed_chars: String = proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.drain(proc_widget_state.get_search_cursor_position()..current_cursor)
.collect();

proc_widget_state.search_state.search_state.grapheme_cursor =
proc_widget_state.proc_search.search_state.grapheme_cursor =
GraphemeCursor::new(
proc_widget_state.get_search_cursor_position(),
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.len(),
true,
);

proc_widget_state
.search_state
.proc_search
.search_state
.char_cursor_position -= UnicodeWidthStr::width(removed_chars.as_str());

proc_widget_state.search_state.search_state.cursor_direction =
proc_widget_state.proc_search.search_state.cursor_direction =
CursorDirection::Left;

proc_widget_state.update_query();
Expand All @@ -722,7 +722,7 @@ impl App {

pub fn get_process_filter(&self, widget_id: u64) -> &Option<query::Query> {
if let Some(process_widget_state) = self.proc_state.widget_states.get(&widget_id) {
&process_widget_state.search_state.search_state.query
&process_widget_state.proc_search.search_state.query
} else {
&None
}
Expand Down Expand Up @@ -819,15 +819,15 @@ impl App {
.search_walk_back(proc_widget_state.get_search_cursor_position());
if proc_widget_state.get_search_cursor_position() < prev_cursor {
let str_slice = &proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
[proc_widget_state.get_search_cursor_position()..prev_cursor];
proc_widget_state
.search_state
.proc_search
.search_state
.char_cursor_position -= UnicodeWidthStr::width(str_slice);
proc_widget_state.search_state.search_state.cursor_direction =
proc_widget_state.proc_search.search_state.cursor_direction =
CursorDirection::Left;
}
}
Expand Down Expand Up @@ -889,15 +889,15 @@ impl App {
);
if proc_widget_state.get_search_cursor_position() > prev_cursor {
let str_slice = &proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
[prev_cursor..proc_widget_state.get_search_cursor_position()];
proc_widget_state
.search_state
.proc_search
.search_state
.char_cursor_position += UnicodeWidthStr::width(str_slice);
proc_widget_state.search_state.search_state.cursor_direction =
proc_widget_state.proc_search.search_state.cursor_direction =
CursorDirection::Right;
}
}
Expand Down Expand Up @@ -1005,21 +1005,21 @@ impl App {
.get_mut(&(self.current_widget.widget_id - 1))
{
if is_in_search_widget {
proc_widget_state.search_state.search_state.grapheme_cursor =
proc_widget_state.proc_search.search_state.grapheme_cursor =
GraphemeCursor::new(
0,
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.len(),
true,
);
proc_widget_state
.search_state
.proc_search
.search_state
.char_cursor_position = 0;
proc_widget_state.search_state.search_state.cursor_direction =
proc_widget_state.proc_search.search_state.cursor_direction =
CursorDirection::Left;
}
}
Expand All @@ -1037,31 +1037,31 @@ impl App {
.get_mut(&(self.current_widget.widget_id - 1))
{
if is_in_search_widget {
proc_widget_state.search_state.search_state.grapheme_cursor =
proc_widget_state.proc_search.search_state.grapheme_cursor =
GraphemeCursor::new(
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.len(),
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.len(),
true,
);
proc_widget_state
.search_state
.proc_search
.search_state
.char_cursor_position = UnicodeWidthStr::width(
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.as_str(),
);
proc_widget_state.search_state.search_state.cursor_direction =
proc_widget_state.proc_search.search_state.cursor_direction =
CursorDirection::Right;
}
}
Expand Down Expand Up @@ -1117,29 +1117,28 @@ impl App {
}

let removed_chars: String = proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.drain(start_index..end_index)
.collect();

proc_widget_state.search_state.search_state.grapheme_cursor = GraphemeCursor::new(
proc_widget_state.proc_search.search_state.grapheme_cursor = GraphemeCursor::new(
start_index,
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.len(),
true,
);

proc_widget_state
.search_state
.proc_search
.search_state
.char_cursor_position -= UnicodeWidthStr::width(removed_chars.as_str());

proc_widget_state.search_state.search_state.cursor_direction =
CursorDirection::Left;
proc_widget_state.proc_search.search_state.cursor_direction = CursorDirection::Left;

proc_widget_state.update_query();
proc_widget_state.force_update = true;
Expand Down Expand Up @@ -1214,23 +1213,23 @@ impl App {
&& proc_widget_state.is_search_enabled()
&& UnicodeWidthStr::width(
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.as_str(),
) <= MAX_SEARCH_LENGTH
{
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.insert(proc_widget_state.get_search_cursor_position(), caught_char);

proc_widget_state.search_state.search_state.grapheme_cursor =
proc_widget_state.proc_search.search_state.grapheme_cursor =
GraphemeCursor::new(
proc_widget_state.get_search_cursor_position(),
proc_widget_state
.search_state
.proc_search
.search_state
.current_search_query
.len(),
Expand All @@ -1240,14 +1239,14 @@ impl App {
.search_walk_forward(proc_widget_state.get_search_cursor_position());

proc_widget_state
.search_state
.proc_search
.search_state
.char_cursor_position +=
UnicodeWidthChar::width(caught_char).unwrap_or(0);

proc_widget_state.update_query();
proc_widget_state.force_update = true;
proc_widget_state.search_state.search_state.cursor_direction =
proc_widget_state.proc_search.search_state.cursor_direction =
CursorDirection::Right;

return;
Expand Down
Loading

0 comments on commit 0831a56

Please sign in to comment.