Выпущена новая стабильная версия 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.

Ссылки



Приятного кодинга!

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


  1. dmrt
    26.10.2015 23:35
    +2

    Что за большие проекты на Perl, на которых был проверен плагин?
    Интересуюсь потому что сам использую Perl в качестве основного языка программирования и хочется знать, что на этом замечательном языке пишут сейчас, особенно что касается больших проектов.


    1. hurricup
      27.10.2015 06:58

      К сожалению, не могу сказать. Не уверен что сейчас начинают большие проекты на Perl. Но существуют старые.


  1. Nyaon
    27.10.2015 10:47

    А можно указывать кастомный путь к \@INC? Подтягивается ли корень в \@INC?


    1. hurricup
      27.10.2015 10:59

      Если путь внутри проекта, то в Project Structure нужно пометить папочку как Libraries
      Если папка вне проекта, то пока что нет, нельзя. Я использую симлинк внутрь проекта и помечаю как Librarшуы
      use libs работает, push INC, 'путь' — нет.


      1. Nyaon
        27.10.2015 11:01

        а можно просить его ходить делать проверки и компиляцию на удалённой машинке по ssh?
        У меня есть машинка с той же средой, что и на продакшене, но она слабая для запуска idea. Свой же ноут отличается как по дистрибутиву, так даже и по версии перла.


        1. hurricup
          27.10.2015 11:02

          Я не уверен, не пользовался сам, но вроде бы подобный функционал есть в самой идее и не имеет отношения к плагину.


  1. 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);


    1. hurricup
      27.10.2015 13:46

      Что значит заработает?
      UTF идентификаторы не поддерживаются. Perl5i не поддерживается.
      Скрипт пропарсится валидно, но не сможет понять что такое substr в данном случае.
      И в любом случае, нужно было бы указывать возвращаемое значение для фунции типа #@returns autobox::Core::SCALAR