Для справки. Официально программа называется Early Access Program. На практике это аналог alpha-версии. Обновления появляются в среднем с недельной периодичностью. Каждый желающий может установить дистрибутив, попробовать новые функции и поделиться своим мнением и идеями в трекере.
В этом посте я расскажу о главных нововведениях, которые уже доступны в EAP-билде.
Отладчик
Class-level watches
Отслеживание значений выражений стало удобнее. Теперь выражения можно объявлять не только глобально, но и на уровне конкретных классов. Эти выражения будут отображаться аналогично полям класса.
Выражения указываются в контексте экземпляра класса.
Отображение примитивных типов
Теперь Java Type Renderers можно объявлять и для примитивных типов, включая массивы.
Анализ содержания памяти
С помощью нового плагина JVM Debugger Memory View, во время отладки вы можете исследовать содержание памяти.
Окно инструментов Memory View отображает количество экземпляров каждого класса. Чтобы открыть окно инструментов, воспользуйтесь главным меню: View > Tool Windows > Memory View.
Колонка Diff отображает как количество экземпляров изменилось с момента предыдущей остановки. Таким образом вы можете следить за созданием новых экземпляров.
Двойной клик на строчке класса откроет список экземпляров этого класса. Mark Object, Evaluate Expression, Add to Watches и другие операции отладки доступны применимы к любому экземпляру в этом списке.
Catch class filter
Следующее улучшение касается отладки исключений. Теперь вы можете задать границы Exception Breakpoint, указав пакеты, в которых это исключение ловится, – иначе говоря, в которых стоит try-catch выражение.
Контроль версий
Отмена коммита
Откатить последний неопубликованный коммит теперь можно одним кликом: выделите его в закладке Log и вызовите Undo Commit из контекстного меню. Действие эквивалентно команде “git reset --soft HEAD^”. Это значит, что изменения не пропадут, а перейдут в Local Changes.
Удаление веток
Теперь если вы удаляете локальную ветку, IDE предложит также удалить ветку, на которую она ссылается, либо откатить удаление.
Sign-off commit
Диалог Commit Changes теперь предоставляет опцию Sign-off commit.
File colors
Теперь в диалогах и окнах инструментов контроля версий каждый файл подсвечивается в соответствии с настройками File Colors.
Интерфейс
Recent tests
Теперь вы можете нажать Ctrl+Shift+; (Cmd+Shift+; для OS X) и увидеть список последних тестов. Список содержит как последние успешные конфигурации тестов так и неуспешные индивидуальные тесты. Enter–запуск теста; F4–переход к коду.
Текстовый поиск
Теперь, если вы вызываете Find in Path из редактора, настройки сохраняют указанные ранее значения, а не сбрасываются как раньше.
Java
Лямбда выражения в File Structure
Попап и окно инструментов Structure теперь могут показывать лямбда выражения, если соответствующая настройка включена. Включить ее можно нажав Ctrl+L (Cmd+L для OS X).
Некоторые интеншены стали инспекциями
Основное отличие инспекций от интеншенов заключается в том, что инспекции можно применить сразу на многих файлах. Мы выбрали ряд интеншенов, для которых это имеет смысл, и сделали из них инспекции: в частности Lambda can be replaced with anonymous class и Diamond can be replaced with explicit type arguments.
Настройки инспекции unused declaration
В инспекцию Unused declaration добавлены настройки Members to report. Теперь вы можете выбрать, на какие члены класса и модификаторы испекция будет распространяться.
Иерархия мета аннотаций
Окно инструментов Type Hierarchy теперь работает и для мета-аннотаций и позволяет видеть их иерархию. Это может быть особенно полезно для Spring или, например, JUnit 5.
JavaScript and CSS
Flow
Теперь, если вы указали Flow в качестве версии JavaScript, вы начнете получать сообщения о проблемах в коде прямо в редакторе для тех файлов, которые аннотированы "// flow".
Чтобы это работало, не забудьте указать путь к локально установленному Flow в Settings > Languages & Frameworks > JavaScript > Flow.
Переименование методов в TypeScript
Переименование методов в TypeScript стало безопасным:
- Если метод наследует или переопределяет метод из других классов/интерфейсов, IDE предложит переименовать базовые методы;
- Если, существуют другие методы, переопределяющие или наследующие переименовываемый метод, IDE переименует и их.
Генерация кода Angular 2
Инструмент Angular CLI теперь интегрирован в попап Generate New, доступный по Alt+Ins (Cmd+N для OS X).
PostCSS
Для PostCSS теперь есть плагин. Установив плагин, вы получите подсказки, форматирование, навигацию, инспекции, переименование и другие функции предлагаемые для обычного CSS.
Группировка генерируемых файлов
В окне инструментов Project генерируемые файлы теперь группируются вместе с исходными файлами (если они в той же директории): например, ".css", ".css.map" и ".sass"; ".js", ".js.map" и ".ts"; и т.п.
Кроме нововведений обновление конечно же содержит массу багфиксов. Пока это все. Свежие EAP билды будут появляться каждую неделю.
Если обнаружите баги, пожалуйста сообщайте о них в наш трекер.
Ссылка на скачку EAP-билд: https://confluence.jetbrains.com/display/IDEADEV/IDEA+2016.3+EAP.
Буду рад ответить на вопросы.
Программируйте с удовольствием!
Комментарии (27)
3draven
30.08.2016 19:35+1Вот бы в андроид студио такой же принцип интроспекции памяти сделали… а то с дампом неудобно. Есть там и давно не устраняемый косяк, когда локальные переменные, которые очевидно в области видимости, при отладке не видны… вот это бы поправили, хотя как повторить баг я не знаю, но встречал такое нередко. Хотя это может быть вина самой студии и ее способа работы с adb или еще чего.
Nekitos
30.08.2016 20:44Извините за оффтоп. Не знаю у меня одного ли (просто в моем окружении только я использую 2016.2.x), Idea постоянно индексирует файлы на каждый чих абсолютно. Естественно, время отклика становится высоким (около минуты). Что же такого изменилось с 2016.1.x, что привело к постоянной индексации? Замечу, что настройки индексации никогда не менял, если они есть конечно. На домашнем ПК это не так заметно, потому что на ssd, а вот на рабочем прямо напрягает.
RomanYakimchuk
30.08.2016 21:52+1, индексирует после после каждого создания директории, и теперь работая с наблюдателем изменений индексация происходит почти постоянно
andreycheptsov
30.08.2016 21:58Про такое раньше не слышал. Вы могли бы написать нам в суппорт и приаттачить логи?
shishmakov
31.08.2016 12:41В надежде читаю списки изменений к новым патчам версии 2016.
Уже давно как не работает отладка в JS Nashorn. IDEA-141358, протолкните пожалуйста.
Yozi
31.08.2016 17:10Flow всё так же не работает, или есть какой секрет по настройке?
'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
andreycheptsov
31.08.2016 17:12Только то, что указано в посте: JavaScript version -> Flow и путь к Flow. Вы это сделали?
Yozi
31.08.2016 17:16Да, всё как в посте:
/usr/bin/flow
и его же запускал в терминале. Версию JavaScript указал верно.
Кроме этого, интересует, что означает опция
Enable flow resolve
, в примере сtestFn
оно так агрессивно пытается резолвить, что ругается даже наstring
из аннотации функции.de1mar
01.09.2016 00:21Enable flow resolve
полностью заменяет резолв IDE на предоставляемыйflow get-def
. Он потом используется для рефакторингов, show parameter info, find usages, инспекций и остального.
Про ругается на 'string', не могли бы вы создать ишью со скриншотом того, как ругается?Yozi
01.09.2016 11:58Дополнительно протестил, похоже проблема и здесь в
'use strict'
, без него, когда flow начинает работать, всё становится чудесно
Goodkat
02.09.2016 16:04Может сможете помочь.
Пытаюсь перейти с Eclipse, никак не могу найти, как вывести список задач из BugZilla — в Eclipse для этого есть плагин Mylyn, там можно настроить Query для каждого проекта, так что Task List выводит список моих багов отсортированных по приоритету:
Как это сделать в вашей IDE?
В настройках BugZilla подключена, тест проходит successful, подгружает список Products, но списка тасков с сервера нет, только локальные.
Список багов/задач и переключение между контекстами — одно из основных требований к IDE.andreycheptsov
02.09.2016 16:15Сейчас единственный способ это сделать, – это с помощью Open Task. Переключаться между тасками можно следующим образом.
Goodkat
02.09.2016 16:39Жаль, что нельзя видеть весь список, фильтровать и создавать queries.
Но даже хотя бы и так — на скриншотах у вас я видел Open Task с подгруженными с сервера тасками, но у меня там только локальные, список с сервера не подгружается.andreycheptsov
02.09.2016 17:07Если список с сервера не подгружается, то это уже хуже. В логе что-нибудь есть? Тогда нужен тикет, жел-но позволяющий это воспроизвести.
Paulson
02.09.2016 22:07Когда ожидается поддержка Grails 3 Toolbar?
andreycheptsov
05.09.2016 17:07А что имеется в виду? Вообще-то toolbar уже есть для грейльсового проекта.
Paulson
06.09.2016 21:54Я пользовался 13й идеей и грейлз 2.4.4 — там действительно был тулбар. Сейчас я скачал Идею 2016.3 EAP и грейлз 3.1.1 и тулбара нет.
Гугл выдал информацию, что поддержки тулбара для 3й версии нет.
Возможно, я делаю что-то не так?
P.S. Проект, конечно, сделан грейловский.
P.S.S В хелпе идеи тоже не видно тулбара на скринахBorz
06.09.2016 22:10We 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/
sabio
Извините за «офтопик», но нельзя ли как-то «подтолкнуть» IDEA-140862?
Очень уж напрягает.
andreycheptsov
Переслал ваш комментарий Константину.