[gnome-builder] buffer: change file's language instead of buffer:language



commit 28cdf9baa97df84be1b3eeabc610c3769b07fe67
Author: Christian Hergert <christian hergert me>
Date:   Sun May 17 22:39:11 2015 -0700

    buffer: change file's language instead of buffer:language
    
    This makes the source language reload when the files language changes.
    We then change the files language when doing the emacs modeline thing
    (not to be confused with what the rest of the world considers a modeline).
    
    This also allows us to update the indenter and diagnostics provider.

 libide/ide-buffer.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/libide/ide-buffer.c b/libide/ide-buffer.c
index b95d880..1199697 100644
--- a/libide/ide-buffer.c
+++ b/libide/ide-buffer.c
@@ -684,8 +684,8 @@ ide_buffer_do_modeline (IdeBuffer *self)
   if (old_lang != NULL)
     old_id = gtk_source_language_get_id (old_lang);
 
-  if (old_id == NULL || g_strcmp0 (old_id, new_id) != 0)
-      g_object_set (self, "language", new_lang, NULL);
+  if (old_id == NULL || !ide_str_equal0 (old_id, new_id))
+    _ide_file_set_content_type (ifile, content_type);
 }
 
 static void
@@ -876,6 +876,9 @@ ide_buffer__file_notify_language (IdeBuffer  *self,
                                   GParamSpec *pspec,
                                   IdeFile    *file)
 {
+  GtkSourceLanguage *source_language;
+  IdeLanguage *language;
+
   g_assert (IDE_IS_BUFFER (self));
   g_assert (IDE_IS_FILE (file));
 
@@ -884,6 +887,12 @@ ide_buffer__file_notify_language (IdeBuffer  *self,
    *        This should be refactored as part of the move to libpeas.
    */
 
+  if ((language = ide_file_get_language (file)))
+    {
+      source_language = ide_language_get_source_language (language);
+      gtk_source_buffer_set_language (GTK_SOURCE_BUFFER (self), source_language);
+    }
+
   ide_file_load_settings_async (file,
                                 NULL,
                                 ide_buffer__file_load_settings_cb,


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