对于某些全局关键字w / sublimelinter + flake8,忽略'undefined name'

时间:2018-02-10 18:17:35

标签: sublimetext sublimelinter flake8

使用一些不寻常的语言,processing-py,这是一种围绕java处理语言的python包装。

processing-py引入了许多不需要导入的全局关键字。这些包括函数名称,如loadPixels()和全局变量(常量?),如'width'(屏幕宽度)。

Sublimelinter + flake8正确地为这些引发了F821未定义的名称。 #noqa不方便,我不妨在这一点上关掉它。我还想看看我实际上引入了一个伪造的关键字,例如将loadPixels()(好)拼写为laodPixels()(坏)。

那么有没有办法为F821添加例外列表,或以其他方式扩展已知关键字的字典?

我也使用自定义thTheme和关键字列表,作为processing-py-sublime包的一部分。

谢谢!

2 个答案:

答案 0 :(得分:1)

不知道您是否解决了问题,但如果您将SublimePythonIDE与SublimeText3一起使用,则可以在插件的用户设置或项目设置中添加例外列表:

在用户设置中,添加:

"pyflakes_ignore": ["background", "ellipse", "fill", "size" ... ]

在项目设置中,添加到'设置'对象:

{
    "settings": {
        // Ignoring for Processing.py projects
        "pyflakes_ignore": ["background",
                            "ellipse",
                            "fill",
                            "size"]
    }
}

答案 1 :(得分:0)

我已经接受了其他用户的回答,但想出了另一种方法,这与我目前的工作流程更加一致。

我使用的是Sublime Linter + Python Flake8 Lint包。

Python Flake8 Lint有一个名为“builtins”的设置,我想这是内置的python语言关键字。你可以在项目级别设置它(我主要在一个大的崇高项目中进行所有的pyprocessing)。

yourpyprocessingproject.sublime项目:

"settings": {
    "flake8lint": {
      "builtins": [
            "draw",
            "exit",
            "loop",
            "noLoop"
            etc...
            ]
    }
}

这就是诀窍。使用接受答案中的要点获取完整的关键字列表。