[gnome-builder/wip/chergert/clang] clang: add API to set unsaved file data
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/chergert/clang] clang: add API to set unsaved file data
- Date: Thu, 26 Apr 2018 09:53:23 +0000 (UTC)
commit f4b87f55aaa2e26f2ca16d59aa8cb58bbaf24808
Author: Christian Hergert <chergert redhat com>
Date: Thu Apr 26 02:50:37 2018 -0700
clang: add API to set unsaved file data
src/plugins/clang/ide-clang.c | 24 ++++++++++++++++++++++--
src/plugins/clang/ide-clang.h | 3 +++
2 files changed, 25 insertions(+), 2 deletions(-)
---
diff --git a/src/plugins/clang/ide-clang.c b/src/plugins/clang/ide-clang.c
index 22ac77d40..209a0f748 100644
--- a/src/plugins/clang/ide-clang.c
+++ b/src/plugins/clang/ide-clang.c
@@ -32,8 +32,9 @@
struct _IdeClang
{
- GObject parent;
- GFile *workdir;
+ GObject parent;
+ GFile *workdir;
+ GHashTable *unsaved_files;
};
G_DEFINE_TYPE (IdeClang, ide_clang, G_TYPE_OBJECT)
@@ -303,6 +304,7 @@ ide_clang_finalize (GObject *object)
IdeClang *self = (IdeClang *)object;
g_clear_object (&self->workdir);
+ g_clear_pointer (&self->unsaved_files, g_hash_table_unref);
G_OBJECT_CLASS (ide_clang_parent_class)->finalize (object);
}
@@ -318,6 +320,10 @@ ide_clang_class_init (IdeClangClass *klass)
static void
ide_clang_init (IdeClang *self)
{
+ self->unsaved_files = g_hash_table_new_full (g_file_hash,
+ (GEqualFunc)g_file_equal,
+ g_object_unref,
+ (GDestroyNotify)g_bytes_unref);
}
IdeClang *
@@ -2071,4 +2077,18 @@ ide_clang_get_index_key_finish (IdeClang *self,
return ide_task_propagate_pointer (IDE_TASK (result), error);
}
+void
+ide_clang_set_unsaved_file (IdeClang *self,
+ GFile *file,
+ GBytes *bytes)
+{
+ g_return_if_fail (IDE_IS_CLANG (self));
+ g_return_if_fail (G_IS_FILE (file));
+
+ if (bytes == NULL)
+ g_hash_table_remove (self->unsaved_files, file);
+ else
+ g_hash_table_insert (self->unsaved_files, g_object_ref (file), g_bytes_ref (bytes));
+}
+
/* vim:set foldmethod=marker: */
diff --git a/src/plugins/clang/ide-clang.h b/src/plugins/clang/ide-clang.h
index 2a54df942..28f857652 100644
--- a/src/plugins/clang/ide-clang.h
+++ b/src/plugins/clang/ide-clang.h
@@ -109,5 +109,8 @@ void ide_clang_get_highlight_index_async (IdeClang *s
IdeHighlightIndex *ide_clang_get_highlight_index_finish (IdeClang *self,
GAsyncResult *result,
GError **error);
+void ide_clang_set_unsaved_file (IdeClang *self,
+ GFile *file,
+ GBytes *bytes);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]