Вчера стала доступна IntellIJ IDEA 2016.3 EAP – программа “раннего” доступа к обновлению, запланированному на эту осень.

image

Для справки. Официально программа называется Early Access Program. На практике это аналог alpha-версии. Обновления появляются в среднем с недельной периодичностью. Каждый желающий может установить дистрибутив, попробовать новые функции и поделиться своим мнением и идеями в трекере.

В этом посте я расскажу о главных нововведениях, которые уже доступны в EAP-билде.

Отладчик


Class-level watches

Отслеживание значений выражений стало удобнее. Теперь выражения можно объявлять не только глобально, но и на уровне конкретных классов. Эти выражения будут отображаться аналогично полям класса.

image

Выражения указываются в контексте экземпляра класса.

Отображение примитивных типов

Теперь Java Type Renderers можно объявлять и для примитивных типов, включая массивы.

image

Анализ содержания памяти

С помощью нового плагина JVM Debugger Memory View, во время отладки вы можете исследовать содержание памяти.

Окно инструментов Memory View отображает количество экземпляров каждого класса. Чтобы открыть окно инструментов, воспользуйтесь главным меню: View > Tool Windows > Memory View.

Колонка Diff отображает как количество экземпляров изменилось с момента предыдущей остановки. Таким образом вы можете следить за созданием новых экземпляров.

image

Двойной клик на строчке класса откроет список экземпляров этого класса. Mark Object, Evaluate Expression, Add to Watches и другие операции отладки доступны применимы к любому экземпляру в этом списке.

image

Catch class filter

Следующее улучшение касается отладки исключений. Теперь вы можете задать границы Exception Breakpoint, указав пакеты, в которых это исключение ловится, – иначе говоря, в которых стоит try-catch выражение.

image

Контроль версий


Отмена коммита

Откатить последний неопубликованный коммит теперь можно одним кликом: выделите его в закладке Log и вызовите Undo Commit из контекстного меню. Действие эквивалентно команде “git reset --soft HEAD^”. Это значит, что изменения не пропадут, а перейдут в Local Changes.

image

Удаление веток

Теперь если вы удаляете локальную ветку, IDE предложит также удалить ветку, на которую она ссылается, либо откатить удаление.

image

Sign-off commit

Диалог Commit Changes теперь предоставляет опцию Sign-off commit.

File colors

Теперь в диалогах и окнах инструментов контроля версий каждый файл подсвечивается в соответствии с настройками File Colors.

image

Интерфейс


Recent tests

Теперь вы можете нажать Ctrl+Shift+; (Cmd+Shift+; для OS X) и увидеть список последних тестов. Список содержит как последние успешные конфигурации тестов так и неуспешные индивидуальные тесты. Enter–запуск теста; F4–переход к коду.

image

Текстовый поиск

Теперь, если вы вызываете Find in Path из редактора, настройки сохраняют указанные ранее значения, а не сбрасываются как раньше.

Java


Лямбда выражения в File Structure

Попап и окно инструментов Structure теперь могут показывать лямбда выражения, если соответствующая настройка включена. Включить ее можно нажав Ctrl+L (Cmd+L для OS X).

image

Некоторые интеншены стали инспекциями

Основное отличие инспекций от интеншенов заключается в том, что инспекции можно применить сразу на многих файлах. Мы выбрали ряд интеншенов, для которых это имеет смысл, и сделали из них инспекции: в частности Lambda can be replaced with anonymous class и Diamond can be replaced with explicit type arguments.

image

Настройки инспекции unused declaration

В инспекцию Unused declaration добавлены настройки Members to report. Теперь вы можете выбрать, на какие члены класса и модификаторы испекция будет распространяться.

Иерархия мета аннотаций

Окно инструментов Type Hierarchy теперь работает и для мета-аннотаций и позволяет видеть их иерархию. Это может быть особенно полезно для Spring или, например, JUnit 5.

JavaScript and CSS


Flow

Теперь, если вы указали Flow в качестве версии JavaScript, вы начнете получать сообщения о проблемах в коде прямо в редакторе для тех файлов, которые аннотированы "// flow".

image

Чтобы это работало, не забудьте указать путь к локально установленному Flow в Settings > Languages & Frameworks > JavaScript > Flow.

Переименование методов в TypeScript

Переименование методов в TypeScript стало безопасным:

  • Если метод наследует или переопределяет метод из других классов/интерфейсов, IDE предложит переименовать базовые методы;
  • Если, существуют другие методы, переопределяющие или наследующие переименовываемый метод, IDE переименует и их.


image

Генерация кода Angular 2

Инструмент Angular CLI теперь интегрирован в попап Generate New, доступный по Alt+Ins (Cmd+N для OS X).

image

PostCSS

Для PostCSS теперь есть плагин. Установив плагин, вы получите подсказки, форматирование, навигацию, инспекции, переименование и другие функции предлагаемые для обычного CSS.

image

Группировка генерируемых файлов

В окне инструментов Project генерируемые файлы теперь группируются вместе с исходными файлами (если они в той же директории): например, ".css", ".css.map" и ".sass"; ".js", ".js.map" и ".ts"; и т.п.

Кроме нововведений обновление конечно же содержит массу багфиксов. Пока это все. Свежие EAP билды будут появляться каждую неделю.

Если обнаружите баги, пожалуйста сообщайте о них в наш трекер.

Ссылка на скачку EAP-билд: https://confluence.jetbrains.com/display/IDEADEV/IDEA+2016.3+EAP.

Буду рад ответить на вопросы.

Программируйте с удовольствием!
Поделиться с друзьями
-->

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


  1. sabio
    30.08.2016 16:48
    +1

    Извините за «офтопик», но нельзя ли как-то «подтолкнуть» IDEA-140862?
    Очень уж напрягает.


    1. andreycheptsov
      30.08.2016 16:55

      Переслал ваш комментарий Константину.


  1. 3draven
    30.08.2016 19:35
    +1

    Вот бы в андроид студио такой же принцип интроспекции памяти сделали… а то с дампом неудобно. Есть там и давно не устраняемый косяк, когда локальные переменные, которые очевидно в области видимости, при отладке не видны… вот это бы поправили, хотя как повторить баг я не знаю, но встречал такое нередко. Хотя это может быть вина самой студии и ее способа работы с adb или еще чего.


  1. Nekitos
    30.08.2016 20:44

    Извините за оффтоп. Не знаю у меня одного ли (просто в моем окружении только я использую 2016.2.x), Idea постоянно индексирует файлы на каждый чих абсолютно. Естественно, время отклика становится высоким (около минуты). Что же такого изменилось с 2016.1.x, что привело к постоянной индексации? Замечу, что настройки индексации никогда не менял, если они есть конечно. На домашнем ПК это не так заметно, потому что на ssd, а вот на рабочем прямо напрягает.


    1. RomanYakimchuk
      30.08.2016 21:52

      +1, индексирует после после каждого создания директории, и теперь работая с наблюдателем изменений индексация происходит почти постоянно


    1. andreycheptsov
      30.08.2016 21:58

      Про такое раньше не слышал. Вы могли бы написать нам в суппорт и приаттачить логи?


  1. shishmakov
    31.08.2016 12:41

    В надежде читаю списки изменений к новым патчам версии 2016.
    Уже давно как не работает отладка в JS Nashorn. IDEA-141358, протолкните пожалуйста.


  1. Yozi
    31.08.2016 17:10

    Flow всё так же не работает, или есть какой секрет по настройке?


    'use strict';
    
    // @flow
    
    function testFn(): string{
        return 5;
    }

    Для ide всё ок, а для flow из терминала ожидаемый:


    test.js:6
      6:     return 5;
                    ^ number. This type is incompatible with the expected return type of
      5: function testFn(): string{
                            ^^^^^^ string
    
    Found 1 error
    


    1. andreycheptsov
      31.08.2016 17:12

      Только то, что указано в посте: JavaScript version -> Flow и путь к Flow. Вы это сделали?


      1. Yozi
        31.08.2016 17:16

        Да, всё как в посте: /usr/bin/flow и его же запускал в терминале. Версию JavaScript указал верно.


        Кроме этого, интересует, что означает опция Enable flow resolve, в примере с testFn оно так агрессивно пытается резолвить, что ругается даже на string из аннотации функции.


        1. andreycheptsov
          31.08.2016 18:05
          +1

          Проблему обнаружили. Создали тикет.


          1. Yozi
            31.08.2016 18:17

            Спасибо, отличная новость.


        1. de1mar
          01.09.2016 00:21

          Enable flow resolve полностью заменяет резолв IDE на предоставляемый flow get-def. Он потом используется для рефакторингов, show parameter info, find usages, инспекций и остального.

          Про ругается на 'string', не могли бы вы создать ишью со скриншотом того, как ругается?


          1. Yozi
            01.09.2016 11:58

            Дополнительно протестил, похоже проблема и здесь в 'use strict', без него, когда flow начинает работать, всё становится чудесно


  1. Tom910
    01.09.2016 00:21

    Планируете добавить Stylelint?



  1. karudo
    02.09.2016 06:41

    А когда все эти вкусности в WebStorm попадут? :-)


    1. andreycheptsov
      02.09.2016 09:46
      +1

      Уже попали в WebStorm EAP.


  1. Goodkat
    02.09.2016 16:04

    Может сможете помочь.
    Пытаюсь перейти с Eclipse, никак не могу найти, как вывести список задач из BugZilla — в Eclipse для этого есть плагин Mylyn, там можно настроить Query для каждого проекта, так что Task List выводит список моих багов отсортированных по приоритету:
    image

    Как это сделать в вашей IDE?
    В настройках BugZilla подключена, тест проходит successful, подгружает список Products, но списка тасков с сервера нет, только локальные.

    Список багов/задач и переключение между контекстами — одно из основных требований к IDE.


    1. andreycheptsov
      02.09.2016 16:15

      Сейчас единственный способ это сделать, – это с помощью Open Task. Переключаться между тасками можно следующим образом.


      1. Goodkat
        02.09.2016 16:39

        Жаль, что нельзя видеть весь список, фильтровать и создавать queries.
        Но даже хотя бы и так — на скриншотах у вас я видел Open Task с подгруженными с сервера тасками, но у меня там только локальные, список с сервера не подгружается.


        1. andreycheptsov
          02.09.2016 17:07

          Если список с сервера не подгружается, то это уже хуже. В логе что-нибудь есть? Тогда нужен тикет, жел-но позволяющий это воспроизвести.


  1. Paulson
    02.09.2016 22:07

    Когда ожидается поддержка Grails 3 Toolbar?


    1. andreycheptsov
      05.09.2016 17:07

      А что имеется в виду? Вообще-то toolbar уже есть для грейльсового проекта.


      1. Paulson
        06.09.2016 21:54

        Я пользовался 13й идеей и грейлз 2.4.4 — там действительно был тулбар. Сейчас я скачал Идею 2016.3 EAP и грейлз 3.1.1 и тулбара нет.
        Гугл выдал информацию, что поддержки тулбара для 3й версии нет. image
        Возможно, я делаю что-то не так?
        P.S. Проект, конечно, сделан грейловский.
        P.S.S В хелпе идеи тоже не видно тулбара на скринах


        1. Borz
          06.09.2016 22:10

          We drop the Grails tool window. We’re sorry about it, but for now we’ve decided to focus more on the in-editor coding assistance. Still we plan to come up with a view that is unified for all MVC frameworks in the future.

          https://blog.jetbrains.com/idea/2015/10/intellij-idea-15-eap-supports-grails-3/


          1. Paulson
            06.09.2016 22:34

            Спасибо за ссылку. Грустненько :(