Отладчик
Продолжая бороться за пространство и общее удобство, мы объединили вкладку Watches с вкладкой Variables.
Также теперь можно использовать многострочные выражения в настройке брейкпойнта в полях Condition и Evaluate and log, и в настройках Data Type Renderers в поле Use following expression.
Интеграция с Git и Mercurial
Вкладка Log для Git и Mercurial в очередной раз претерпела ряд изменений. Ее содержание теперь обновляется в фоновом режиме (и при загрузке проекта, и при изменениях в локальном репозитории). За счет этого открываться вкладка стала гораздо быстрее.
Кроме того, во время обновления и загрузки под панелью инструментов теперь отображается тонкая полоска прогресса.
Если в поле Filter указана строка поиска, во время прокрутки внизу также появляется индикатор загрузки.
Подробная информация о коммитах показывается теперь для нескольких выделенных коммитов.
И наконец, можно установить шорткат для быстрого перехода к полю Filter.
Для Git мы исправили важную проблему, с которой наверняка сталкиваются пользователи Windows и OS X: переименование файлов, где меняется только регистр символов.
Работа с патчами
Если вы скопируете патч в буфер обмена и переключитесь в IDE (или перетащите патч в окно IDE мышью), вам автоматически предложат применить этот патч.
Кроме того, применение патча значительно упростилось в тех случаях, когда он не содержит информации о ревизии, а оригинальный файл был перенесен, переименован или изменен. В простейших случаях IDE постарается самостоятельно определить оригинальный файл, в сложных — предложит вам его указать. Также, если содержание файла изменилось, IDE поможет объединить эти изменения с патчем.
И наконец, перед применением патч теперь можно просто сравнить с локальной копией (кнопка Show Diff) и при необходимости внести изменения в локальную версию вручную по ходу сравнения.
Редактор
Редактор теперь поддерживает шрифты с лигатурами — специальными символами, образованными путем соединения других символов. Включить опцию можно в Settings > Editor > Colors & Fonts > Font (флажок Enable font ligatures). Убедитесь, что выбранный шрифт поддерживает лигатуры, например FiraCode, Hasklig, Monoid или PragmataPro.
Интерфейс
Внешний вид IDE теперь можно настроить под себя, выбрав любое изображение как фон редактора и окна IDE. За счет настроек прозрачности это прекрасно работает и с темной, и со светлой темами.
Изображение выбирается с помощью действия Set Background Image, которое доступно как из Find Action, так и из контекстного меню на файле изображения.
Также внешне изменились всплывающие нотификации. Теперь они отображаются в нижнем правом углу (ближе к окну инструментов Events), имеют более компактную форму и группируются по типу подсистемы.
Spring Framework
Поддержка Spring Framework продолжает совершенствоваться.
Мы добавили инспекцию, которая предлагает автоматически заменять инжектирование полей конструкторами. Поддержали опцию (добавленную в Spring 4.3), которая позволяет использовать параметризированные типы (generics) в качестве классификаторов (qualifiers). Поддержали пользовательские аннотации EventListener, определенные с помощью AliasFor.
Кроме того, готова основательная поддержка Spring Cache (абстракции, добавленной в Spring 3.0 и полностью обновленной в Spring 4.1). Поддержка включает навигацию, инспекции, подсветку синтаксиса, автодополнение и навигацию при редактировании SpEl, и многое другое.
Для Spring MVC внутри шаблонов Freemarker и Velocity появилось автодополнение и навигация для переменных, объявленных в контроллере.
Также мы поддержали изменения Spring Security 4.0 и добавили автодополнение и навигацию при редактировании SpEl и для аннотаций и внутри XML.
Плюс мы добавили подсветку и навигацию для сообщений от Spring в консоли.
JavaScript
Теперь IDE не только помогает в написании ES6 кода, но и предлагает конвертировать в него код более старых версий JavaScript. Новый intention сможет заменить нормальные анонимные функции на стрелочные функции (arrow functions) и короткие стрелочные функции (shorthand arrow functions).
В дополнение к постфикс-автодополнениям, реализованным ранее, мы добавили шаблоны .const и .let.
React
IDE научилась понимать свойства (props) компонентов, объявленные при помощи propTypes, и теперь предлагает автодополнение и навигацию.
Методы жизненного цикла компонентов (например, componentDidMount) больше не подсвечиваются как неиспользуемые.
Когда вы передаете компоненту обработчики событий (например, onClick, onChange), IDE вместо кавычек ставит фигурные скобки (как и положено).
К слову о кавычках, теперь в Settings > Editor > Code Style > HTML > Other > Generated quote marks вы вообще можете указать, что использовать: двойные кавычки, одинарные или вообще ничего.
Наконец, IDE научилась понимать non-DOM аттрибуты, такие как key, ref и dangerouslySetInnerHTML.
AngularJS
Для AngularJS 2 мы добавили много полезных шаблонов (live templates). В Project Wizard > Static Web появился раздел Angular CLI.
TypeScript
IDE предлагает умное автодополнение для enum-типов.
Npm, Gulp и Grunt
Любой скрипт npm, Gulp и Grunt может теперь автоматически запускаться IDE перед запуском Run configuration. Для этого этот скрипт необходимо добавить в разделе Before launch в диалоге Run configuration.
Работа с базами данных
По мере развития DataGrip, нового продукта JetBrains, инструменты для работы с SQL и базами данных внутри IntelliJ IDEA также продолжают улучшаться.
В диалоге настроек Data Source and Drivers появилось автодополнение для поля Database.
В окне инструментов Database появилась опция Auto-scroll from Editor. При открытии того или иного элемента базы данных в редакторе, этот элемент выделяется в окне Database.
Автодополнение SQL стало еще больше учитывать контекст. Например, если в контексте ожидается имя таблицы, IDE больше не предлагает функции.
Surround With предлагает передать текущее выражение в качестве параметра функции.
Редактор таблицы предлагает автодополнение при редактировании значения таблицы (на основе других значений этого столбца).
Размеры столбцов таблицы можно менять с помощью шорткатов Ctrl + Shift + Вправо/Влево (??>< для OS X).
Для PostgreSQL была добавлена поддержка Schema Search Path, а также Range-типов и типов с TimeZone.
Установщик
И наконец, установщик для Windows теперь также включает наш кастомный билд JDK с нашими исправлениями проблем с фокусом и рендеринга шрифтов.
Вот, пожалуй, и все основные нововведения. Теперь можно смело скачивать превью и пробовать его самостоятельно! Как всегда, я с удовольствием отвечу на ваши вопросы в комментариях.
Программируйте с удовольствием!
Комментарии (79)
KChernenko
16.06.2016 18:25+5Спасибо! Уже не представляю как можно использовать что-то другое вместо IntelliJ IDEA.
vedenin1980
16.06.2016 18:43+7Для Git мы исправили важную проблему, с которой наверняка сталкиваются пользователи Windows и OS X: переименование файлов, где меняется только регистр символов.
Вот за это отдельное спасибо. Сталкивался с ней несколько раз.ilfroloff
17.06.2016 12:25+1Очень надоедливая проблема. Я нашел ее решение в этой статье (к сожалению, только для OS X).
Может кому-то будет полезно, если он не привязан к JetBrains продуктам.
Vlad_Yermak0v
16.06.2016 19:07Круто, а когда можно ждать поддержку лигатур в других IDE, а именно в RubyMine?
andreycheptsov
16.06.2016 19:15+3С этого года релизы всех JetBrains IDE синхронизированы и в плане номеров версий и в плане дат релиза. Поэтому изменения в IntelliJ IDEA 2016.2 появятся в других IDE примерно в это же время – летом.
TheKnight
16.06.2016 19:29Есть вопрос — а где можно прочитать полный патчноут для данного public preview?
Конкретно интересует, войдет ли в этот public preview исправление IDEA-156608?
cs0ip
16.06.2016 20:39Я так понимаю, что кастомный билд JDK пришлось делать потому, что ваши исправления не удавалось пропихнуть в OpenJDK. А с чем было связано нежелание принимать ваши исправления, когда речь идет об исправлении их же косяков, чем это аргументировалось? Я просто не в курсе ситуации и мне интересно.
andreycheptsov
16.06.2016 21:50+3Все наши изменения попадают в OpenJDK, просто с некоторой задержкой.
andreycheptsov
17.06.2016 12:16Хотя в некоторых отдельных случаях задержка может быть очень приличная.
stgunholy
16.06.2016 21:40Подскажите пожалуйста, мне часто приходится выбирать ключи локализации из приложения angular с angular-translate
Используются ключи вида «login.usernameField.label». Соответственно в шаблонах это выглядит как {{«login.usernameField.label» | translate}}
До определенного момента при нажатии cmd + W идея выделяла именно то, что мне нужно — «login.usernameField.label», теперь же выделяется вот так: {{«login.usernameField.label», я перерыл все настройки но так и не нашел, где это можно настроить… Заранее спасибо!enDal
16.06.2016 22:13У меня получилось воспроизвести в проекте без angular. Установлен ли плагин и работает ли остальная интеграция (например, переход на декларации директив)?
stgunholy
16.06.2016 22:43Плагин установлен. Переход на директивы работает через раз, но это особо глаза не мозолит… а вот cmd+W действительно часто использую…
enDal
16.06.2016 23:55angular.js в проекте или как библиотека доступен?
stgunholy
17.06.2016 00:36Сейчас как библиотека… Хотя я оба варианта пробывал настраивать…
enDal
17.06.2016 22:57>Переход на директивы работает через раз
Это может говорить о том, что мы по каким-то причинам не определяем наличие angular в проекте, что в свою очередь приводит к тому, что строки между {{ и }} не считаются кодом. Было бы здорово увидеть проект, в котором оно не работает, достаточно какого-то минимального.
m1ld
16.06.2016 22:12-9Обзор новой версии от компании сделавшей эту новую версию. Обзор такой обзор.
Когда ожидать валидацию запросов в spring-data-jpa репозиториях?andreycheptsov
16.06.2016 22:14Можете по-конкретнее, желательно с примером (я про валидацию запросов в spring-data-jpa репозиториях)?
m1ld
16.06.2016 23:04Я про эти случаи, работает только подсветка, но не проверка на то что имена атрибутов правильные:
public interface SomeEntityRepository extends CrudRepository<SomeEntity, Long> { @Query("select someEntity from SomeEntity someEntity where someEntity.keyId = ?1 and someEntity.anotherKeyId = ?2") List<SomeEntity> findAllForKeys(Key key, AnotherKey anotherKey); }
andreycheptsov
17.06.2016 12:10+1Spring Boot или обычное приложение? Настроен ли JPA фасет?
k12th
16.06.2016 23:09За лигатуры спасибо, работают. Однако FiraCode у меня в WebStorm выглядит вот так:
ЧДЯНТ? Win10, если это важно.
sabio
17.06.2016 11:12Вы запускаете WebStorm на bundled jre?
Вот, например, как у меня выглядит FiraCode 14 pt (line spacing 1.1) на bundled jre (слева) и на JDK 1.8.0_92 от Oracle (справа):
// Win7
andreycheptsov
17.06.2016 12:11+1Попробуйте включить в Settings > Appearance & Behaviour > Appearance > Antialiasing > Editor режим Greyscale.
PHmaster
17.06.2016 02:22+1Вопрос, возможно, немного не в тему: можно ли как-то заплатить за IDEA с помощью Webmoney? А то подписка истекла, банковской карты нет, приходится использовать Community Edition, а там не хватает несколько фич, которые есть в Ultimate.
sdwvit
17.06.2016 03:50Как приятно видеть что любимая IDE развивается семимильными шагами!
Пользуюсь случаем, хотел бы задать вопрос на счет поддержки гита:
Допустим, у меня мерж конфликт в файле на 1000 строк (конфиг какой-то). У меня 150 изменений/добавлений и на сервере 150 добавлений. В данный момент после добавления своих изменений в смерженую версию, мне нужно еще прокликать добавленые строчки с правой (серверной) версии. Можно ли как-то автоматизировать это? Знаю что сейчас есть кнопка Accept Right / Accept Left, но она откидывает все изменения с противоположной стороны.
Заранее спасибо.artspb
17.06.2016 11:11+2Можно сначала применить все неконфликтные изменения с обеих сторон кнопкой , а затем уже вручную разрешить конфликты.
maks1mm
17.06.2016 12:24В смысле откидывает? Она принимает с выбранной стороны все неконфликтные изменения и с противоположной стороны все остаётся как было.
softkot
17.06.2016 03:51Складывается впечатление что на поддерждку android подзабили. В настоящий момент пользоваться релизом idea для работы с последними sdk не представляется возможным, в eap и preview с горем пополам. Понятно что instant run это штука новая но последнее время уж очень сильно idea отстает от android studio в этом плане.
andreycheptsov
17.06.2016 12:14Есть такое. Я очень надеюсь в самое ближайшее время мы начнем наверстывать это.
akamensky
17.06.2016 12:15Эти изменения касаются только IDEA? Я раньше в основном пользовался только IDEA с некоторыми плагинами (в частности Python и Go), а сейчас больше переключился на PyCharm и CLion соответственно. Будут ли эти изменения включены в остальные IDE? И когда ждать обновлений для остальных продуктов?
andreycheptsov
17.06.2016 12:17Мой комментарий выше: «С этого года релизы всех JetBrains IDE синхронизированы и в плане номеров версий и в плане дат релиза. Поэтому изменения в IntelliJ IDEA 2016.2 появятся в других IDE примерно в это же время – летом.»
LionZXY
17.06.2016 12:15Не подскажите где можно найти ту фото на фоне с маяком?
prigara
17.06.2016 13:01На https://kotlinlang.org/ — https://kotlinlang.org/css/com/layout/images/index-page-header-bg.jpg
andreycheptsov
24.06.2016 12:51+2Лучше поздно, чем никогда: https://blog.jetbrains.com/idea/files/2016/06/IMG_4446.jpg
solver
17.06.2016 12:58+3Скажите, а почему ваши продукты все еще ориентированы на 32bit системы?
ToolBox запускает 32бит версию, по умолчанию тоже 32бита зпускается.
И если это можно поменять как-то, то в комплекте jre только 32 бита и это уже не изменить.
С чем это связано? У вас основная ЦА сидит на старом железе с 3Гб оперативки?vsb
17.06.2016 16:54+1А зачем вам 64 бита? Вопрос без подвоха. Я идее больше 1 гигабайта никогда не давал, и так хватает с головой вроде бы. Теоретически 64 бита должны давать ускорение за счёт большего числа регистров (может быть ещё за счёт чего-то), но я никогда не видел каких-то конкретных чисел, показывающих это преимущество.
seregamorph
17.06.2016 14:23Что за шрифт в вашем скриншоте с лигатурами? Какая OS (если это важно)?
eBuster
17.06.2016 15:34FiraCode и MacOS (судя по первым скриншотам, но это не важно).
seregamorph
17.06.2016 16:28+1Судя по всему, важно.
Так оно выглядит на Win7 — не очень приятно.
Шрифт FiraCode_1.102
Если подскажете, как это сделать приятнее на вид, буду признателен.seregamorph
17.06.2016 17:01Я видел комментарий выше про antialiasing grayscale, становится по-другому, но сказать чтобы лучше.
Проверил на Mac OS — там действительно шрифт выглядит хорошо.eBuster
17.06.2016 18:15А про бандленную версию jdk с фиксами для рендеринга шрифтов видели комент, у вас она или обычная? Может это поможет, потому что вид тут мало сказать неприятный, выглядит это всё вообще неприемлимо.
Я, признаться, последние не знаю сколько уже лет, только под убунтой работаю, так что такие фокусы от винды для меня сюрприз.
Miklos
17.06.2016 17:15Ideavim отвалился.
andreycheptsov
17.06.2016 17:41+1К сожалению да. Пока не починили, можете проинсталлировать IdeaVim EAP: https://github.com/JetBrains/ideavim#get-an-early-access
Cubist
20.06.2016 19:16MacOS только Light начертание шрифта FiraCode c лигатурами. Хотя если лигатуры отключить, снова Regular.
https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FIDEA-127539#comment=27-1267636
Я не устанавливал Light версию, только Retina.
wibotwi
23.06.2016 03:24Подскажите как в виндоус 7 поставить шрифт, а то админ аксесса нету? Можно внутрь папки идеи куда-то положить? Попробую пока через груви скрипт загружать в JVM, авось получится.
wibotwi
23.06.2016 17:02Работает, но после рестарта идеи сбрасывается. Нужно вновь идти в настройки фонта и выбирать этот фонт. Видимо скрипты выполняются после загрузки фонтов на старте. Пойду фича реквест создавать, чтобы можно было фонт из файла выбирать.
Еще попробую по АПИ идеи полазить, може можно самому шрифт ставить из груви скрипта.
Font font = Font.createFont(Font.TRUETYPE_FONT, new File("FiraCode-Regular.otf")); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); ge.registerFont(font);
Borz
23.06.2016 17:13Погуглите возможность загружать шрифты в Windows без прав админа — этого должно быть достаточно
0xcffaedfe
За лигатуры отдельное спасибо, давно ждал.
ScratchBoom
А для чего может быть полезно? Сходу не могу ничего кроме != придумать
TheKnight
Сходу еще в голову лямбды (->), сравнения(>=, <=) начинают чуть красивее выглядеть. В Haskell больше сочетаний, которые лигатурами красиво отображаются. Рекомендую сходить на странички шрифтов и посмотреть примеры.
dougrinch
Только вот жалко что в дефолтном Source Code Pro их нет. Все 4 предложенных в статье шрифта (включая Hasklig, который вроде как форк Source Code Pro) выглядят плохо.
eBuster
Hasklig это и есть Source Code Pro с лигатурами. Не может он плохо выглядеть, если вас дефолтовый устраивает.
dougrinch
Т.е. это мои персональные глюки?
Source Code Pro
Hasklig
dougrinch
Почему-то хабр уменьшает картинки и они выглядят почти одинаково. Вот оригиналы:
https://hsto.org/files/265/436/d3e/265436d3e1c240a4a54def73e42caeac.png
https://hsto.org/files/787/2f9/4fc/7872f94fc93e42cbb593653d62c4a779.png
eBuster
Какие глюки? Что именно в нём для вас выглядит плохо?
Начертание практически одниковое (насколько я могу судить как неискушённый зритель), на скринах разница видна только в межстрочном интревале и немного в сглаживании. Но про сглаживание мне сложно что-то плохое сказать, кроме того, что нижний (Hasklig) выглядит более чётким.
dougrinch
Я вот что подумал: может быть я поставил не тот hasklig? Их ведь там архиве штук 15. Я ставил regular.
k12th
Мне ниже в комментах посоветовали Settings > Appearance & Behaviour > Appearance > Antialiasing > Editor режим Greyscale, мне помогло.
dougrinch
Изменения есть, но ничтожные.