diff --git a/src/libide/lsp/ide-lsp-client.c b/src/libide/lsp/ide-lsp-client.c index 7b81c83fa6852fdf8f88bd9d84fccf2a3e9498b9..9600e6987d49ac0104a827f6fc29e46e022a0ecb 100644 --- a/src/libide/lsp/ide-lsp-client.c +++ b/src/libide/lsp/ide-lsp-client.c @@ -83,6 +83,7 @@ enum { }; enum { + INITIALIZED, LOAD_CONFIGURATION, NOTIFICATION, PUBLISHED_DIAGNOSTICS, @@ -1139,6 +1140,17 @@ ide_lsp_client_class_init (IdeLspClientClass *klass) g_object_class_install_properties (object_class, N_PROPS, properties); + + signals [INITIALIZED] = + g_signal_new ("initialized", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (IdeLspClientClass, initialized), + NULL, + NULL, + NULL, + G_TYPE_NONE, 0); + /** * IdeLspClient::load-configuration: * @self: a #IdeLspClient @@ -1284,6 +1296,8 @@ ide_lsp_client_initialized_cb (GObject *object, project = ide_project_from_context (context); dzl_signal_group_set_target (priv->project_signals, project); + g_signal_emit (self, signals[INITIALIZED], 0); + IDE_EXIT; } diff --git a/src/libide/lsp/ide-lsp-client.h b/src/libide/lsp/ide-lsp-client.h index 27e1c4515428f67b40f1831d4135c7442650a88f..e6e1bfb55ad4c49ffb592660665c80b681f4c2c9 100644 --- a/src/libide/lsp/ide-lsp-client.h +++ b/src/libide/lsp/ide-lsp-client.h @@ -53,6 +53,7 @@ struct _IdeLspClientClass GFile *file, IdeDiagnostics *diagnostics); GVariant *(*load_configuration) (IdeLspClient *self); + void (*initialized) (IdeLspClient *self); /*< private >*/ gpointer _reserved[15];