NppExec Notepadd++ не ожидаемый вывод

У меня есть следующий тестовый scirpt:

<?php
    echo 'Hello'            // mistake - missing semicolon
    echo 'Hi';          
    echo $hi;               // mistake - undefined variable         
?>

Я попытался проверить этот скрипт с помощью NppExec - я использовал команду:

$(NPP_DIRECTORY)\notepad++.exe -n $(FULL_CURRENT_PATH)

И я получил для меня неожиданный вывод:

Process started >>>
<<< Process finished. (Exit code 0)
================ READY ================

Я ожидал сообщения об ошибке. Значит ли это, что я неправильно использую NppExec? Спасибо

1 ответ

Решение

Эта проблема

Эта команда:

$(NPP_DIRECTORY)\notepad++.exe -n $(FULL_CURRENT_PATH)

Я не знаю, что вы думаете, что он делает, но вот что он делает:

Это открывает Notepad++. Не PHP или что-нибудь, просто Notepad++. Однако, поскольку экземпляр Notepad ++ уже запущен, он просто завершается.
Я не знаю, произойдет ли это до того, как аргументы вступят в силу, но если этого не произойдет, то $(FULL_CURRENT_PATH) будет открыт как файл, и Notepad ++ перейдет на строку 0 в нем из-за -n опция, которая означает "выделите строку X". Так как вы не даете, например, -n15 но просто -n номер строки равен нулю.

Решение

Я предполагаю, что ваша цель - проверить синтаксис вашего PHP-файла.
Для этого вам нужно установить PHP в вашей системе и иметь папку PHP bin %PATH% (или используйте полный путь к php.exe ниже).
Тогда команда NppExec, которую вы ищете, должна быть:

php.exe -l $(FULL_CURRENT_PATH)

Проходя -l (строчная буква L) для исполняемого файла PHP позволит проверить синтаксис входных файлов.

Другие вопросы по тегам