[gnome-builder] libide: add ide_language_get_source_language()



commit 4fd378059f7fc7a6d4fb28b34019acf1a2cd462e
Author: Christian Hergert <christian hergert me>
Date:   Tue Feb 24 17:24:30 2015 -0800

    libide: add ide_language_get_source_language()
    
    Add helper to get the GtkSourceLanguage for a given IdeLanguage. If
    GtkSourceLanguage were subclassable, we'd probably just subclass
    GtkSourceLanguage instead. But composition works fine too.

 libide/ide-language.c |   23 +++++++++++++++++++++++
 libide/ide-language.h |    4 ++++
 2 files changed, 27 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-language.c b/libide/ide-language.c
index ee505b9..0b08782 100644
--- a/libide/ide-language.c
+++ b/libide/ide-language.c
@@ -50,6 +50,29 @@ static GParamSpec *gParamSpecs [LAST_PROP];
 static IdeDiagnostician *gDiagnostician;
 
 /**
+ * ide_language_get_source_language:
+ *
+ * Retrieves the source language to use for the file.
+ *
+ * Returns: (transfer none) (nullable): A #GtkSourceLanguage or %NULL.
+ */
+GtkSourceLanguage *
+ide_language_get_source_language (IdeLanguage *self)
+{
+  IdeLanguagePrivate *priv = ide_language_get_instance_private (self);
+  GtkSourceLanguageManager *languages;
+  GtkSourceLanguage *language;
+
+  if (IDE_LANGUAGE_GET_CLASS (self)->get_source_language)
+    return IDE_LANGUAGE_GET_CLASS (self)->get_source_language (self);
+
+  languages = gtk_source_language_manager_get_default ();
+  language = gtk_source_language_manager_get_language (languages, priv->id);
+
+  return language;
+}
+
+/**
  * ide_language_get_diagnostician:
  *
  * Returns the #IdeDiagnostician for the #IdeLanguage.
diff --git a/libide/ide-language.h b/libide/ide-language.h
index ffbd07d..4817f07 100644
--- a/libide/ide-language.h
+++ b/libide/ide-language.h
@@ -19,6 +19,8 @@
 #ifndef IDE_LANGUAGE_H
 #define IDE_LANGUAGE_H
 
+#include <gtksourceview/gtksource.h>
+
 #include "ide-object.h"
 
 G_BEGIN_DECLS
@@ -37,6 +39,7 @@ struct _IdeLanguageClass
   IdeIndenter       *(*get_indenter)        (IdeLanguage *self);
   const gchar       *(*get_name)            (IdeLanguage *self);
   IdeRefactory      *(*get_refactory)       (IdeLanguage *self);
+  GtkSourceLanguage *(*get_source_language) (IdeLanguage *self);
   IdeSymbolResolver *(*get_symbol_resolver) (IdeLanguage *self);
 };
 
@@ -47,6 +50,7 @@ IdeIndenter       *ide_language_get_indenter        (IdeLanguage *self);
 const gchar       *ide_language_get_name            (IdeLanguage *self);
 IdeRefactory      *ide_language_get_refactory       (IdeLanguage *self);
 IdeSymbolResolver *ide_language_get_symbol_resolver (IdeLanguage *self);
+GtkSourceLanguage *ide_language_get_source_language (IdeLanguage *self);
 
 G_END_DECLS
 


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