[gnome-builder] langserv: add client properties to langserv providers
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] langserv: add client properties to langserv providers
- Date: Fri, 28 Oct 2016 04:53:51 +0000 (UTC)
commit a26d0972ec2b20112b9749992daddc44a58adad6
Author: Christian Hergert <chergert redhat com>
Date: Thu Oct 27 21:35:12 2016 -0700
langserv: add client properties to langserv providers
libide/langserv/ide-langserv-completion-provider.c | 60 +++++++++++++++++++-
libide/langserv/ide-langserv-diagnostic-provider.c | 62 +++++++++++++++++++-
libide/langserv/ide-langserv-rename-provider.c | 60 +++++++++++++++++++-
libide/langserv/ide-langserv-symbol-resolver.c | 60 +++++++++++++++++++-
4 files changed, 238 insertions(+), 4 deletions(-)
---
diff --git a/libide/langserv/ide-langserv-completion-provider.c
b/libide/langserv/ide-langserv-completion-provider.c
index 2d3415e..2b16eef 100644
--- a/libide/langserv/ide-langserv-completion-provider.c
+++ b/libide/langserv/ide-langserv-completion-provider.c
@@ -43,6 +43,14 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (IdeLangservCompletionProvider, ide_langserv_co
G_IMPLEMENT_INTERFACE (GTK_SOURCE_TYPE_COMPLETION_PROVIDER,
source_completion_provider_iface_init)
G_IMPLEMENT_INTERFACE (IDE_TYPE_COMPLETION_PROVIDER, NULL))
+enum {
+ PROP_0,
+ PROP_CLIENT,
+ N_PROPS
+};
+
+static GParamSpec *properties [N_PROPS];
+
static void
completion_state_free (CompletionState *state)
{
@@ -78,11 +86,60 @@ ide_langserv_completion_provider_finalize (GObject *object)
}
static void
+ide_langserv_completion_provider_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ IdeLangservCompletionProvider *self = IDE_LANGSERV_COMPLETION_PROVIDER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CLIENT:
+ g_value_set_object (value, ide_langserv_completion_provider_get_client (self));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+ide_langserv_completion_provider_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ IdeLangservCompletionProvider *self = IDE_LANGSERV_COMPLETION_PROVIDER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CLIENT:
+ ide_langserv_completion_provider_set_client (self, g_value_get_object (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
ide_langserv_completion_provider_class_init (IdeLangservCompletionProviderClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = ide_langserv_completion_provider_finalize;
+ object_class->get_property = ide_langserv_completion_provider_get_property;
+ object_class->set_property = ide_langserv_completion_provider_set_property;
+
+ properties [PROP_CLIENT] =
+ g_param_spec_object ("client",
+ "Client",
+ "The Language Server client",
+ IDE_TYPE_LANGSERV_CLIENT,
+ (G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_properties (object_class, N_PROPS, properties);
}
static void
@@ -117,7 +174,8 @@ ide_langserv_completion_provider_set_client (IdeLangservCompletionProvider *self
g_return_if_fail (IDE_IS_LANGSERV_COMPLETION_PROVIDER (self));
g_return_if_fail (!client || IDE_IS_LANGSERV_CLIENT (client));
- g_set_object (&priv->client, client);
+ if (g_set_object (&priv->client, client))
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CLIENT]);
}
static gchar *
diff --git a/libide/langserv/ide-langserv-diagnostic-provider.c
b/libide/langserv/ide-langserv-diagnostic-provider.c
index 1d07e4b..967fe73 100644
--- a/libide/langserv/ide-langserv-diagnostic-provider.c
+++ b/libide/langserv/ide-langserv-diagnostic-provider.c
@@ -42,6 +42,14 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (IdeLangservDiagnosticProvider, ide_langserv_di
G_ADD_PRIVATE (IdeLangservDiagnosticProvider)
G_IMPLEMENT_INTERFACE (IDE_TYPE_DIAGNOSTIC_PROVIDER,
diagnostic_provider_iface_init))
+enum {
+ PROP_0,
+ PROP_CLIENT,
+ N_PROPS
+};
+
+static GParamSpec *properties [N_PROPS];
+
static void
ide_langserv_diagnostic_provider_get_diagnostics_cb (GObject *object,
GAsyncResult *result,
@@ -137,11 +145,60 @@ ide_langserv_diagnostic_provider_finalize (GObject *object)
}
static void
+ide_langserv_diagnostic_provider_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ IdeLangservDiagnosticProvider *self = IDE_LANGSERV_DIAGNOSTIC_PROVIDER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CLIENT:
+ g_value_set_object (value, ide_langserv_diagnostic_provider_get_client (self));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+ide_langserv_diagnostic_provider_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ IdeLangservDiagnosticProvider *self = IDE_LANGSERV_DIAGNOSTIC_PROVIDER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CLIENT:
+ ide_langserv_diagnostic_provider_set_client (self, g_value_get_object (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
ide_langserv_diagnostic_provider_class_init (IdeLangservDiagnosticProviderClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = ide_langserv_diagnostic_provider_finalize;
+ object_class->get_property = ide_langserv_diagnostic_provider_get_property;
+ object_class->set_property = ide_langserv_diagnostic_provider_set_property;
+
+ properties [PROP_CLIENT] =
+ g_param_spec_object ("client",
+ "Client",
+ "The Language Server client",
+ IDE_TYPE_LANGSERV_CLIENT,
+ (G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_properties (object_class, N_PROPS, properties);
}
static void
@@ -191,5 +248,8 @@ ide_langserv_diagnostic_provider_set_client (IdeLangservDiagnosticProvider *self
g_return_if_fail (!client || IDE_IS_LANGSERV_CLIENT (client));
if (g_set_object (&priv->client, client))
- egg_signal_group_set_target (priv->client_signals, client);
+ {
+ egg_signal_group_set_target (priv->client_signals, client);
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CLIENT]);
+ }
}
diff --git a/libide/langserv/ide-langserv-rename-provider.c b/libide/langserv/ide-langserv-rename-provider.c
index e0a6af1..e70e62f 100644
--- a/libide/langserv/ide-langserv-rename-provider.c
+++ b/libide/langserv/ide-langserv-rename-provider.c
@@ -38,6 +38,14 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (IdeLangservRenameProvider, ide_langserv_rename
G_ADD_PRIVATE (IdeLangservRenameProvider)
G_IMPLEMENT_INTERFACE (IDE_TYPE_RENAME_PROVIDER,
rename_provider_iface_init))
+enum {
+ PROP_0,
+ PROP_CLIENT,
+ N_PROPS
+};
+
+static GParamSpec *properties [N_PROPS];
+
static void
ide_langserv_rename_provider_finalize (GObject *object)
{
@@ -50,11 +58,60 @@ ide_langserv_rename_provider_finalize (GObject *object)
}
static void
+ide_langserv_rename_provider_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ IdeLangservRenameProvider *self = IDE_LANGSERV_RENAME_PROVIDER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CLIENT:
+ g_value_set_object (value, ide_langserv_rename_provider_get_client (self));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+ide_langserv_rename_provider_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ IdeLangservRenameProvider *self = IDE_LANGSERV_RENAME_PROVIDER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CLIENT:
+ ide_langserv_rename_provider_set_client (self, g_value_get_object (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
ide_langserv_rename_provider_class_init (IdeLangservRenameProviderClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = ide_langserv_rename_provider_finalize;
+ object_class->get_property = ide_langserv_rename_provider_get_property;
+ object_class->set_property = ide_langserv_rename_provider_set_property;
+
+ properties [PROP_CLIENT] =
+ g_param_spec_object ("client",
+ "Client",
+ "The Language Server client",
+ IDE_TYPE_LANGSERV_CLIENT,
+ (G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_properties (object_class, N_PROPS, properties);
}
static void
@@ -284,5 +341,6 @@ ide_langserv_rename_provider_set_client (IdeLangservRenameProvider *self,
g_return_if_fail (IDE_IS_LANGSERV_RENAME_PROVIDER (self));
g_return_if_fail (!client || IDE_IS_LANGSERV_CLIENT (client));
- g_set_object (&priv->client, client);
+ if (g_set_object (&priv->client, client))
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CLIENT]);
}
diff --git a/libide/langserv/ide-langserv-symbol-resolver.c b/libide/langserv/ide-langserv-symbol-resolver.c
index 290a6ac..55d33c6 100644
--- a/libide/langserv/ide-langserv-symbol-resolver.c
+++ b/libide/langserv/ide-langserv-symbol-resolver.c
@@ -41,6 +41,14 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (IdeLangservSymbolResolver, ide_langserv_symbol
G_ADD_PRIVATE (IdeLangservSymbolResolver)
G_IMPLEMENT_INTERFACE (IDE_TYPE_SYMBOL_RESOLVER,
symbol_resolver_iface_init))
+enum {
+ PROP_0,
+ PROP_CLIENT,
+ N_PROPS
+};
+
+static GParamSpec *properties [N_PROPS];
+
static void
ide_langserv_symbol_resolver_finalize (GObject *object)
{
@@ -53,11 +61,60 @@ ide_langserv_symbol_resolver_finalize (GObject *object)
}
static void
+ide_langserv_symbol_resolver_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ IdeLangservSymbolResolver *self = IDE_LANGSERV_SYMBOL_RESOLVER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CLIENT:
+ g_value_set_object (value, ide_langserv_symbol_resolver_get_client (self));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+ide_langserv_symbol_resolver_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ IdeLangservSymbolResolver *self = IDE_LANGSERV_SYMBOL_RESOLVER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CLIENT:
+ ide_langserv_symbol_resolver_set_client (self, g_value_get_object (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
ide_langserv_symbol_resolver_class_init (IdeLangservSymbolResolverClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = ide_langserv_symbol_resolver_finalize;
+ object_class->get_property = ide_langserv_symbol_resolver_get_property;
+ object_class->set_property = ide_langserv_symbol_resolver_set_property;
+
+ properties [PROP_CLIENT] =
+ g_param_spec_object ("client",
+ "Client",
+ "The Language Server client",
+ IDE_TYPE_LANGSERV_CLIENT,
+ (G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_properties (object_class, N_PROPS, properties);
}
static void
@@ -91,7 +148,8 @@ ide_langserv_symbol_resolver_set_client (IdeLangservSymbolResolver *self,
g_return_if_fail (IDE_IS_LANGSERV_SYMBOL_RESOLVER (self));
g_return_if_fail (!client || IDE_IS_LANGSERV_CLIENT (client));
- g_set_object (&priv->client, client);
+ if (g_set_object (&priv->client, client))
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CLIENT]);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]