Вышел знаковый для меня релиз плагина. Год назад я начал работу над ним и иногда не верится что все это было сделано. В репозиторий прошло более двух тысяч коммитов.

Данная версия привносит поддержку POD, хелперов для Mojolicious, контекстную подсказку и много приятных мелочей.

Что новенького?


  • Поддержка POD файлов и инлайн документации: парсинг, подсветка, авто-дополнение, навигация по ссылкам и документируемым элементам, рефакторинг первого и второго
  • Контекстная подсказка: по нажатию сочетания Ctrl+Q вы можете получить подсказку как по perl-элементам, так и по вашим функциям, если вы, конечно, ведете документацию
  • Поддержка хелперов для Mojolicious. Для явно заданных хелперов теперь работает навигация, авто-дополнение и рефакторинг. Хитроумные конструкции вроде $app->helper($_, sub{}) for @something; плагин не понимает (tnx greyhard)
  • Добавлна новая аннотация #@inject, которая позволяет инжектировать другие языки в строки. Изначально подобная возможность была только для here-doc на основе теста маркера, теперь можно делать то же самое и в строках, что может быть очень удобно для, например, коротких запросов. Аннотация может быть расположена перед строкой, стейтментом со строкой или в конце строки. Последний вариант может вносить путанницу и должен рассматриваться как эскпериментальный. Нужен фидбек
  • Методы классов теперь корректно рефакторятся в дочерних классах и, опционально, в родительских
  • Пакеты теперь можно создавать по полному имени, папки для пути будут созданы автоматически
  • Базовая поддержка синтаксиса TryCatch, а именно: catch{}, catch($var){} и catch(Foo::Bar $var){}
  • Инспекшен для ненужных явных неймспейсов. Например, когда вы вызываете функцию Foo::Bar::somesub() из неймспейса Foo::Bar
  • Лексические переменные теперь находятся вверху списка авто-дополнения
  • Значительно улучшена и ускорена работа парсера для незаконченных выражений. Ситуации когда во время ввода отключается подсветка половины файла ниже практически исчезла, а ошибки стали более адекватны
  • Добавлен экшен для депарса файла с помощью B::Deparse, что может быть крайне удобно при работе с чужим кодом (за идею спасибо лекциям от Мейл.ру)
  • Добавлен аннотатор Perl::Critic. Плагин умеет запускать его и отмечать в коде выданные им замечания. Все настройки должны быть в файле .perlcriticrc в корне проекта или настроены через окружение. Никакого UI для настроек в настоящий момент нет
  • Добавлен экшен переформатирования с помощью Perl::Tidy. Аналогично критику, все настройке в корне проекта в файле .perltidyrc или в окружении. UI для настроек в этой версии отсутствует.

Список багкфиксов можно найти в релиз-ноутсах на странице плагина в репозитории JetBrains (см.ниже).

Что дальше?


Дебаггер близко…

Ссылки



Приятного кодинга и всем поддерживающим — спасибо за поддержку, без вас я бы не продержался этот год.

Комментарии (8)


  1. foxyrus
    27.04.2016 14:42
    +2

    Спасибо большое!


  1. pushtaev
    27.04.2016 14:44
    +2

    > за идею спасибо лекциям от Мейл.ру
    :D Вам спасибо!


  1. Alex_Crack
    27.04.2016 16:38
    +1

    Спасибо большое за плагин.
    Благодаря вам удалось полностью перенести весь стэк разработки в Webstorm. До появления плагина приходилось пользоваться Komodo для поддержки старых проектов.

    Скажите, планируется ли поддержка Catalyst?


    1. hurricup
      27.04.2016 16:40
      +1

      Я открыт для предложений. По сути я делаю то что нужно лично мне и то что просят граждане. Сам я каталистом не пользуюсь так что не могу сказать что именно там нужно. Если будут конкретные реквесты и они будут реализуемы — почему нет?


  1. kyunez
    27.04.2016 16:38
    +1

    Большое спасибо, за работу. Пользуюсь на ежедневной основе.


  1. 0x62ash
    03.05.2016 14:46

    Спасибо за труды.
    Подскажите, а какие возможности рефакторинга есть?


    1. hurricup
      03.05.2016 15:32

      https://github.com/hurricup/Perl5-IDEA/wiki


      1. 0x62ash
        03.05.2016 15:41

        Ага, аннотации есть, значит в принципе можно попробовать и что-нибудь сложное отрефакторить.
        Взял проект на карандаш.