--- 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()