[gnome-builder] html: use xml element highlighter for HTML too



commit c4aba9e239843281f06e24a74bf4c2f56dcbaf8d
Author: Christian Hergert <christian hergert me>
Date:   Mon May 11 15:42:22 2015 -0700

    html: use xml element highlighter for HTML too

 libide/html/ide-html-language.c |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)
---
diff --git a/libide/html/ide-html-language.c b/libide/html/ide-html-language.c
index f562c98..75738f9 100644
--- a/libide/html/ide-html-language.c
+++ b/libide/html/ide-html-language.c
@@ -20,13 +20,15 @@
 
 #include "ide-html-completion-provider.h"
 #include "ide-html-language.h"
+#include "ide-xml-highlighter.h"
 #include "ide-xml-indenter.h"
 
 struct _IdeHtmlLanguage
 {
-  IdeLanguage     parent_instance;
+  IdeLanguage        parent_instance;
 
-  IdeXmlIndenter *indenter;
+  IdeXmlIndenter    *indenter;
+  IdeXmlHighlighter *highlighter;
 };
 
 static void initable_iface_init (GInitableIface *iface);
@@ -67,6 +69,26 @@ ide_html_language_get_indenter (IdeLanguage *language)
   return IDE_INDENTER (self->indenter);
 }
 
+static IdeHighlighter *
+ide_html_language_get_highlighter (IdeLanguage *language)
+{
+  IdeHtmlLanguage *self = (IdeHtmlLanguage *)language;
+
+  g_assert (IDE_IS_HTML_LANGUAGE (self));
+
+  if (!self->highlighter)
+    {
+      IdeContext *context;
+
+      context = ide_object_get_context (IDE_OBJECT (language));
+      self->highlighter = g_object_new (IDE_TYPE_XML_HIGHLIGHTER,
+                                        "context", context,
+                                        NULL);
+    }
+
+  return IDE_HIGHLIGHTER (self->highlighter);
+}
+
 static void
 ide_html_language_finalize (GObject *object)
 {
@@ -86,6 +108,7 @@ ide_html_language_class_init (IdeHtmlLanguageClass *klass)
   object_class->finalize = ide_html_language_finalize;
 
   language_class->get_completion_providers = ide_html_language_get_completion_providers;
+  language_class->get_highlighter = ide_html_language_get_highlighter;
   language_class->get_indenter = ide_html_language_get_indenter;
 }
 


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