[gnome-builder] clang: always perform new queries on ctrl+space
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] clang: always perform new queries on ctrl+space
- Date: Fri, 26 Feb 2016 23:56:14 +0000 (UTC)
commit 56b701faaf1b22b8795648efc83d60233ca3fcce
Author: Christian Hergert <christian hergert me>
Date: Fri Feb 26 15:54:25 2016 -0800
clang: always perform new queries on ctrl+space
plugins/clang/ide-clang-completion-provider.c | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/plugins/clang/ide-clang-completion-provider.c b/plugins/clang/ide-clang-completion-provider.c
index a1443e0..4ce66c2 100644
--- a/plugins/clang/ide-clang-completion-provider.c
+++ b/plugins/clang/ide-clang-completion-provider.c
@@ -446,6 +446,7 @@ ide_clang_completion_provider_populate (GtkSourceCompletionProvider *provider,
{
IdeClangCompletionProvider *self = (IdeClangCompletionProvider *)provider;
IdeClangCompletionState *state;
+ GtkSourceCompletionActivation activation;
g_autoptr(GtkSourceCompletion) completion = NULL;
g_autofree gchar *line = NULL;
g_autofree gchar *prefix = NULL;
@@ -461,6 +462,8 @@ ide_clang_completion_provider_populate (GtkSourceCompletionProvider *provider,
g_return_if_fail (IDE_IS_CLANG_COMPLETION_PROVIDER (self));
g_return_if_fail (GTK_SOURCE_IS_COMPLETION_CONTEXT (context));
+ activation = gtk_source_completion_context_get_activation (context);
+
if (!gtk_source_completion_context_get_iter (context, &iter))
IDE_GOTO (failure);
@@ -476,8 +479,11 @@ ide_clang_completion_provider_populate (GtkSourceCompletionProvider *provider,
if (!gtk_text_iter_starts_line (&stop))
gtk_text_iter_backward_char (&stop);
- if (gtk_text_iter_get_char (&stop) == ';')
- IDE_GOTO (failure);
+ if (activation == GTK_SOURCE_COMPLETION_ACTIVATION_INTERACTIVE)
+ {
+ if (gtk_text_iter_get_char (&stop) == ';')
+ IDE_GOTO (failure);
+ }
/*
* Walk backwards to locate the first character after a stop character.
@@ -505,8 +511,12 @@ ide_clang_completion_provider_populate (GtkSourceCompletionProvider *provider,
* We might be able to reuse the results from our previous query if
* the buffer is sufficiently similar. If so, possibly just rearrange
* some things and redisplay those results.
+ *
+ * However, we always want to perform a new query if ctrl+space was
+ * pressed.
*/
- if (ide_clang_completion_provider_can_replay (self, line))
+ if ((activation != GTK_SOURCE_COMPLETION_ACTIVATION_USER_REQUESTED) &&
+ ide_clang_completion_provider_can_replay (self, line))
{
IDE_PROBE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]