Правильность Python (т.е. Lint), анализирующая для Notepad ++

Кто-нибудь знает что-то вроде pylint или pychecker для блокнота ++? Или, возможно, как использовать pylint в блокноте ++.

Ответ 1

Если вы устанавливаете плагин Python Script, вы можете добавить новый Script со следующими строками, чтобы получить неплохие результаты:

console.show()
console.clear()
console.run('cmd.exe /c '
            + 'C:\\Python26\\Scripts\\pylint.bat --reports=n -f parseable '
            + '"%s"' % notepad.getCurrentFilename())

Вывод будет содержать гиперссылки на строки с ошибками/предупреждениями (если имена файлов в них не имеют пробелов...)

Ответ 2

Параметр "- 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()))

Примечание: путь python может быть различным, например. C:\\Python27.

Примечание2: двойные кавычки в --msg-template="..." важны

Ответ 3

Ни один из других ответов не работал у меня, но это делает:

  • Установите PyLint с помощью C:\Python34\Scripts\pip.exe install pylint

  • Установите NppExec через Диспетчер подключений, нажмите F6 и сохраните этот script как "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 Console Output Filters. Нажмите Shift + F6 и включите этот фильтр с красным значением FF:

%FILE%:%LINE%:*

Затем двойной щелчок по красной строке фокусирует указанное место в редакторе.

Ответ 4

Вы можете установить PyLint с помощью C:\Python34\Scripts>pip install pylint и использовать его с помощью команды Notepad ++ Run... (F5):

C:\Python34\Scripts\pylint.bat "$(FULL_CURRENT_PATH)"

Ответ 5

Вы должны использовать исполняемый файл вместо пакета, если вы хотите использовать Pylint в NotePad ++.

Перейдите в конфигурацию из Python Script и создайте новый .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(я использовал Shortname вместо Doublequotes)
  • Файл, который вы хотите проверить с помощью 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" и обновил его.)


Несколько полезных ссылок: