ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Python Flake8 Lint

作者: dreadatour 全部

Sublime Text 的 Python 文件代码风格检查插件

详细信息

  • 2.4.3
  • github.com
  • github.com
  • 9年前
  • 1小时前
  • 12年前

安装量

  • 总计 87K
  • Win 35K
  • Mac 28K
  • Linux 25K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日 6月22日
Windows 2 1 1 3 2 4 0 3 3 0 0 0 1 2 2 2 2 1 2 3 2 3 1 1 0 2 1 1 1 0 1 1 3 4 2 1 1 1 3 0 2 4 4 2 3 4
Mac 3 4 0 0 3 5 0 5 2 0 1 2 1 3 1 1 0 0 2 1 3 0 0 1 1 1 2 1 0 1 0 1 2 1 1 0 1 3 0 1 0 0 1 0 3 0
Linux 0 3 0 0 0 1 1 2 2 0 0 1 2 0 1 2 0 1 1 0 1 4 0 0 0 2 0 0 1 1 0 0 4 0 1 0 0 2 0 1 2 2 2 2 0 0

README

源代码
raw.githubusercontent.com

Python Flake8 Lint

⚠️ 重要提示:遗憾的是,我现在没有时间维护此项目。我深感抱歉。如果您想成为维护者或使用其他插件,如 SublimeLinter-flake8,请联系我。

Python Flake8 Lint 是一个适用于 Sublime Text 2/3 的插件,用于检查 Python 文件是否符合 PEP8pydocstylePyFlakesmccabepep8-namingflake8-debuggerflake8-import-order 等一些代码风格约定。

基于 bitbucket.org/tarek/flake8

代码风格检查工具

Flake8(用于“Python Flake8 Lint”)是这些工具的包装器

  • pep8 是一个检查 Python 代码是否符合某些 PEP8 风格约定的工具。

  • PyFlakes 只检查程序中的逻辑错误;它不对风格进行检查。

  • mccabe 是一个代码复杂性检查器。它可以检测过复杂的代码。根据 McCabe 的说法,任何超过 10 的东西都太复杂。参见 Cyclomatic_complexity

还有一些额外的工具用于对 Python 文件进行代码风格检查

  • pydocstyle 是一个静态分析工具,用于检查是否符合 Python PEP257

  • pep8-naming 是 Python 的命名约定检查器。

  • flake8-debugger 是一个 flake8 调试语句检查器。

  • flake8-import-order 是一个 flake8 插件,它会以 Google Python 风格指南的形式进行检查(默认关闭)。

安装

使用 Package Control 插件: 安装 Python Flake8 Lint 的最简单方法是使用 Package Control,可以在该网站找到:[http://wbond.net/sublime_packages/package_control](http://wbond.net/sublime_packages/package_control)

安装 Package Control 之后,重新启动 Sublime Text,并调用命令面板(在 OS X 上为 Command+Shift+P,在 Linux/Windows 上为 Control+Shift+P)。选择“Package Control:安装插件”,等待 Package Control 获取最新的插件列表,然后在列表出现时选择 Python Flake8 Lint。使用此方法的优势是 Package Control 将自动将 Python Flake8 Lint 更新到最新版本。

手动安装: 从 [GitHub](https://github.com/dreadatour/Flake8Lint/zipball/master) 下载最新源代码,解压它并将文件夹重命名为“Python Flake8 Lint”。将该文件夹放入 Sublime Text 的“Packages”目录中。

或者将代码库克隆到 Sublime Text 的“Packages”目录

git clone git://github.com/dreadatour/Flake8Lint.git "Python Flake8 Lint"

“Packages”目录位于以下位置

  • Sublime Text 2
    • OS X: ~/Library/Application Support/Sublime Text 2/Packages/
    • Linux: ~/.config/sublime-text-2/Packages/
    • Windows: %APPDATA%/Sublime Text 2/Packages/
  • Sublime Text 3
    • OS X: ~/Library/Application Support/Sublime Text 3/Packages/
    • Linux: ~/.config/sublime-text-3/Packages/
    • Windows: %APPDATA%/Sublime Text 3/Packages/

插件配置

默认的“Python Flake8 Lint”插件配置:[设置] -> [包设置] -> [Python Flake8 Lint] -> [设置 - 默认]

{
    // run flake8 lint on file saving
    "lint_on_save": true,
    // run flake8 lint on file loading
    "lint_on_load": false,

    // run lint in live mode: lint file (without popup) every XXX ms
    // please, be careful: this may cause performance issues on ST2
    "live_mode": false,
    // set live mode lint delay, in milliseconds
    "live_mode_lint_delay": 1000,

    // set ruler guide based on max line length setting
    "set_ruler_guide": false,

    // popup a dialog of detected conditions?
    "popup": true,
    // highlight detected conditions?
    "highlight": true,

    // highlight type:
    // - "line" to highlight whole line
    // - "error" to highlight error only
    "highlight_type": "error",

    // color values to highlight detected conditions
    "highlight_color_critical": "#981600",
    "highlight_color_error": "#DA2000",
    "highlight_color_warning": "#EDBA00",

    // show a mark in the gutter on all lines with errors/warnings:
    // - "dot", "circle" or "bookmark" to show marks
    // - "theme-alpha", "theme-bright", "theme-dark", "theme-hard" or "theme-simple" to show icon marks
    // - "" (empty string) to do not show marks
    "gutter_marks": "theme-simple",

    // report successfull (passed) lint
    "report_on_success": false,

    // blink gutter marks on success (will not blink with live mode check)
    // this icon is not depends on 'gutter_marks' settings
    // please, be careful: this may cause performance issues on ST2
    "blink_gutter_marks_on_success": true,

    // load global flake8 config ("~/.config/flake8")
    "use_flake8_global_config": true,
    // load per-project config (i.e. "tox.ini", "setup.cfg" and ".pep8" files)
    "use_flake8_project_config": true,

    // set python interpreter (lint files for python >= 2.7):
    // - 'internal' for use internal Sublime Text interpreter (2.6)
    // - 'auto' for search default system python interpreter (default value)
    // - absolute path to python interpreter for define another one
    //   use platform specific notation, i.e. "C:\\Anaconda\\envs\\py33\\python.exe"
    //   for Windows or then "/home/whatever/pythondist/python" for Unix
    "python_interpreter": "auto",

    // list of python built-in functions (like '_')
    "builtins": [],

    // turn on pyflakes error lint
    "pyflakes": true,
    // turn on pep8 error lint
    "pep8": true,
    // turn on pydocstyle error lint
    "pydocstyle": true,
    // turn on naming error lint
    "naming": true,
    // turn on debugger error lint
    "debugger": true,
    // turn on import order error lint
    "import-order": false,
    // import order style: "cryptography" or "google"
    // See also: https://github.com/public/flake8-import-order#configuration
    "import-order-style": "cryptography",
    // turn off complexity check (set number > 0 to check complexity level)
    "complexity": -1,

    // set desired max line length
    "pep8_max_line_length": 79,

    // select errors and warnings (e.g. ["E", "W6"])
    "select": [],
    // skip errors and warnings (e.g. ["E303", "E4", "W"])
    "ignore": [],

    // files to ignore, for example: ["*.mako", "test*.py"]
    "ignore_files": []
}

要更改默认设置,转到 [设置] -> [包设置] -> [Python Flake8 Lint] -> [设置 - 用户],然后将默认配置粘贴到打开的文件中并做出更改。

Flake8 配置

“Python Flake8 Lint”插件将按以下顺序加载配置

  1. ST 插件全局设置。
  2. ST 插件用户设置。
  3. ST 项目设置。
  4. 全局 flake8 设置(另见:[Flake8 文档:全局配置](http://flake8.readthedocs.org/en/latest/config.html#global))
    • ~/.config/flake8
  5. Flake8 项目设置(另见:[Flake8 文档:按项目配置](http://flake8.readthedocs.org/en/latest/config.html#per-project))
    • tox.ini
    • setup.cfg
    • .pep8

所有设置都继承自其他设置,例如,您可以在项目配置文件中只定义一个设置,其他所有设置都将从插件配置中继承。如果某个选项(例如,'ignore' 参数)在几个配置文件中都有定义,则只取最后一个。

“Python Flake8 Lint”插件有几个选项可以控制 flake8 配置

  • use_flake8_global_config” 选项用于启用或禁用全局 flake8 配置(即 “~/.config/flake8” 文件)
  • use_flake8_project_config” 选项用于启用或禁用本地(项目)配置(即 “tox.ini”、“setup.cfg” 和 “.pep8” 文件)

项目 Flake8 配置

可以为“Python Flake8 Lint”定义每个项目的配置。使用 项目->编辑项目 菜单,并在 settings 中添加以下 flake8ln 部分

{
    "folders":
    [
        {
            "path": "/path/to/project"
        }
    ],
    "settings": {
        "flake8lint": {
            "python_interpreter": "auto",
            "builtins": [],
            "pyflakes": true,
            "pep8": true,
            "pydocstyle": true,
            "naming": true,
            "import-order": true,
            "import-order-style": "google",
            "complexity": -1,
            "pep8_max_line_length": 79,
            "select": [],
            "ignore": [],
            "ignore_files": []
        }
    }
}

注意1

Pep8 默认忽略“E121”、“E123”、“E126”、“E226”、“E24”和“E704”错误。此插件不会忽略它们。

如果您不赞成此插件,请在您的配置中添加以下字符串

"ignore": ["E121", "E123", "E126", "E226", "E24", "E704"]

注意2

Pydocstyle 的错误 “D203 1 blank line required before class docstring” 和 “D211 No blank lines allowed before class docstring” 之间矛盾。默认情况下,错误“D203”被禁用。如果要忽略“D203”错误并使用旧式类文档字符串(“D211”),请在您的配置中添加以下字符串

"ignore": ["D203"]

关于旧式和新式类文档字符串的更多信息

特性/用法

使用 flake8 工具自动检查 Python 文件并显示错误列表窗口

Error list

并在选中时跳转到错误行/字符。

使用以下键(默认设置)来运行代码检查

  • OS X: Ctrl+Super+8
  • Linux: Ctrl+Alt+8
  • Windows: Ctrl+Alt+Shift+8

使用以下键(默认设置)来跳转到下一个代码检查错误

  • OS X: Ctrl+Super+9
  • Linux: Ctrl+Alt+9
  • Windows: Ctrl+Alt+Shift+9

使用以下键(默认设置)来禁用当前文件的代码检查

  • OS X: Ctrl+Super+0
  • Linux: Ctrl+Alt+0
  • Windows: Ctrl+Alt+Shift+0

Commands list