static gboolean ide_langserv_completion_provider_match (GtkSourceCompletionProvider *provider, GtkSourceCompletionContext *context) { GtkSourceCompletionActivation activation; GtkTextIter iter; g_assert (IDE_IS_LANGSERV_COMPLETION_PROVIDER (provider)); g_assert (GTK_SOURCE_IS_COMPLETION_CONTEXT (context)); if (!gtk_source_completion_context_get_iter (context, &iter)) return FALSE; activation = gtk_source_completion_context_get_activation (context); if (activation == GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE) { if (gtk_text_iter_starts_line (&iter) || !gtk_text_iter_backward_char (&iter) || g_unichar_isspace (gtk_text_iter_get_char (&iter))) return FALSE; } if (ide_completion_provider_context_in_comment (context)) return FALSE; return TRUE; }
static gboolean ide_ctags_completion_provider_match (GtkSourceCompletionProvider *provider, GtkSourceCompletionContext *context) { IdeCtagsCompletionProvider *self = (IdeCtagsCompletionProvider *)provider; GtkSourceCompletionActivation activation; GtkTextIter iter; g_assert (IDE_IS_CTAGS_COMPLETION_PROVIDER (self)); g_assert (GTK_SOURCE_IS_COMPLETION_CONTEXT (context)); if (!gtk_source_completion_context_get_iter (context, &iter)) return FALSE; activation = gtk_source_completion_context_get_activation (context); if (activation == GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE) { if (gtk_text_iter_starts_line (&iter) || !gtk_text_iter_backward_char (&iter) || g_unichar_isspace (gtk_text_iter_get_char (&iter))) return FALSE; } if (!g_settings_get_boolean (self->settings, "ctags-autocompletion")) return FALSE; if (ide_completion_provider_context_in_comment (context)) return FALSE; return TRUE; }