Программировать, используя какую-нибудь могучую интегрированную среду разработки (IDE) — хорошо и зачастую удобно: там «из коробки» могут предоставляться различные удобные штуковины — компиляция, отладка, тестирование, работа с системами контроля версий. Однако некоторые системы при всём своём могуществе оказываются не совсем подходящими — например, могут много весить и сильно тормозить. Приходится выбирать что-нибудь полегче, например, Geany.
В Geany есть (в том числе и средствами дополнительных модулей) всякое:
- подсветка синтаксиса,
- организация файлов в проекты,
- поиск текста как в текущем файле, так и в произвольном их наборе с обходом подкаталогов,
- поиск парных скобок и тэгов HTML/XML, а также переход по ним,
- составление оглавления используемых функций,
- компиляция либо проверка синтаксиса с подсветкой ошибок и быстрым переходом к ним.
С отладчиком в Geany пока не удалось разобраться, а вот процесс тестирования кода можно сделать более удобным.
Итак, у нас есть:
- IDE Geany,
- Веб-приложение, написанное на языке Perl с использованием фреймворка Mojolicious и системы управления модулями carton,
- Желание запускать тесты почаще и попроще, без лишних переключений из редактора в терминал.
Geany позволяет для каждого проекта задать список действий: как общих для всего проекта, так и специфичных для конкретного типа файлов — найти настроки можно в меню Project → Properties → вкладка Build либо Build → Set Build Commands.
По умолчанию для перловых скриптов есть только одно действие — компиляция, а по факту — проверка синтаксиса. Можно исправить эту команду, научив её работать с картоном.
Пойдём дальше — научим Geany прогонять тесты из текущего файла. В Mojolicious тесты представляют собой перловые файлы, имеющие расширение .t
и лежащие в каталоге t/
. Для того, чтоб, видя в редакторе открытый файл с тестами, прогнать тесты, в настройках придётся добавить путь к корневой папаке приложения. Чтоб не писать путь целиком, можно воспользоваться шаблонами. В документации пишут:
The first occurrence of each of the following character sequences in each of the command and working directory fields is substituted by the items specified below before the command is run.
- %d — substituted by the absolute path to the directory of the current file.
- %e — substituted by the name of the current file without the extension or path.
- %f — substituted by the name of the current file without the path.
- %p — if a project is open, substituted by the base path from the project.
- %l — substituted by the line number at the current cursor position.
то есть, некоторые имена файлов и пути к папкам можно указывать специальными переменными.
Вторая команда в списке тех, что зависят от типа файла, получает в меню кирпичную иконку и (по умолчанию) клавишу F9 для быстрого запуска. Клик по кнопке с кирпичом, расположенной на панели инструментов под меню также вызовет выполнение этой второй команды.
Пробуем выполнить тест — в окно Compiler выводятся результат выполнения. Если есть ошибки, они будут выделены и в этом окне, и в исходном коде теста.