Python Flake8 Lint
Sublime Text 的 Python 文件代码风格检查插件
详细信息
安装量
- 总计 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
Python Flake8 Lint
⚠️ 重要提示:遗憾的是,我现在没有时间维护此项目。我深感抱歉。如果您想成为维护者或使用其他插件,如 SublimeLinter-flake8
,请联系我。
Python Flake8 Lint 是一个适用于 Sublime Text 2/3 的插件,用于检查 Python 文件是否符合 PEP8、pydocstyle、PyFlakes、mccabe、pep8-naming、flake8-debugger 和 flake8-import-order 等一些代码风格约定。
基于 bitbucket.org/tarek/flake8。
代码风格检查工具
Flake8(用于“Python Flake8 Lint”)是这些工具的包装器
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/
- OS X:
- Sublime Text 3
- OS X:
~/Library/Application Support/Sublime Text 3/Packages/
- Linux:
~/.config/sublime-text-3/Packages/
- Windows:
%APPDATA%/Sublime Text 3/Packages/
- OS X:
插件配置
默认的“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”插件将按以下顺序加载配置
- ST 插件全局设置。
- ST 插件用户设置。
- ST 项目设置。
- 全局 flake8 设置(另见:[Flake8 文档:全局配置](http://flake8.readthedocs.org/en/latest/config.html#global))
- ~/.config/flake8
- 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"]
关于旧式和新式类文档字符串的更多信息
- https://github.com/PyCQA/pydocstyle/issues/141
- https://hg.python.org/peps/rev/9b715d8246db
- http://raspberry-python.blogspot.ru/2015/01/significant-pep257-change.html
特性/用法
使用 flake8 工具自动检查 Python 文件并显示错误列表窗口
并在选中时跳转到错误行/字符。
使用以下键(默认设置)来运行代码检查
- 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