[gnome-builder] clang-completion: fallback to strcmp for matching priorities
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] clang-completion: fallback to strcmp for matching priorities
- Date: Mon, 7 Nov 2016 21:05:08 +0000 (UTC)
commit ddc18259d08657d01ed7d6e0f870d544e02be89f
Author: Christian Hergert <chergert redhat com>
Date: Mon Nov 7 13:04:37 2016 -0800
clang-completion: fallback to strcmp for matching priorities
It is very weird when the completion results change ordering. So we want
to keep the same ordering. For simplicity sake, just use strcmp() for
this.
However, we do want to improve the scoring engine so this is less likely
to occur.
Note that result set as we receive it from Clang are in no sorted order.
That result set order can change on every query, so stable sort on our
side is not enough to provide consistent ordering to the user.
plugins/clang/ide-clang-completion-provider.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/plugins/clang/ide-clang-completion-provider.c b/plugins/clang/ide-clang-completion-provider.c
index 34cf76e..d31cdaa 100644
--- a/plugins/clang/ide-clang-completion-provider.c
+++ b/plugins/clang/ide-clang-completion-provider.c
@@ -95,14 +95,19 @@ static gint
sort_by_priority (gconstpointer a,
gconstpointer b)
{
- IdeClangCompletionItem *itema = (IdeClangCompletionItem *)a;
- IdeClangCompletionItem *itemb = (IdeClangCompletionItem *)b;
+ const IdeClangCompletionItem *itema = (const IdeClangCompletionItem *)a;
+ const IdeClangCompletionItem *itemb = (const IdeClangCompletionItem *)b;
if (itema->priority < itemb->priority)
return -1;
else if (itema->priority > itemb->priority)
return 1;
- return 0;
+
+ /* If the item is in the result set here, we should have a valid
+ * typed_text field because we already scored the completion item.
+ */
+
+ return g_strcmp0 (itema->typed_text, itemb->typed_text);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]