【问题标题】:Is there a way to highlight function calls using Pygments (or another library)?有没有办法使用 Pygments(或其他库)突出显示函数调用?
【发布时间】:2017-09-19 09:30:46
【问题描述】:

我很失望地发现没有使用 Pygments 突出显示函数调用。

See it online(我用所有可用的样式对其进行了测试)

突出显示了内置函数,但不是我的。

我查看了the tokens list,但没有提到例如“函数调用”或“对象属性”。

我考虑过通过添加像\w+\(.*?\) 这样的正则表达式规则来扩展词法分析器。但是由于我没有想到的极端情况,我害怕增加错误。

你知道为什么这个功能没有直接在 Pygments 中实现吗?

【问题讨论】:

  • 我也对这个很感兴趣!

标签: python syntax-highlighting tokenize lexer pygments


【解决方案1】:

如果您有想要突出显示的特定功能列表,您可以添加自定义荧光笔,如内置 NumPyLexer

from pygments.lexers.python import PythonLexer
from pygments.token import Keyword, Name, String

class MyFuncLexer(PythonLexer):
    name = 'MyFuncPython'
    aliases = ['myfuncpython']

    # override the mimetypes to not inherit them from python
    mimetypes = []
    filenames = []

    EXTRA_KEYWORDS = {
        'func'
    }

    def get_tokens_unprocessed(self, text):
        for index, token, value in \
                PythonLexer.get_tokens_unprocessed(self, text):
            if token is Name and value in self.EXTRA_KEYWORDS:
                yield index, Keyword.Pseudo, value
            else:
                yield index, token, value

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 2011-05-13
    • 1970-01-01
    • 2010-11-16
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多