src/eric7/QScintilla/MarkupProviders/__init__.py

branch
eric7
changeset 9494
0b38ab887b0d
parent 9482
a2bc06a54d9d
child 9497
8beca4047c53
--- a/src/eric7/QScintilla/MarkupProviders/__init__.py	Tue Nov 08 19:47:11 2022 +0100
+++ b/src/eric7/QScintilla/MarkupProviders/__init__.py	Wed Nov 09 08:53:26 2022 +0100
@@ -7,6 +7,7 @@
 Package providing various markup providers.
 """
 
+import importlib
 import os
 
 from eric7 import Preferences
@@ -21,6 +22,7 @@
     @return markup provider
     @rtype MarkupBase
     """
+    markupModule = "MarkupBase"
     if editor is not None:
         fn = editor.getFileName()
 
@@ -32,27 +34,19 @@
             extension in Preferences.getEditor("PreviewHtmlFileNameExtensions")
             or editor.getLanguage() == "HTML"
         ):
-            from .HtmlProvider import HtmlProvider  # __IGNORE_WARNING_I101__
-
-            return HtmlProvider()
+            markupModule = "HtmlProvider"
         elif (
             extension in Preferences.getEditor("PreviewMarkdownFileNameExtensions")
             or editor.getLanguage().lower() == "markdown"
         ):
-            from .MarkdownProvider import MarkdownProvider  # __IGNORE_WARNING_I101__
-
-            return MarkdownProvider()
+            markupModule = "MarkdownProvider"
         elif (
             extension in Preferences.getEditor("PreviewRestFileNameExtensions")
             or editor.getLanguage().lower() == "restructuredtext"
         ):
-            from .RestructuredTextProvider import (  # __IGNORE_WARNING_I101__
-                RestructuredTextProvider,
-            )
+            markupModule = "RestructuredTextProvider"
 
-            return RestructuredTextProvider()
-
-    # no supported markup provider identified
-    from .MarkupBase import MarkupBase  # __IGNORE_WARNING_I101__
-
-    return MarkupBase()
+    mod = importlib.import_module(
+        "eric7.QScintilla.MarkupProviders.{0}".format(markupModule)
+    )
+    return mod.createProvider()

eric ide

mercurial