src/eric7/QScintilla/MarkupProviders/__init__.py

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8881
54e42bc2437a
child 9221
bf71ee032bb4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/QScintilla/MarkupProviders/__init__.py	Thu Jul 07 11:23:56 2022 +0200
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Package providing various markup providers.
+"""
+
+import os
+
+import Preferences
+
+
+def getMarkupProvider(editor):
+    """
+    Public method to get a markup provider for the given editor.
+    
+    @param editor reference to the editor to get the markup provider for
+    @type Editor
+    @return markup provider
+    @rtype MarkupBase
+    """
+    if editor is not None:
+        fn = editor.getFileName()
+        
+        if fn:
+            extension = os.path.normcase(os.path.splitext(fn)[1][1:])
+        else:
+            extension = ""
+        if (
+            extension in Preferences.getEditor(
+                "PreviewHtmlFileNameExtensions") or
+            editor.getLanguage() == "HTML"
+        ):
+            from .HtmlProvider import HtmlProvider
+            return HtmlProvider()
+        elif (
+            extension in Preferences.getEditor(
+                "PreviewMarkdownFileNameExtensions") or
+            editor.getLanguage().lower() == "markdown"
+        ):
+            from .MarkdownProvider import MarkdownProvider
+            return MarkdownProvider()
+        elif (
+            extension in Preferences.getEditor(
+                "PreviewRestFileNameExtensions") or
+            editor.getLanguage().lower() == "restructuredtext"
+        ):
+            from .RestructuredTextProvider import RestructuredTextProvider
+            return RestructuredTextProvider()
+    
+    # no supported markup provider identified
+    from .MarkupBase import MarkupBase
+    return MarkupBase()

eric ide

mercurial