Выпущена новая стабильная версия Perl5 плагина для IntelliJ IDEA и Co. Данный релиз почти целиком посвящен улучшению производительности и качества парсера. Таким образом, больших функциональных изменений с точки зрения IDE нет, однако достижения в указанных областях – значимы.
Добавлено
- Иконки высокого разрешения для retina-дисплеев
- Базовые настройки для CodeStyle и базовый форматтер
- Настройки для Code Folding
- Автоматическое закрытие here-doc маркера
- Поддержка пустых here-doc маркеров
- Инспекция
use strict
стала умнее и понимает, чтоuse v5.12
и выше включаетuse strict
- Поддержка
use libs
- Авто-дополнение для пакетов в строках, что чрезвычайно удобно в конструкциях типа
use parent
/bless
/isa
- Run configuration и возможность запускать скрипты из IDE
- Парсер для анализа выдачи скриптов, отлавливающий сообщения об ошибках и расставляющий гиперссылки на место в коде
- Разрешение имен пакетов относительно текущего каталога
- Тип файлов Perl test и live templates для
Test::More
- Полуавтоматический репортер для исключений в плагине
- Изменено положение для сигнатур в соответствии с последними версиями Perl5
- Корректный парсинг атрибутов для функций и переменных
- Корректный парсинг для glob вызовов вида
</some/path/*>
- Генерация геттеров, сеттеров и конструкторов
- Корректный парсинг блоков кода перед разадресацией
- Переработан парсинг кода внутри строк и регулярных выражений. Сравнение тут (большая картинка)
Помимо новых фич было исправлено и переписано около 30 различных старых, что положительно сказалось на быстродействии и качестве работы.
Парсер был протестирован на паре действительно огромных Perl-проектов.
Еще раз всем спасибо за помощь, идеи, критику и предложения.
Планы
Следующие на очереди: базовая поддержка Moose и Mason.
Ссылки
- Плагин в репозитории JetBrains: plugins.jetbrains.com/plugin/7796
- Плагин на GitHub: github.com/hurricup/Perl5-IDEA
Приятного кодинга!
Комментарии (8)
Nyaon
27.10.2015 10:47А можно указывать кастомный путь к \@INC? Подтягивается ли корень в \@INC?
hurricup
27.10.2015 10:59Если путь внутри проекта, то в Project Structure нужно пометить папочку как Libraries
Если папка вне проекта, то пока что нет, нельзя. Я использую симлинк внутрь проекта и помечаю как Librarшуы
use libs работает, push INC, 'путь' — нет.Nyaon
27.10.2015 11:01а можно просить его ходить делать проверки и компиляцию на удалённой машинке по ssh?
У меня есть машинка с той же средой, что и на продакшене, но она слабая для запуска idea. Свой же ноут отличается как по дистрибутиву, так даже и по версии перла.hurricup
27.10.2015 11:02Я не уверен, не пользовался сам, но вроде бы подобный функционал есть в самой идее и не имеет отношения к плагину.
Pilat
27.10.2015 13:13Вот это заработает?
#!/usr/bin/env perl
use perl5i::2 -skip => [qw(time)];
my $КакаяТоПеременная='123';
sub КакаяТоФункция($){
return 'Какое-то предложение: '. $КакаяТоПеременная;
}
say КакаяТоФункция(456);
say КакаяТоФункция(456)->substr(1,1);
hurricup
27.10.2015 13:46Что значит заработает?
UTF идентификаторы не поддерживаются. Perl5i не поддерживается.
Скрипт пропарсится валидно, но не сможет понять что такое substr в данном случае.
И в любом случае, нужно было бы указывать возвращаемое значение для фунции типа #@returns autobox::Core::SCALAR
dmrt
Что за большие проекты на Perl, на которых был проверен плагин?
Интересуюсь потому что сам использую Perl в качестве основного языка программирования и хочется знать, что на этом замечательном языке пишут сейчас, особенно что касается больших проектов.
hurricup
К сожалению, не могу сказать. Не уверен что сейчас начинают большие проекты на Perl. Но существуют старые.