Прошло почти два месяца с выхода последней версии плагина и некоторые даже стали интересоваться, не забросил ли я это дело. Нет, не забросил. Разработка идет полным ходом и вот вышла новая версия.
В этом номере: совместимость с 14 и 15 IDEA (и остальными продуктами соответствующих версий), поддержка
Switch
, Class::Accessor
и Mason2
.А теперь, немного подробнее:
Что новенького?
- Инспекция для переменных уровня файла (понадобилась лично мне для переноса одного проекта с CGI на mod_perl)
Автодополнение и кодогенерация
- Сильно переработаны live-templates и автокомплит, стали сильно «умнее» и быстрее
- Добавлена конвертация строки в here-doc с последним использованным маркером (исправлена проблема конвертации многострочных строк)
- Заработала авто-вставка кавычек для регулярных выражений и квотирующих операторов
- При создании новой функции вам предлагают имена на основании не разрешенных функций в текущем файле и непереопределенных методов родительских классов
- Аналогично, при создании переменной предлагают имена не разрешенных переменных
- Тупенький и удобный автокомплит для индексов хешей, предлагает все индексы, какие видел за сессию
- Добавлена возможность переопределения метода родительского класса через UI
Настройки
- Названия self-переменных теперь конфигурируемы
- Автоматическое внедрение языков в here-doc на основе текста маркера теперь можно отключить в настройках
Код стайл и форматирование
- Настройки для пробелов в параметрах вызова функций
- Удаление пробелов вокруг индексов хешей, массивов и цепочек разадресаций/вызовов
- Настройка и конвертация
${$hasref}{key}
в$hashref->{key}
и наоборот
Навигация
- Быстрый переход на родительский/дочерний классы
- Быстрый переход на переопределнный или переопределяющий методы
Расширения
- Поддержка модуля
Switch
(без изысков и вариаций, базовый функционал) - Поддержка API
Class::Acessor
- Moose
- Live-templates для Moose-конструкций
- Разрешение вызовов inner и super
- Exporter
- Автокомплит, навигация и рефакторинг массивов @EXPORT и @EXPORT_OK
- Инспекция неизвестных методов теперь следит, чтобы там были только известные функции
- Mason2
- Поддержка файлов: основных, дополнительных и перловых компонент
- Настройки для папок компонент
- Наследование и auto-basing
- Фолдинг, автокомплит, форматирование, навигация и рефакторинг элементов
- Mojolicious
- Переписан парсер. Должен быть шустрее и работать правильнее
- Корректно работает фолдинг
- Автокомплит закрывающих тэгов
- Форматирование Perl-кода
Смешная история: граждане активно просили Mason. И только после реализации выяснилось, что Mason — это Mason v2 а они хотели Mason v1, который называется
HTML::Mason
. Уот так уот…Список фиксов я приводить здесь не буду, интересующие могут ознакомиться со списком изменений.
Что дальше?
По-крупному: HTML::Mason и TemplateToolkit.
Ссылки
- Плагин в репозитории JetBrains: plugins.jetbrains.com/plugin/7796
- Плагин на GitHub: github.com/hurricup/Perl5-IDEA
Приятного кодинга!
Комментарии (14)
MadLord
02.02.2016 05:58+1TemplateToolkit это гуд… похоже пора пробовать продукт… большое спасибо за труд…
norguhtar
02.02.2016 07:28+1Поддержка модуля Switch (без изысков и вариаций, базовый функционал)
Да нормальный функционал :) Я теперь хоть могу не слепнуть при написании perl кода. А то все остальные IDE для perl увечные в той или иной степени. А в mcedit писать я уже утомился. Хотя я не люблю perl, но когда мне приходится лезть в perl код теперь я могу использовать Idea.
Archymind
02.02.2016 09:36+1Спасибо большое за ваш труд, пользуюсь вашим плагином. Хотелось бы еще поддержки Dancer, тогда было бы вообще круто. :)
hurricup
02.02.2016 09:41А какая именно поддержка требуется Dancer со стороны IDE? Мне казалось там просто перловый код + шаблоны. Сам я правда не пользовался. Но из нестандартных знаю только Mason и Mojo
Archymind
02.02.2016 10:27Ну как минимум, хотелось бы поддержки роутинга. А то конструкции такого рода:
get '/' => sub { "Hello World" };
светились как новогодня елка, когда я в последний раз пытался править код в проекте на Dancer.hurricup
02.02.2016 10:30Если вы активно разрабатываете, хорошо бы пообщаться, скажем, скайпике. Чтобы понять что к чему. Без опыта непосредственной разработки в нем трудно понять задачу.
Абстрактно это выражение парсится нормально. Может подсвечиваться get, если используется механизм отличный от обычного Exporter.
foxyrus
Почему *.html страница не парсится как mason? Что нужно сделать?
yadi.sk/i/X2BaRvC4o8Mgu
hurricup
Это второй Mason, который имеет вполне стандартные расширения для компонент — mc, mi и mp. Не HTML::Mason
foxyrus
HTML::Mason только в следующей версии?
hurricup
Угу, я перепутал и сделал не то :)
foxyrus
Серьезно?
foxyrus
Сорри, на радостях не дочитал статью)
hurricup
Да, ржал весь вечер :)
foxyrus
Все равно, огромное спасибо!