Прошло почти два месяца с выхода последней версии плагина и некоторые даже стали интересоваться, не забросил ли я это дело. Нет, не забросил. Разработка идет полным ходом и вот вышла новая версия.

В этом номере: совместимость с 14 и 15 IDEA (и остальными продуктами соответствующих версий), поддержка Switch, Class::Accessor и Mason2.

А теперь, немного подробнее:

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


  • Инспекция для переменных уровня файла (понадобилась лично мне для переноса одного проекта с CGI на mod_perl)

Автодополнение и кодогенерация


  • Сильно переработаны live-templates и автокомплит, стали сильно «умнее» и быстрее
  • Добавлена конвертация строки в here-doc с последним использованным маркером (исправлена проблема конвертации многострочных строк)
  • Заработала авто-вставка кавычек для регулярных выражений и квотирующих операторов
  • При создании новой функции вам предлагают имена на основании не разрешенных функций в текущем файле и непереопределенных методов родительских классов
  • Аналогично, при создании переменной предлагают имена не разрешенных переменных
  • Тупенький и удобный автокомплит для индексов хешей, предлагает все индексы, какие видел за сессию
  • Добавлена возможность переопределения метода родительского класса через UI

Настройки


  • Названия self-переменных теперь конфигурируемы
  • Автоматическое внедрение языков в here-doc на основе текста маркера теперь можно отключить в настройках

Код стайл и форматирование


  • Настройки для пробелов в параметрах вызова функций
  • Удаление пробелов вокруг индексов хешей, массивов и цепочек разадресаций/вызовов
  • Настройка и конвертация ${$hasref}{key} в $hashref->{key} и наоборот

Навигация


  • Быстрый переход на родительский/дочерний классы
  • Быстрый переход на переопределнный или переопределяющий методы

Расширения


  • Поддержка модуля Switch (без изысков и вариаций, базовый функционал)
  • Поддержка API Class::Acessor
  • Moose
    • Live-templates для Moose-конструкций
    • Разрешение вызовов inner и super
  • Exporter
    • Автокомплит, навигация и рефакторинг массивов @EXPORT и @EXPORT_OK
    • Инспекция неизвестных методов теперь следит, чтобы там были только известные функции
  • Mason2
    • Поддержка файлов: основных, дополнительных и перловых компонент
    • Настройки для папок компонент
    • Наследование и auto-basing
    • Фолдинг, автокомплит, форматирование, навигация и рефакторинг элементов
  • Mojolicious
    • Переписан парсер. Должен быть шустрее и работать правильнее
    • Корректно работает фолдинг
    • Автокомплит закрывающих тэгов
    • Форматирование Perl-кода

Смешная история: граждане активно просили Mason. И только после реализации выяснилось, что Mason — это Mason v2 а они хотели Mason v1, который называется HTML::Mason. Уот так уот…

Список фиксов я приводить здесь не буду, интересующие могут ознакомиться со списком изменений.

Что дальше?


По-крупному: HTML::Mason и TemplateToolkit.

Ссылки



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

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


  1. foxyrus
    01.02.2016 20:57

    Почему *.html страница не парсится как mason? Что нужно сделать?
    yadi.sk/i/X2BaRvC4o8Mgu


    1. hurricup
      01.02.2016 21:02

      Это второй Mason, который имеет вполне стандартные расширения для компонент — mc, mi и mp. Не HTML::Mason


      1. foxyrus
        01.02.2016 21:06

        HTML::Mason только в следующей версии?


        1. hurricup
          01.02.2016 21:09

          Угу, я перепутал и сделал не то :)


          1. foxyrus
            01.02.2016 21:10

            Серьезно?


            1. foxyrus
              01.02.2016 21:16

              Сорри, на радостях не дочитал статью)


              1. hurricup
                01.02.2016 21:17

                Да, ржал весь вечер :)


                1. foxyrus
                  01.02.2016 21:19

                  Все равно, огромное спасибо!


  1. MadLord
    02.02.2016 05:58
    +1

    TemplateToolkit это гуд… похоже пора пробовать продукт… большое спасибо за труд…


  1. norguhtar
    02.02.2016 07:28
    +1

    Поддержка модуля Switch (без изысков и вариаций, базовый функционал)


    Да нормальный функционал :) Я теперь хоть могу не слепнуть при написании perl кода. А то все остальные IDE для perl увечные в той или иной степени. А в mcedit писать я уже утомился. Хотя я не люблю perl, но когда мне приходится лезть в perl код теперь я могу использовать Idea.


  1. Archymind
    02.02.2016 09:36
    +1

    Спасибо большое за ваш труд, пользуюсь вашим плагином. Хотелось бы еще поддержки Dancer, тогда было бы вообще круто. :)


    1. hurricup
      02.02.2016 09:41

      А какая именно поддержка требуется Dancer со стороны IDE? Мне казалось там просто перловый код + шаблоны. Сам я правда не пользовался. Но из нестандартных знаю только Mason и Mojo


      1. Archymind
        02.02.2016 10:27

        Ну как минимум, хотелось бы поддержки роутинга. А то конструкции такого рода:

        get '/' => sub { 
            "Hello World" 
        };
        

        светились как новогодня елка, когда я в последний раз пытался править код в проекте на Dancer.


        1. hurricup
          02.02.2016 10:30

          Если вы активно разрабатываете, хорошо бы пообщаться, скажем, скайпике. Чтобы понять что к чему. Без опыта непосредственной разработки в нем трудно понять задачу.

          Абстрактно это выражение парсится нормально. Может подсвечиваться get, если используется механизм отличный от обычного Exporter.