Perl5 плагин для IntelliJ IDEA v1.1



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

    Ссылки



    Приятного кодинга!
    Метки:
    • +12
    • 6,4k
    • 8
    Поделиться публикацией
    Похожие публикации
    Комментарии 8
    • +2
      Что за большие проекты на Perl, на которых был проверен плагин?
      Интересуюсь потому что сам использую Perl в качестве основного языка программирования и хочется знать, что на этом замечательном языке пишут сейчас, особенно что касается больших проектов.
      • 0
        К сожалению, не могу сказать. Не уверен что сейчас начинают большие проекты на Perl. Но существуют старые.
      • 0
        А можно указывать кастомный путь к \@INC? Подтягивается ли корень в \@INC?
        • 0
          Если путь внутри проекта, то в Project Structure нужно пометить папочку как Libraries
          Если папка вне проекта, то пока что нет, нельзя. Я использую симлинк внутрь проекта и помечаю как Librarшуы
          use libs работает, push INC, 'путь' — нет.
          • 0
            а можно просить его ходить делать проверки и компиляцию на удалённой машинке по ssh?
            У меня есть машинка с той же средой, что и на продакшене, но она слабая для запуска idea. Свой же ноут отличается как по дистрибутиву, так даже и по версии перла.
            • 0
              Я не уверен, не пользовался сам, но вроде бы подобный функционал есть в самой идее и не имеет отношения к плагину.
        • 0
          Вот это заработает?

          #!/usr/bin/env perl
          use perl5i::2 -skip => [qw(time)];

          my $КакаяТоПеременная='123';

          sub КакаяТоФункция($){
          return 'Какое-то предложение: '. $КакаяТоПеременная;
          }

          say КакаяТоФункция(456);
          say КакаяТоФункция(456)->substr(1,1);

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

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