[gnome-builder] libide/code: add default lookup_symbol implementation



commit 5f16fdd89b3a7f4519d40d0d360d3d38b09fc9e3
Author: Christian Hergert <chergert redhat com>
Date:   Mon Apr 25 10:31:50 2022 -0700

    libide/code: add default lookup_symbol implementation
    
    We should have a default for this so that plugins do not need to implement
    it if they don't support it.

 src/libide/code/ide-symbol-resolver.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
---
diff --git a/src/libide/code/ide-symbol-resolver.c b/src/libide/code/ide-symbol-resolver.c
index d5c830d7a..57cc88ce0 100644
--- a/src/libide/code/ide-symbol-resolver.c
+++ b/src/libide/code/ide-symbol-resolver.c
@@ -125,6 +125,37 @@ ide_symbol_resolver_real_find_nearest_scope_finish (IdeSymbolResolver  *self,
   return ide_task_propagate_pointer (IDE_TASK (result), error);
 }
 
+static void
+ide_symbol_resolver_real_lookup_symbol_async (IdeSymbolResolver   *self,
+                                              IdeLocation         *location,
+                                              GCancellable        *cancellable,
+                                              GAsyncReadyCallback  callback,
+                                              gpointer             user_data)
+{
+  g_assert (IDE_IS_SYMBOL_RESOLVER (self));
+  g_assert (location != NULL);
+  g_assert (!cancellable || G_IS_CANCELLABLE (cancellable));
+
+  ide_task_report_new_error (self,
+                             callback,
+                             user_data,
+                             ide_symbol_resolver_real_lookup_symbol_async,
+                             G_IO_ERROR,
+                             G_IO_ERROR_NOT_SUPPORTED,
+                             "Not supported");
+}
+
+static IdeSymbol *
+ide_symbol_resolver_real_lookup_symbol_finish (IdeSymbolResolver  *self,
+                                               GAsyncResult       *result,
+                                               GError            **error)
+{
+  g_assert (IDE_IS_SYMBOL_RESOLVER (self));
+  g_assert (IDE_IS_TASK (result));
+
+  return ide_task_propagate_pointer (IDE_TASK (result), error);
+}
+
 static void
 ide_symbol_resolver_default_init (IdeSymbolResolverInterface *iface)
 {
@@ -134,6 +165,8 @@ ide_symbol_resolver_default_init (IdeSymbolResolverInterface *iface)
   iface->find_references_finish = ide_symbol_resolver_real_find_references_finish;
   iface->find_nearest_scope_async = ide_symbol_resolver_real_find_nearest_scope_async;
   iface->find_nearest_scope_finish = ide_symbol_resolver_real_find_nearest_scope_finish;
+  iface->lookup_symbol_async = ide_symbol_resolver_real_lookup_symbol_async;
+  iface->lookup_symbol_finish = ide_symbol_resolver_real_lookup_symbol_finish;
 }
 
 /**


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