[gnome-builder] code: guess source language using basename when necessary



commit 7bc86cc0d19ddd5671609c7ef2c149d05d61fc6b
Author: Christian Hergert <chergert redhat com>
Date:   Wed Sep 11 17:25:16 2019 -0700

    code: guess source language using basename when necessary
    
    If we don't match using the full file path, then try again with just the
    basename for the file.
    
    Fixes #1033

 src/libide/code/ide-buffer.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/src/libide/code/ide-buffer.c b/src/libide/code/ide-buffer.c
index dc8716ce3..33cb5e698 100644
--- a/src/libide/code/ide-buffer.c
+++ b/src/libide/code/ide-buffer.c
@@ -3588,8 +3588,10 @@ ide_buffer_guess_language (IdeBuffer *self)
   line = ide_buffer_get_line_text (self, 0);
   file = ide_buffer_get_file (self);
 
+  basename = g_file_get_basename (file);
+
   if (!g_file_is_native (file))
-    path = basename = g_file_get_basename (file);
+    path = basename;
   else
     path = g_file_peek_path (file);
 
@@ -3600,7 +3602,9 @@ ide_buffer_guess_language (IdeBuffer *self)
   if (uncertain && lang != NULL)
     return;
 
-  if (!(lang = gtk_source_language_manager_guess_language (manager, path, content_type)))
+  /* First try with full path, then with shortname */
+  if (!(lang = gtk_source_language_manager_guess_language (manager, path, content_type)) &&
+      !(lang = gtk_source_language_manager_guess_language (manager, basename, content_type)))
     return;
 
   if (!ide_str_equal0 (gtk_source_language_get_id (lang), ide_buffer_get_language_id (self)))


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