[gtksourceview] tests: include selected language in details



commit 43ddc76dd869398508ea38bcfb0e69d3cc27332e
Author: Christian Hergert <chergert redhat com>
Date:   Thu Oct 1 09:56:58 2020 -0700

    tests: include selected language in details
    
    We can use the bottom position to track the language as well so
    that it is clear which syntax was guessed after loading a file.

 tests/test-widget.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/tests/test-widget.c b/tests/test-widget.c
index 5d4e6575..bb1b3f1b 100644
--- a/tests/test-widget.c
+++ b/tests/test-widget.c
@@ -750,6 +750,8 @@ update_cursor_position_info (TestWidget *self)
        gchar **classes;
        gchar **classes_ptr;
        GString *classes_str;
+       GtkSourceLanguage *lang;
+       const char *language = "none";
 
        gtk_text_buffer_get_iter_at_mark (GTK_TEXT_BUFFER (self->priv->buffer),
                                          &iter,
@@ -775,11 +777,15 @@ update_cursor_position_info (TestWidget *self)
 
        g_strfreev (classes);
 
-       msg = g_strdup_printf ("offset: %d, line: %d, column: %u, classes: %s",
-                              offset,
-                              line,
-                              column,
-                              classes_str->str);
+       if ((lang = gtk_source_buffer_get_language (self->priv->buffer)))
+               language = gtk_source_language_get_id (lang);
+
+       msg = g_strdup_printf ("language: %s offset: %d, line: %d, column: %u, classes: %s",
+                              language,
+                              offset,
+                              line,
+                              column,
+                              classes_str->str);
 
        gtk_label_set_text (self->priv->cursor_position_info, msg);
 
@@ -1046,6 +1052,11 @@ test_widget_init (TestWidget *self)
        self->priv->buffer = GTK_SOURCE_BUFFER (
                gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->priv->view)));
 
+       g_signal_connect_swapped (self->priv->buffer,
+                                 "notify::language",
+                                 G_CALLBACK (update_cursor_position_info),
+                                 self);
+
        g_object_ref (self->priv->buffer);
 
        g_signal_connect (self->priv->show_top_border_window_checkbutton,


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