fix(lsp): fallback to sorting completions by label for LSPs that don't return unique sortText

This commit is contained in:
CJ van den Berg 2026-03-25 12:28:18 +01:00
parent 561124e667
commit 84a45810a6
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
2 changed files with 6 additions and 4 deletions

View file

@ -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;

View file

@ -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;