Python中最接近Perl::Tidy的工具是什么?
我之前用Perl的时候,习惯按 C-c t 来按照预设的 Perl::Tidy
规则来格式化我的代码。现在用Python,我惊讶地发现没有任何东西能像 Perl::Tidy
那样强大。PythonTidy 1.20 看起来还不错,但在遇到第一行缩进不对的时候就崩溃了(“意外的缩进”)。
我特别想要以下功能:
- 尽可能使用PEP-8(以下的要求基本上都是基于这个标准)
- 把缩进的制表符转换为空格
- 去掉行尾的空格
- 根据预设的行长度来拆分代码(像Eclipse那样拆分字符串和方法链)
- 规范空白字符的使用
- (附加功能,可选)重新格式化代码,包括缩进。
现在,我正在检查别人的代码,并根据 pep8
和 pyflakes
的提示来修正,主要是“去掉行尾空格”和“插入额外的空行”。虽然我知道在Python中重新缩进并不简单(尽管通过查看代码并记住缩进应该是可以做到的),但其他功能看起来都很简单,我真不敢相信之前没有人实现过这些。
有什么推荐的吗?
更新:我打算更深入地研究一下PythonTidy,因为它似乎朝着正确的方向发展。也许我能找出它崩溃的原因。
4 个回答
0
你有没有试过给pythontidy做一个包装呢?这里有一个适用于Sublime编辑器的版本。
另外,pythontidy能正确处理长行吗?我发现当我有一行很长的代码以元组结尾时,它会为元组中的每个元素都创建一个新行,而不是像PEP-8建议的那样,在括号、方括号和大括号内使用Python的隐式换行。
0
untabify.py(这个文件在Python源代码的根目录下的Tools/scripts/untabify.py
)可以用来修复代码中的制表符问题,这可能是导致Python Tidy无法继续工作的原因。
1
在Python的scripts
目录里,有一个叫做reindent.py
的脚本。