static GtkSourceCompletionWords * create_provider (void) { GtkSourceCompletionWords *provider; GSettings *settings; provider = gtk_source_completion_words_new (_("Document Words"), NULL); settings = g_settings_new (WORD_COMPLETION_SETTINGS_BASE); g_settings_bind (settings, SETTINGS_KEY_MINIMUM_WORD_SIZE, provider, "minimum-word-size", G_SETTINGS_BIND_GET); update_activation (provider, settings); g_signal_connect_object (settings, "changed::" SETTINGS_KEY_INTERACTIVE_COMPLETION, G_CALLBACK (on_interactive_completion_changed_cb), provider, 0); g_object_unref (settings); return provider; }
static void impl_activate (GeditPlugin *plugin, GeditWindow *window) { WindowData *data; GList *views, *l; gedit_debug (DEBUG_PLUGINS); data = g_slice_new (WindowData); data->provider = gtk_source_completion_words_new (_("Document Words"), NULL); views = gedit_window_get_views (window); for (l = views; l != NULL; l = g_list_next (l)) { add_view (data, GTK_SOURCE_VIEW (l->data)); } g_object_set_data_full (G_OBJECT (window), WINDOW_DATA_KEY, data, (GDestroyNotify) free_window_data); data->tab_added_id = g_signal_connect (window, "tab-added", G_CALLBACK (tab_added_cb), NULL); data->tab_removed_id = g_signal_connect (window, "tab-removed", G_CALLBACK (tab_removed_cb), NULL); }
SourceView::SourceView(): Gtk::ScrolledWindow(), source_view(GTK_SOURCE_VIEW(gtk_source_view_new())) { add(*Glib::wrap(GTK_WIDGET(source_view))); completion = gtk_source_view_get_completion(source_view); completion_words = gtk_source_completion_words_new("Suggestions", nullptr); gtk_source_completion_words_register(completion_words, gtk_text_view_get_buffer(GTK_TEXT_VIEW(source_view))); gtk_source_completion_add_provider(completion, GTK_SOURCE_COMPLETION_PROVIDER(completion_words), nullptr); gtk_source_buffer_set_highlight_matching_brackets(GetSourceBuffer(), TRUE); gtk_source_view_set_show_line_marks(source_view, TRUE); ShowLineNumbers(true); show_all(); }
static void on_notify_autocompletion (GSettings* settings, const gchar* key, gpointer user_data) { Sourceview *sv; sv = ANJUTA_SOURCEVIEW(user_data); GtkSourceCompletion* completion = gtk_source_view_get_completion(GTK_SOURCE_VIEW(sv->priv->view)); if (g_settings_get_boolean (settings, key)) { DEBUG_PRINT ("Register word completion provider"); GtkSourceCompletionWords *prov_words; prov_words = gtk_source_completion_words_new (NULL, NULL); gtk_source_completion_words_register (prov_words, gtk_text_view_get_buffer (GTK_TEXT_VIEW (sv->priv->view))); gtk_source_completion_add_provider (completion, GTK_SOURCE_COMPLETION_PROVIDER (prov_words), NULL); } else { GList* node; for (node = gtk_source_completion_get_providers(completion); node != NULL; node = g_list_next (node)) { if (GTK_IS_SOURCE_COMPLETION_WORDS(node->data)) { DEBUG_PRINT ("Unregister word completion provider"); gtk_source_completion_words_unregister (GTK_SOURCE_COMPLETION_WORDS(node->data), gtk_text_view_get_buffer (GTK_TEXT_VIEW (sv->priv->view))); gtk_source_completion_remove_provider(completion, GTK_SOURCE_COMPLETION_PROVIDER(node->data), NULL); break; } } } }