Библиотека Python, цветной текст, который является кодом?

Я создаю чат, но не на основе Интернета, а на основе Python. в чате вы обмениваетесь информацией с AI API. Мне было интересно, есть ли библиотека, которая распознает, что это текст кода, и раскрашивает его в нужные цвета, потому что теперь я проделал некоторую ручную работу, и это выглядит плохо.

class PythonHighlighter(QSyntaxHighlighter):
    def __init__(self, parent=None):
        super().__init__(parent)
        self._highlight_rules = []

        # Keyword format
        keyword_format = QTextCharFormat()
        keyword_format.setForeground(QColor("blue"))
        keyword_format.setFontWeight(QFont.Bold)
        keywords = ["False", "await", "else", "import", "pass", "None", "break", "except", "in", "raise", "True", "class", "finally", "is", "return", "and", "continue", "for", "lambda", "try", "as", "def","from","nonlocal","while","assert","del","global","not","with","async","elif","if","or","yield","print","range","open","self"]
        self._highlight_rules.append((QRegExp(r"\b" + "|".join(keywords) + r"\b"), keyword_format))

        # String format
        string_format = QTextCharFormat()
        string_format.setForeground(QColor("green"))
        self._highlight_rules.append((QRegExp(r"\".*\""), string_format))
        self._highlight_rules.append((QRegExp(r"\'.*\'"), string_format))

        # Comment format
        comment_format = QTextCharFormat()
        comment_format.setForeground(QColor("gray"))
        self._highlight_rules.append((QRegExp(r"#[^\n]*"), comment_format))

    def highlightBlock(self, text):
        for pattern, format in self._highlight_rules:
            expression = QRegExp(pattern)
            index = expression.indexIn(text)
            while index >= 0:
                length = expression.matchedLength()
                self.setFormat(index, length, format)
                index = expression.indexIn(text, index + length)
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Посмотрите Пигменты возможно этого будет достаточно.

Это дом Пигментов. Это универсальный инструмент подсветки синтаксиса, подходящий для использования на хостинге кода, форумах, вики или других приложениях, которым необходимо улучшить исходный код.
Основные моменты:

  • поддерживается широкий спектр 581 языка и других текстовых форматов.
  • особое внимание уделяется деталям, повышающим качество мелирования
  • поддержка новых языков и форматов добавляется легко; большинство языков используют простой механизм лексирования на основе регулярных выражений
  • доступен ряд выходных форматов, в том числе последовательности HTML, RTF, LaTeX и ANSI.
  • его можно использовать как инструмент командной строки и как библиотеку

Другие вопросы по теме