7,2
рейтинг
26 октября 2015 в 22:20

Разработка → Perl5 плагин для IntelliJ IDEA v1.1

Perl*


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

Ссылки



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

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

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

Комментарии (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

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