src/eric7/QScintilla/TypingCompleters/__init__.py

Tue, 08 Nov 2022 19:47:11 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 08 Nov 2022 19:47:11 +0100
branch
eric7
changeset 9493
aeaa6bf49831
parent 9482
a2bc06a54d9d
child 9497
8beca4047c53
permissions
-rw-r--r--

Changed typing completer imports to use importlib.import_module().

# -*- coding: utf-8 -*-

# Copyright (c) 2007 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Package implementing lexers for the various supported programming languages.
"""

import importlib


def getCompleter(language, editor, parent=None):
    """
    Module function to instantiate a lexer object for a given language.

    @param language language of the lexer (string)
    @param editor reference to the editor object (QScintilla.Editor)
    @param parent reference to the parent object (QObject)
    @return reference to the instanciated lexer object (QsciLexer)
    """
    languageCompleterMapping = {
        "Python": "CompleterPython",
        "Python3": "CompleterPython",
        "MicroPython": "CompleterPython",
        "Cython": "CompleterPython",
        "Ruby": "CompleterRuby",
        "YAML": "CompleterYaml",
    }

    if language in languageCompleterMapping:
        mod = importlib.import_module(
            "eric7.QScintilla.TypingCompleters.{0}".format(
                languageCompleterMapping[language]
            )
        )
        if mod:
            return mod.createCompleter(editor, parent)

    return None

eric ide

mercurial