diff --git a/src/tui/mode/overlay/completion_dropdown.zig b/src/tui/mode/overlay/completion_dropdown.zig index ceb7a34..a9a2078 100644 --- a/src/tui/mode/overlay/completion_dropdown.zig +++ b/src/tui/mode/overlay/completion_dropdown.zig @@ -87,8 +87,9 @@ pub fn load_entries(self: *Type) !usize { const less_fn = struct { fn less_fn(_: void, lhs: Entry, rhs: Entry) bool { - const lhs_str = if (lhs.sort_text.len > 0) lhs.sort_text else lhs.label; - const rhs_str = if (rhs.sort_text.len > 0) rhs.sort_text else rhs.label; + const sort_text_equal = std.mem.eql(u8, lhs.sort_text, rhs.sort_text); + const lhs_str = if (!sort_text_equal and lhs.sort_text.len > 0) lhs.sort_text else lhs.label; + const rhs_str = if (!sort_text_equal and rhs.sort_text.len > 0) rhs.sort_text else rhs.label; return std.mem.order(u8, lhs_str, rhs_str) == .lt; } }.less_fn; diff --git a/src/tui/mode/overlay/completion_palette.zig b/src/tui/mode/overlay/completion_palette.zig index ae8f9d2..c6e6723 100644 --- a/src/tui/mode/overlay/completion_palette.zig +++ b/src/tui/mode/overlay/completion_palette.zig @@ -69,8 +69,9 @@ pub fn load_entries(palette: *Type) !usize { const less_fn = struct { fn less_fn(_: void, lhs: Entry, rhs: Entry) bool { - const lhs_str = if (lhs.sort_text.len > 0) lhs.sort_text else lhs.label; - const rhs_str = if (rhs.sort_text.len > 0) rhs.sort_text else rhs.label; + const sort_text_equal = std.mem.eql(u8, lhs.sort_text, rhs.sort_text); + const lhs_str = if (!sort_text_equal and lhs.sort_text.len > 0) lhs.sort_text else lhs.label; + const rhs_str = if (!sort_text_equal and rhs.sort_text.len > 0) rhs.sort_text else rhs.label; return std.mem.order(u8, lhs_str, rhs_str) == .lt; } }.less_fn;