分析Notepad ++的Python正确性(即lint)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析Notepad ++的Python正确性(即lint)相关的知识,希望对你有一定的参考价值。
如果您安装了Python Script plugin,那么您可以添加一个包含以下行的新脚本以获得相当不错的结果:
console.show()
console.clear()
console.run('cmd.exe /c '
+ 'C:\Python26\Scripts\pylint.bat --reports=n -f parseable '
+ '"%s"' % notepad.getCurrentFilename())
输出将包含带有错误/警告的行的超链接(如果文件名中没有空格......)
在当前版本的Pylint中不推荐使用选项“-f parseable”。
目前的等效替代方案是:
console.run('cmd.exe /c '
+ 'C:\Python26\Scripts\pylint.bat --reports=n '
+ '--msg-template="%s" %s'
% ( '{path}:{line}: {msg_id}({symbol}), {obj} {msg}', notepad.getCurrentFilename()))
注意:python路径可以是不同的,例如C:\Python27.
注2:--msg-template="..."
中的双引号很重要
其他答案都不适用于我,但这样做:
- 使用
C:Python34Scriptspip.exe install pylint
安装PyLint - 通过Plugin Manager安装NppExec,按F6,并将此脚本保存为“PyLint 3.4”:
NPP_SAVE cd "$(FULL_CURRENT_PATH)" //env_set PYTHONIOENCODING=utf-16-le env_set PYTHONIOENCODING=utf-8 C:Python34Scriptspylint.exe --reports=n -f parseable "$(FULL_CURRENT_PATH)"
样本输出:
Process started >>>
************* Module pylint2
pylint2.py:3: [C0330(bad-continuation), ] Wrong continued indentation (add 4 spaces).
+ 'C:\Python26\Scripts\pylint.bat --reports=n '
^ |
pylint2.py:4: [C0330(bad-continuation), ] Wrong continued indentation (add 4 spaces).
+ '--msg-template="%s" %s'
^ |
pylint2.py:4: [C0303(trailing-whitespace), ] Trailing whitespace
pylint2.py:5: [C0330(bad-continuation), ] Wrong continued indentation (add 4 spaces).
% ( '{path}:{line}: {msg_id}({symbol}), {obj} {msg}', notepad.getCurrentFilename()))
^ |
pylint2.py:5: [C0326(bad-whitespace), ] No space allowed after bracket
% ( '{path}:{line}: {msg_id}({symbol}), {obj} {msg}', notepad.getCurrentFilename()))
^
pylint2.py:6: [C0304(missing-final-newline), ] Final newline missing
pylint2.py:1: [C0111(missing-docstring), ] Missing module docstring
pylint2.py:2: [E0602(undefined-variable), ] Undefined variable 'console'
pylint2.py:5: [E0602(undefined-variable), ] Undefined variable 'notepad'
No config file found, using default configuration
<<< Process finished. (Exit code 18)
您可以使用NppExec的控制台输出过滤器链接这些路径。按Shift + F6并启用此过滤器,红色设置为FF
:
%FILE%:%LINE%:*
然后双击红线将指定的位置聚焦在编辑器中。
您可以使用C:Python34Scripts>pip install pylint
安装PyLint,并通过Notepad ++的Run...
命令(F5)使用它:
C:Python34Scriptspylint.bat "$(FULL_CURRENT_PATH)"
如果要在NotePad ++中使用Pylint,则应使用可执行文件而不是批处理。
从Python脚本转到配置并创建一个新的.py文件以从中运行Pylint。 (我叫我的文件npphelper.py) (将npphelper.py添加到菜单项和工具栏图标,然后按下按钮即可执行它。)
这将把Pylint运行到Notepad ++中,我将命令分成两部分:
pyLint = 'C:\PROGRA~1\Python35\Scripts\pylint.exe --reports=n'
console.show()
console.clear()
console.run('%s "%s"' % (pyLint, notepad.getCurrentFilename()))
- pylint.exe的路径(我使用短名称而不是双引号)
- 要使用Pylint检查的文件(实际返回活动标签中的路径)
(您必须更改路径以使其适合您的安装......)
您现在要做的就是保存此npphelper.py,使用Project-File打开Tab并运行您为pylint创建的npphelper.py。 (例如通过按钮)
如果您不想使用默认配置,则生成一个pylintrc模板(将它们保存在您想要的位置)。我通过CMD使用以下命令完成了它:
pylint.exe --generate-rcfile>>myfilename.pylintrc
然后你需要将一些行更改为npphelper.py:
rcfile = 'C:\PROGRA~1\Python35\Scripts\myrcfile.pylintrc'
pyLint = 'C:\PROGRA~1\Python35\Scripts\pylint.exe --reports=n --rcfile="%s"' % rcfile
console.show()
console.clear()
console.run('%s "%s"' % (pyLint, notepad.getCurrentFilename()))
我使用.msi文件here安装了所有Extras的Python Script 1.0.8.0。 (在Notepad ++中使用PluginManager为您提供版本1.0.6.0而不是1.0.8.0)
我使用Windows 7与Notepad ++ 6.9.1,Python 3.5.1和Pylint 1.5.5。 (我通过CMD安装了pylint - >“pip install pylint”并更新了它。)
一些更有用的链接:
以上是关于分析Notepad ++的Python正确性(即lint)的主要内容,如果未能解决你的问题,请参考以下文章