[gtksourceview/wip/chergert/gsv-gtk4: 252/259] cmopletion: add snippet completion provider to tests




commit 447e9451e4c5f083f507ee60197f392c6da17ef8
Author: Christian Hergert <chergert redhat com>
Date:   Wed Sep 9 20:53:18 2020 -0700

    cmopletion: add snippet completion provider to tests

 tests/test-completion.c  | 26 ++++++++++++++++++++++++++
 tests/test-completion.ui | 11 +++++++++++
 2 files changed, 37 insertions(+)
---
diff --git a/tests/test-completion.c b/tests/test-completion.c
index 712def1b..357f0f2c 100644
--- a/tests/test-completion.c
+++ b/tests/test-completion.c
@@ -101,6 +101,7 @@ static void test_provider_iface_init (GtkSourceCompletionProviderInterface *ifac
 G_DECLARE_FINAL_TYPE (TestProvider, test_provider, TEST, PROVIDER, GObject)
 
 static GtkSourceCompletionWords *word_provider;
+static GtkSourceCompletionSnippets *snippet_provider;
 static TestProvider *fixed_provider;
 static TestProvider *random_provider;
 static GMainLoop *main_loop;
@@ -467,10 +468,25 @@ nb_proposals_changed_cb (GtkSpinButton *spin_button,
        }
 }
 
+static void
+enable_snippet_provider_toggled_cb (GtkCheckButton      *button,
+                                    GtkSourceCompletion *completion)
+{
+       add_remove_provider (button,
+                            completion,
+                            GTK_SOURCE_COMPLETION_PROVIDER (snippet_provider));
+}
+
 static void
 create_completion (GtkSourceView       *source_view,
                   GtkSourceCompletion *completion)
 {
+       /* Snippets completion provider */
+       snippet_provider = gtk_source_completion_snippets_new ();
+       g_object_set (snippet_provider, "priority", 20, NULL);
+       gtk_source_completion_add_provider (completion,
+                                           GTK_SOURCE_COMPLETION_PROVIDER (snippet_provider));
+
        /* Words completion provider */
        word_provider = gtk_source_completion_words_new (NULL);
 
@@ -515,6 +531,7 @@ create_window (void)
        GtkCheckButton *enable_word_provider;
        GtkCheckButton *enable_fixed_provider;
        GtkCheckButton *enable_random_provider;
+       GtkCheckButton *enable_snippet_provider;
        GtkSpinButton *nb_fixed_proposals;
        GtkSpinButton *nb_random_proposals;
 
@@ -535,11 +552,14 @@ create_window (void)
        select_on_show = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "checkbutton_select_on_show"));
        show_icons = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, "checkbutton_show_icons"));
        enable_word_provider = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, 
"checkbutton_word_provider"));
+       enable_snippet_provider = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, 
"checkbutton_snippet_provider"));
        enable_fixed_provider = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, 
"checkbutton_fixed_provider"));
        enable_random_provider = GTK_CHECK_BUTTON (gtk_builder_get_object (builder, 
"checkbutton_random_provider"));
        nb_fixed_proposals = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, 
"spinbutton_nb_fixed_proposals"));
        nb_random_proposals = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, 
"spinbutton_nb_random_proposals"));
 
+       gtk_source_view_set_enable_snippets (source_view, TRUE);
+
        completion = gtk_source_view_get_completion (source_view);
 
        g_signal_connect_swapped (window,
@@ -561,6 +581,11 @@ create_window (void)
 
        create_completion (source_view, completion);
 
+       g_signal_connect (enable_snippet_provider,
+                         "toggled",
+                         G_CALLBACK (enable_snippet_provider_toggled_cb),
+                         completion);
+
        g_signal_connect (enable_word_provider,
                          "toggled",
                          G_CALLBACK (enable_word_provider_toggled_cb),
@@ -606,6 +631,7 @@ main (int   argc,
 
        /* Not really useful, except for debugging memory leaks. */
        g_object_unref (word_provider);
+       g_object_unref (snippet_provider);
        g_object_unref (fixed_provider);
        g_object_unref (random_provider);
 
diff --git a/tests/test-completion.ui b/tests/test-completion.ui
index 715515af..6291dbd8 100644
--- a/tests/test-completion.ui
+++ b/tests/test-completion.ui
@@ -125,6 +125,17 @@
                     </layout>
                   </object>
                 </child>
+                <child>
+                  <object class="GtkCheckButton" id="checkbutton_snippet_provider">
+                    <property name="label">Snippet provider</property>
+                    <property name="can_focus">1</property>
+                    <property name="active">1</property>
+                    <layout>
+                      <property name="column">0</property>
+                      <property name="row">3</property>
+                    </layout>
+                  </object>
+                </child>
                 <layout>
                   <property name="column">0</property>
                   <property name="row">3</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]