[gnome-builder] libide: add clang sort method



commit 93f1fd47d0f5c846cf9e9a53f74599392034be90
Author: Christian Hergert <christian hergert me>
Date:   Sun Mar 15 15:41:31 2015 -0700

    libide: add clang sort method

 libide/clang/ide-clang-completion-item.c |   17 +++++++++++++++++
 libide/clang/ide-clang-completion-item.h |    4 +++-
 2 files changed, 20 insertions(+), 1 deletions(-)
---
diff --git a/libide/clang/ide-clang-completion-item.c b/libide/clang/ide-clang-completion-item.c
index 2e769c4..d8b2356 100644
--- a/libide/clang/ide-clang-completion-item.c
+++ b/libide/clang/ide-clang-completion-item.c
@@ -161,3 +161,20 @@ completion_proposal_iface_init (GtkSourceCompletionProposalIface *iface)
 {
   iface->get_label = ide_clang_completion_item_get_label;
 }
+
+gint
+ide_clang_completion_item_sort (gconstpointer a,
+                                gconstpointer b)
+{
+  CXCompletionResult *ar = get_completion_result ((gpointer)a);
+  CXCompletionResult *br = get_completion_result ((gpointer)b);
+  unsigned aprio;
+  unsigned bprio;
+
+  aprio = clang_getCompletionPriority (ar->CompletionString);
+  bprio = clang_getCompletionPriority (br->CompletionString);
+
+  /* TODO: check that this is safe */
+
+  return (gint)aprio - (gint)bprio;
+}
diff --git a/libide/clang/ide-clang-completion-item.h b/libide/clang/ide-clang-completion-item.h
index a9fe9ac..c70cab6 100644
--- a/libide/clang/ide-clang-completion-item.h
+++ b/libide/clang/ide-clang-completion-item.h
@@ -34,7 +34,9 @@ G_BEGIN_DECLS
 typedef struct _IdeClangCompletionItem        IdeClangCompletionItem;
 typedef struct _IdeClangCompletionItemClass   IdeClangCompletionItemClass;
 
-GType ide_clang_completion_item_get_type (void);
+GType    ide_clang_completion_item_get_type (void);
+gint     ide_clang_completion_item_sort     (gconstpointer           a,
+                                             gconstpointer           b);
 
 G_END_DECLS
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]