35,2
рейтинг
8 декабря 2015 в 20:27

Разработка → Perl5 плагин для IntelliJ IDEA v1.2: Moose и сигнатуры

Perl*


Выпущена очередная версия 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…

Ссылки



Приятного кодинга!
Евстигнеев Александр @hurricup
карма
24,0
рейтинг 35,2
Программист
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (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.
        Спасибо.
        • 0
          Огромное спасибо за поддержку!
        • 0
          Только ради вас: evstigneev.com/camelcade14.jar
          :) Это текущая дев сборка для 14 идеи

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