Perl5 плагин для IntelliJ IDEA v1.2: Moose и сигнатуры



    Выпущена очередная версия Perl5 плагина для IntelliJ IDEA и прочих IDE от JetBrains. Новая версия добавляет поддержку Method::Signature::Simple и Moose.

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


    Форматирование


    • Враппинг для списков в коде
    • Выравнивание стрелок в анонимных хешах
    • Форматирование и выравнивание для тернарного оператора
    • Фолдинг для списков строк в qw
    • Настройки пробелов для анонимных хешей и массивов
    • Настройки пробелов для range-операторов и конкатенации

    Парсер


    • return теперь считается ключевым словом
    • поддерживаются нативные Perl5 сигнатуры (в соответствии с текущей версией Perl5)

    Настройки


    • Добавлена опция для контроля за авто-вставкой терминатора для here-doc
    • Добавлена опция для контроля легковесного разрешения main:: функций

    Code style


    • Добавлена панель для настроек стиля кода Perl5 и автоматическое переформатирование исходника, согласно настройкам
    • Настройка использования опциональных кавычек
    • Настройка использования опциональной разадресации между индексами массивов и хешей
    • Настройка использования опциональных скобок в модификаторах выражений (постфиксные if/for/etc...)
    • Настройка разадресации элемента хеша массива: $var->{key} или $$var{key}
    • Настройка разадресации простого массива или хеша: @$array_ref или @{$array_ref}
    • Настройка стиля обращения к неймспейсу main: main:: или ::

    Method::Signature::Simple


    • Парсинг, автокомплит, навигация и рефакторинг конструкций method и func

    Moose и Moo


    Реализована базовая поддержка фреймворка Moose.

    • Корректная обработка use Moose/Moo
    • Корректная обработка выражений extends и with
    • Парсинг, автокомплит, навигация и рефакторинг аттрибутов has (работают некоторые аннотации)
    • Парсинг, автокомплит, навигация и рефакторинг переопределений override (работают некоторые аннотации)
    • Парсинг, навигация и рефакторинг модификаций методов: around, after, before и augment
    • Поддержка ключевых слов inner и super

    Дополнительно, исправлено порядка 30 различных технических и юзабилити багов.

    Что дальше?


    Mason is coming…

    Ссылки



    Приятного кодинга!
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 12
    • 0
      Жду Mason! Спасибо большое!
      • 0
        Вот такие предупреждения смущают:
        my $b = shift; #It's a very bad practice to declare built-in variable as our/my/state
        my ($r, $tpl) = @_; #Current variable declaration shadows previous declaration of the same variable
        • 0
          1. Чем смущает? Подобные конструкции это лишний шанс выстрелить себе в ногу. Плагин сделан для работы над большими проектами, для мелких скриптов он просто не нужен. В большом проекте подобное недопустимо.
          2. Все что смущает можно отключить.
          • 0
            Разве переменная $b — built-in?
            Не знаю насколько большой/маленький у нас проект (но далеко не «маленький скрипт»), но в чем подвох этой конструкции — «my ($r, $tpl) = @_;»?
            • 0
              $a и $b — глобальные переменные. используются, например, для сортировки.
              Подвох не в конструкции. А в том что вы уже определили переменную $r или $tpl в данном скоупе.
              • 0
                Насчет $r и $tpl — да, забавный момент. Никогда бы не подумал, что человек может на автомате my вставлять, не задумываясь о видимости переменной.
                А вот насчет $a и $b — да, они используются при сортировке, но что-то я не встречал описание ограничений на их использование.
                • 0
                  Их нет. Но присваивать что-либо $_ $a, $b — опасно. Этот инспекшн сделан для того чтобы избежать подобных вещей. Опять же — все отключаемо.
        • 0
          В чем причина не обновления плагина для IDEA 14?
          • 0
            Причины две:
            1. Это мое свободное время за которое никто не платит и две версии поддерживать — времени нужно больше, а и так не хватает на реализацию всех идей.
            2. Статистически скачек для 14 версии очень мало в сравнении с 15.
            • 0
              Скромно: я как раз вам перевел в поддержку через paypal.
              Спасибо.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.