company_banner

Что нового в IntellIJ IDEA 2016.3 EAP

    Вчера стала доступна 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 отображает количество экземпляров каждого класса. Чтобы открыть окно инструментов, воспользуйтесь главным меню: ViewTool WindowsMemory 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 в SettingsLanguages & FrameworksJavaScriptFlow.

    Переименование методов в 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.

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

    Программируйте с удовольствием!
    JetBrains
    Делаем эффективные инструменты для разработчиков

    Similar posts

    Comments 27

      +1
      Извините за «офтопик», но нельзя ли как-то «подтолкнуть» IDEA-140862?
      Очень уж напрягает.
        0
        Переслал ваш комментарий Константину.
        +1
        Вот бы в андроид студио такой же принцип интроспекции памяти сделали… а то с дампом неудобно. Есть там и давно не устраняемый косяк, когда локальные переменные, которые очевидно в области видимости, при отладке не видны… вот это бы поправили, хотя как повторить баг я не знаю, но встречал такое нередко. Хотя это может быть вина самой студии и ее способа работы с adb или еще чего.
          0
          Извините за оффтоп. Не знаю у меня одного ли (просто в моем окружении только я использую 2016.2.x), Idea постоянно индексирует файлы на каждый чих абсолютно. Естественно, время отклика становится высоким (около минуты). Что же такого изменилось с 2016.1.x, что привело к постоянной индексации? Замечу, что настройки индексации никогда не менял, если они есть конечно. На домашнем ПК это не так заметно, потому что на ssd, а вот на рабочем прямо напрягает.
            0
            +1, индексирует после после каждого создания директории, и теперь работая с наблюдателем изменений индексация происходит почти постоянно
              0
              Про такое раньше не слышал. Вы могли бы написать нам в суппорт и приаттачить логи?
              0
              В надежде читаю списки изменений к новым патчам версии 2016.
              Уже давно как не работает отладка в JS Nashorn. IDEA-141358, протолкните пожалуйста.
                0

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

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


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

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

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

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

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

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

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

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

                    Список багов/задач и переключение между контекстами — одно из основных требований к IDE.
                      0
                      Сейчас единственный способ это сделать, – это с помощью Open Task. Переключаться между тасками можно следующим образом.
                        0
                        Жаль, что нельзя видеть весь список, фильтровать и создавать queries.
                        Но даже хотя бы и так — на скриншотах у вас я видел Open Task с подгруженными с сервера тасками, но у меня там только локальные, список с сервера не подгружается.
                          0
                          Если список с сервера не подгружается, то это уже хуже. В логе что-нибудь есть? Тогда нужен тикет, жел-но позволяющий это воспроизвести.
                      0
                      Когда ожидается поддержка Grails 3 Toolbar?
                        0
                        А что имеется в виду? Вообще-то toolbar уже есть для грейльсового проекта.
                          0
                          Я пользовался 13й идеей и грейлз 2.4.4 — там действительно был тулбар. Сейчас я скачал Идею 2016.3 EAP и грейлз 3.1.1 и тулбара нет.
                          Гугл выдал информацию, что поддержки тулбара для 3й версии нет. image
                          Возможно, я делаю что-то не так?
                          P.S. Проект, конечно, сделан грейловский.
                          P.S.S В хелпе идеи тоже не видно тулбара на скринах

                    Only users with full accounts can post comments. Log in, please.