Анализ правильности Python (т. Е. Lint) для Notepad++
5 ответов
Если вы установите плагин Python Script, то вы можете добавить новый скрипт со следующими строками, чтобы получить довольно хорошие результаты:
console.show()
console.clear()
console.run('cmd.exe /c '
+ 'C:\\Python26\\Scripts\\pylint.bat --reports=n -f parseable '
+ '"%s"' % notepad.getCurrentFilename())
Вывод будет включать гиперссылки на строки с ошибками / предупреждениями (если в именах файлов нет пробелов...)
Параметр "-f parseable" устарел в текущей версии Pylint.
Текущая эквивалентная альтернатива:
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()))
Примечание: путь к питону может отличаться, например C:\\Python27.
Примечание 2: двойные кавычки в --msg-template="..."
важные
Вы можете установить PyLint используя C:\Python34\Scripts>pip install pylint
и использовать его через Notepad++ Run...
команда (F5):
C:\Python34\Scripts\pylint.bat "$(FULL_CURRENT_PATH)"
Ни один из других ответов не работал для меня, но это делает:
Установите PyLint используя
C:\Python34\Scripts\pip.exe install pylint
Установите NppExec через диспетчер плагинов, нажмите F6 и сохраните этот скрипт как "PyLint 3.4":
NPP_SAVE cd "$(FULL_CURRENT_PATH)" //env_set PYTHONIOENCODING=utf-16-le env_set PYTHONIOENCODING=utf-8 C:\Python34\Scripts\pylint.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%:*
Затем двойной щелчок по красной линии фокусирует указанное место в редакторе.
Вы должны использовать Исполняемый файл вместо Пакета, если вы хотите использовать Pylint в NotePad++.
Перейдите в конфигурацию из скрипта Python и создайте новый файл.py для запуска Pylint из этого. (я назвал мой файл npphelper.py)
(Добавьте этот npphelper.py к пунктам меню и значкам панели инструментов, затем вы можете выполнить его, нажав кнопку.)
Это запустит Pylint в Notepad++, я разделил Команду на 2 части:
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-файлом и запустить npphelper.py, который вы создали для pylint. (например, с помощью кнопки)
Если вы не хотите использовать конфигурацию по умолчанию, создайте шаблон 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()))
Я установил Python Script 1.0.8.0 со всеми дополнениями, используя MSI-файл здесь.
(Использование PluginManager в Notepad ++ дает вам версию 1.0.6.0 вместо 1.0.8.0)
Я использую Windows 7 с Notepad++ 6.9.1, Python 3.5.1 и Pylint 1.5.5.
(Я установил pylint через CMD -> " pip install pylint" и обновил его.)
Еще несколько полезных ссылок: