Java

Java 12

В IntelliJ IDEA 2018.3 появилась начальная поддержка Java 12. Доступен предварительный просмотр Raw String Literals (JEP 326) и множество полезных инспекций и быстрых исправлений. IDE поможет преобразовать многострочные строковые литералы в необрабатываемые строковые литералы и наоборот, обнаружит избыточные обратные кавычки (`) и многое другое. Подробнее

Прочитать официальное уведомление

Обратите внимание, что Java 12 еще не выпущена. Чтобы включить поддержку Java 12, необходимо принять условия официального уведомления о спецификации бета-версии Java. Реализация черновой спецификации, разработанной в рамках Java Community Process (JCP), доступна только для целей тестирования и оценки и не является совместимой с любой спецификацией JCP.

Улучшенный поиск дубликатов

IntelliJ IDEA теперь может быстро находить дубликаты даже в более сложных случаях, например, если имена переменных отличаются. Дубликаты отобразятся в diff viewer, поэтому их можно сравнивать друг с другом.

Улучшения Java Stream API

Теперь IDE обнаруживает избыточные вызовы sorted, выполняемые перед последующим вызовом min. Удалить лишние вызовы можно с помощью нового быстрого исправления.

Оптимизация потока данных

Мы добавили новую инспекцию Condition is covered by further condition. Она выявляет ситуации, в которых первое условие необязательно, так как перекрывается вторым. Для удаления таких избыточных условий предусмотрено быстрое исправление.

Избыточные использования подавленных инспекций

IntelliJ IDEA теперь обнаруживает избыточные использования аннотации @SuppressWarning, комментария // noinspection или комментария JavaDoc / ** noinspection * /. Если подавленная инспекция больше не выдает какие-либо предупреждения в связанном теле метода, классе или операторе, IDE не только предупредит вас об этом, но и поможет быстро удалить ненужные аннотации и комментарии.

Редактор

TODO из нескольких строк

IntelliJ IDEA 2018.3 поддерживает многострочные TODO-комментарии: теперь первая и все последующие строки таких комментариев подсвечиваются в редакторе и отображаются в окне инструмента TODO. Главное соблюсти отступ для второй и последующих строк — IDE поймет, что это часть TODO-комментария.

Отключение форматирования для отдельных файлов и папок

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

Отображение отступов в строке состояния

IntelliJ IDEA отображает размер отступа в текущем файле в новой строке состояния. Если отступы в файле не соответствует текущим настройкам проекта, в строке состояния появится звездочка. IDE предложит несколько действий для исправления ситуации во всплывающем окне.

Улучшенная поддержка EditorConfig

Теперь IntelliJ IDEA предоставляет подсветку синтаксиса и автодополнение кода в файлах EditorConfig. Вы также можете использовать новое всплывающее окно строки состояния отступов, чтобы легко перейти к используемому файлу EditorConfig.

Система контроля версий

Пул-реквесты GitHub

В IntelliJ IDEA появилась начальная поддержка пул-реквестов GitHub. Теперь список всех пул-реквестов в репозитории GitHub можно просмотреть в новом окне GitHub Pull Requests. Вы можете использовать diff для предварительного просмотра изменений и создать новую ветку из любого пул-реквеста через контекстное меню.

Просмотр всей истории файла с помощью History up to Here

Раньше с помощью действия History up to Here можно было посмотреть историю изменений файла до выбранного коммита, а теперь вы сможете увидеть, что произошло с файлом впоследствии, выбрав значок Show All Branches на панели инструментов. Это особенно полезно в случае, если файл позже был удален.

Улучшенная навигация по VCS-логу

Теперь вам доступны действия навигации вперед или назад во вкладке Log (VCS) — например, после перехода от хэшей коммита к самому коммиту или после выполнения действия Go to hash/branch/tag. Используйте клавиши со стрелками влево и вправо для перехода к дочернему или родительскому коммиту.

Возможность игнорировать пробелы

В IDE появилась возможность игнорировать или отсекать символы пробела при слиянии изменений. Настроить эту опцию можно в новом раскрывающемся списке диалога Merge Revisions for….

Копирование файла из одной ветки в другую

IntelliJ IDEA 2018.3 позволяет легко скопировать файл из одной ветки Git в другую с помощью нового действия Get from Branch, которое доступно на вкладке Files диалогового окна Compare branches.

Имя ветки в диалоге коммита

Теперь имя ветки, в которую вы вносите файлы, отображается прямо в диалоге коммита. Эта функция работает для Git, Mercurial и SVN.

Предварительное сравнение на вкладке File History

Предварительный просмотр diff теперь доступен на вкладке File History окна Version Control.

Поддержка подмодулей Git

В IntelliJ IDEA 2018.3 появилась поддержка подмодулей Git: обновление проекта, коммиты изменений, просмотр диффов и разрешение конфликтов.

Поиск и замена

Обновленный диалог Search Everywhere

IntelliJ IDEA 2018.3 представляет новый способ навигации по проекту и IDE. Встречайте полностью обновленный диалог Search Everywhere! Теперь в нем объединены все остальные диалоги навигации: поиск действия, переход к классу, файлу или символу удобно выполнять из одного окна. При этом все навигационные действия по-прежнему можно вызвать привычными сочетаниями клавиш.

Многострочный поиск в Find in Path

В диалоговых окнах Find in Path и Replace in Path теперь можно выполнять поиск и замену фрагментов из нескольких строк. Больше не нужно использовать регулярные выражения для многострочного поиска.

Обновленный диалог структурного поиска и замены

Мы обновили и оптимизировали диалог Structural Search & Replace. Теперь автодополнение работает для предопределенных шаблонов в поле поиска. Вы можете просмотреть историю поиска в раскрывающемся списке под значком лупы. Настройка области поиска стала более гибкой. Мы заменили громоздкую форму редактирования переменных панелью фильтров, которую вы найдете в обновленном диалоге.

Переработанная страница плагинов

Мы переделали страницу Plugins в настройках (Preferences или Settings): стало удобнее управлять плагинами, устанавливать, удалять и обновлять их. Теперь можно искать плагины не только по названию, но и по тегам, а также сортировать результаты поиска по имени, рейтингу, статусу «избранный», количеству скачиваний или обновлениям.

Run Anything

Run Anything

В версии 2018.3 мы представляем новый универсальный способ мгновенного запуска различных команд — Run Anything (двойное нажатие Ctrl). Новое действие можно использовать для выполнения конфигураций запуска (в том числе Maven и Gradle), команд в терминале и задач Gradle.

Debug anything

Нажмите Shift, и диалог Run Anything перейдет в режим Debug Anything, в котором удобно запускать отладчик.

Kotlin

Встроенный Kotlin-плагин был обновлен до версии 1.3

Поддержка Kotlin 1.3

Совсем недавно вышло большое обновление языка Kotlin, а также инструментов и библиотек. IntelliJ IDEA поможет осуществить миграцию вашего проекта на Kotlin 1.3 и выполнить все необходимые преобразования в устаревшем коде, чтобы обеспечить совместимость с обновленными библиотеками.

Улучшенная поддержка мультиплатформенных проектов

В Kotlin 1.3 была полностью переработана модель мультиплатформенных проектов для большей выразительности и гибкости языка, а также для упрощения использования одного и того же кода на разных платформах. IntelliJ IDEA поддерживает наиболее распространенные варианты проектов.

Новые инспекции и быстрые исправления

С предыдущего релиза IntelliJ IDEA в Kotlin-плагин было добавлено больше 30 новых инспекций, быстрых исправлений и intention-действий, чтобы вы могли работать еще эффективнее.

Spring и Spring Boot

Поддержка Spring Boot 2.1

IntelliJ IDEA 2018.3 fully supports the recently released Spring Boot 2.1. Configuration values annotated with @DataSize are validated using the default @DataSizeUnit, if specified.

Spring Initializr

Теперь при создании проекта с использованием Spring Initializr, чтобы обеспечить поддержку выбранных технологий, IDE предложит установить или включить соответствующие плагины.

Улучшенная поддержка JPA и Spring Data для Kotlin

Теперь IDE может автоматически вставлять JPQL в строки запроса, предоставляя автодополнение для имен и параметров. IntelliJ IDEA поддерживает интерфейсы Spring Data, написанные на Kotlin, и корректно обрабатывает используемые в них сущности. Для имен методов работает Smart completion, а для параметров доступны быстрые исправления.

Специальные возможности

Высококонтрастная тема интерфейса

Мы заботимся о том, чтобы наша IDE была максимально доступной для всех разработчиков. В IntelliJ IDEA 2018.3 мы добавили новую высококонтрастную тему интерфейса.

Улучшенная поддержка инструментов чтения с экрана

Мы расширили поддержку инструментов чтения с экрана: теперь они зачитывают номера строк, аннотации VCS, действия отладчика и значения иконок на полях редактора.

Отладчик JVM

Присоединение отладчика к Java-процессам

IDE позволяет присоединяться к Java-процессам, которые были запущены без агента отладки. После подключения к процессу вы сможете просматривать состояние текущего потока и значения переменных, а также использовать представление памяти.

Если вы хотите присоединить отладчик к локальному процессу, используйте новое действие Attach Debugger в окне Run.

Автоматический перезапуск прослушивания удаленного соединения

Теперь во время отладки удаленного процесса, IDE может автоматически перезапустить конфигурацию. Просто включите новую опцию Auto restart для конфигураций удаленной отладки.

Асинхронные трассировки стека на удаленных JVM

IntelliJ IDEA 2018.3 now supports async stack traces in remote JVMs. To start using the agent remotely:

  • скопируйте /lib/rt/debugger-agent.jar на удаленный компьютер.
  • добавьте -javaagent: debugger-agent.jar к параметрам удаленной JVM.

Теперь вы можете указать свои аннотации Async в диалоговом окне Async Annotations Configuration.

Удаление всех точек останова

В IntelliJ IDEA 2018.3 появились удобные действия, которые помогут удалить все точки останова в файле или проекте. Вы можете назначить сочетания клавиш для таких действий в меню Preferences (Settings) | Keymap | Debugger Actions.

Maven

Теперь можно делегировать Maven все действия по сборке и запуску. Перейдите в Preferences (Settings) | Build, Execution, Deployment | Build Tools | Maven | Runner и выберите новую опцию Delegate IDE build / run actions to maven.

Терминал

Обновления коснулись и встроенного терминала. Теперь IntelliJ IDEA 2018.3 будет сохранять имена вкладок терминала, текущую рабочую директорию и историю командной оболочки при закрытии проекта или IDE.

Кроме того, поменялся дизайн вкладок терминала, теперь они выглядят так же как в остальных окнах инструментов.

Конфигурация запуска

Макросы в конфигурациях запуска Java

IntelliJ IDEA теперь позволяет использовать макросы в конфигурациях запуска Application и npm. Вы можете ввести предопределенный макрос в поле Program arguments.

Использование текстовых файлов в качестве входных данных

Если вы хотите использовать текстовый файл или файл журнала в качестве входных данных, просто выберите опцию Redirect input from в диалоговом окне Run/Debug Configurations, а затем укажите путь к файлу, в котором содержатся данные.

Run configuration по умолчанию запускается как один экземпляр

По умолчанию конфигурация запуска теперь запускается только как один экземпляр. Однако в окне Run/Debug Configuration есть опция Allow running in parallel, которую можно включить, если вам нужно запустить несколько экземпляров одной и той же конфигурации параллельно.

JavaScript и TypeScript

Автоматические импорты в JavaScript-файлах

IntelliJ IDEA теперь умеет автоматически добавлять импорты для символов из зависимостей проекта в JavaScript-файлы. Это возможно, если библиотеки были написаны как ES-модули или в них есть d.ts-файлы.

Улучшенная поддержка Angular

Автодополнение кода и действие «Go to definition» для переменных, pipes (простых и асинхронных), а также ссылочных переменных в шаблонах Angular теперь работают намного точнее.

Поддержка worker threads в Node.js

В IntelliJ IDEA добавлена возможность отладки исполнителей (workers) Node.js. Используйте Node.js 10.12 или более позднюю версию и флаг --experimental-worker. Кроме того, IDE предоставляет автодополнение для worker threads API.

Более гибкая настройка ESLint и TSLint

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

Для ошибок, обнаруженных TSLint, нажмите Alt-Enter и стрелку вправо, чтобы добавить комментарий об отключении этого правила.

Kubernetes

Поддержка файлов ресурсов Helm

IDE теперь корректно распознает файлы шаблонов ресурсов Helm и предоставляет всю необходимую помощь при редактировании: автодополнение, рефакторинг Rename и, конечно же, инспекции и быстрые исправления.

Навигация в файлах ресурсов Helm

IntelliJ IDEA позволяет переходить от использования значения к его объявлению в файле values.yaml, содержащем информацию о чарте. Для навигации между определением метки и ее селектором используйте иконки на полях. Кроме того, для файлов values.yaml предусмотрены новые иконки для перехода к переопределенным/переопределяющим значениям.

Предварительный просмотр шаблона Helm

Теперь доступен предварительный просмотр результат рендеринга шаблона Helm на панели diff. Просто выберите новое действие Kubernetes | Helm Template в контекстном меню.

Обновление зависимостей Helm

Новое действие Helm Dependency Update поможет скачать внешние tgz-зависимости (или обновить существующие) и добавит их в дерево проекта.

Инструменты для работы с базами данных

Поддержка Cassandra

В этом релизе мы добавили поддержку еще одной NoSQL-базы — Cassandra.

Улучшения автодополнения для SQL

Теперь при использовании GROUP BY IntelliJ IDEA предложит список неагрегированных столбцов, а для SELECT, MERGE и INSERT IN TO — список всех столбцов. Автодополнение работает для именованных параметров, числовых полей в SUM () и AVG (), FILTER (WHERE) и типов полей в SQLite.

Использование псевдонима вместо таблицы

С помощью нового действия Introduce table alias можно использовать псевдоним вместо таблицы. Все вхождения имени таблицы будут автоматически заменены на псевдоним.

Режим одного подключения

До нынешней версии каждая новая консоль означала новое соединение. Теперь, если включить «Single connection mode» в свойствах источника данных, вся работа с ним будет происходить через одно соединение. В результате временные объекты появятся в дереве. Кроме того, можно работать с одной и той же транзакцией в разных консолях. Чтобы включить режим, перейдите в Data source properties | Options | Single connection mode.