IntelliJ IDEA 2016.3: Java 8 и ES6, улучшенные отладчик и интерфейс, и многое другое

от автора

Привет, Хабр!

Спешу поделиться хорошей новостью. Сегодня стала доступна IntelliJ IDEA 2016.3 – очередной крупное обновление нашей (и, хочется, надеяться вашей) любимой Java IDE. Читайте ниже об основных изменениях и нововведениях.

Java 8

С релиза Java 8 IntelliJ IDEA предоставляет инспекции, помогающие писать корректный и идиоматический Java 8. В IntellIJ IDEA 2016.3 эти инспекции были серьезно переработаны, расширив область применения за рамки тривиальных примеров. Теперь, если вы нажмете Alt+Enter внутри нетривиального for цикла, IDE предложит переписать его с использованием Stream API. При этом IDE будет опираться на практически все доступные API: count, sum, flatMap, map, mapToInt, collect, filter, anyMatch, findFirst, toArray и другие. (Примечание: похожая инспекция доступна для Kotlin.) Также IDE предложит заменить соответствующие конструкции на Map.computeIfAbsent, Collections.removeIf или ThreadLocal.withInitial там, где это имеет смысл.

Scala

Scala.js

Обновленный Scala плагин теперь предоставляет навигацию и автодополнение для js.Dynamic – на основе переменных и методов, объявленных в JavaScript библиотеках или файлах проекта.

scala.meta

Также плагин получил поддержку scala.meta. IntelliJ IDEA поддерживает “новые” макро-аннотации и предоставляет помощь при редактировании scala.meta quasiquotes.

JVM отладчик

Class-level Watches

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

Memory View

Этот новый плагин позволяет исследовать объекты в памяти JVM при отладке кода. Плагин показывает количество объектов в памяти, с группировкой по имени класса. По мере того как вы перемещаетесь во время отладки по коду, колонка Diff показывает как это количество меняется. Двойной клик на классе откроет диалог с объектами. Также плагин позволяет отслеживать stacktraces создания объектов.

Интерфейс

Подсказки имен параметров методов

Опция Parameter Hints (включена по-умолчанию и) показывает имена параметров методов, если в качестве аргументов используются литералы или null. Такие подсказки делают код более читаемым. Если подсказки для каких-то методов избыточны, вы можете попросить IDE не показывать их.

Семантическая подсветка

Ранее появившийся в KDevelop и некоторых других IDE, Semantic highlighting теперь доступен в IntelliJ IDEA. Эта опция добавляет в стандартную подсветку уникальные цвета для каждого параметра и локальной переменной. Эта опция выключена по умолчанию, но может быть включена в SettingsEditorColors & FontsLanguage DefaultsSemantic highlighting.

Иконки

Иконки файлов и папок стали плоскими. Новые иконки стали четче и менее отвлекающими.

Инструменты сборки

Delegate IDE build/run actions to Gradle

Эта новая опция позволяет делегировать такие действия IDE как Build, Build Artifacts и Run напрямую Gradle. Когда эта опция включена, IDE вместо стандартных действий вызывает соответствующие Gradle-таски. Включить эту опцию можно в SettingsBuild, Execution, DeploymentBuild ToolsGradleRunnerDelegate IDE build/run actions to Gradle.

Gradle Composite Builds.

Эта новая мощная опция позволяет заменить любую из зависимостей проекта другим проектом. Эта опция требует Gradle 3.1 или старше.

Polyglot Maven

Теперь pom.xml можно писать на Groovy, Scala, Ruby и других языках. (Примечание: подсказки при редактировании pom.xml доступны только для Groovy.)

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

Log для Git и Mercurial

Окно Log снова переработано, в этот раз – с целью повышения эргономичности и скорости работы. Панель подробных изменений сместилась вправо, освободив больше места. Описание изменений теперь выровнены и более читаемы. Метки с тегами и названиями веток сместились вправо и отображаются более элегантно. Строка поиска сохраняется между запусками IDE. Для Git поиск по тексту, автору и пути стал гораздо быстрее.

Merge и Diff

Окно Merge теперь может разрешать конфликты автоматически там, где это возможно. В таких случаях слева будет отображаться иконка Resolve с волшебной палочкой. Также мы добавили маркеры, отражающие изменения, которые будут применены поверх базовой ревизии. Кроме этого, и Merge и Diff теперь предлагают подсветку синтаксиса и навигацию для “не-базовых” ревизий.

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

JavaScript

ECMAScript 6

IntelliJ IDEA позволяет автоматически конвертировать переменные объявленные var в const/let в зависимости от семантики их использования.

Для всех вызовов require, IDE предложит автозамену на import.

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

TypeScript

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

Flow

Теперь, если вы укажете Flow в качестве версии JavaScript, а также укажете путь к дистрибутиву Flow, заработают соответствующие инспекции (и в некоторых случаях автодополнения).

Серверы приложений

TomEE 7

Поддержка TomEE была обновлена до последней версии.

Liberty

Теперь IDE позволяет запускать loose applications. Для этого на закладке Deployment в окне WebSphere Run/Debug configuration вместо артефакта выберите Loose application….

React Native

Теперь запускать и отлаживать React Native приложения можно для OS X и Android прямо из IDE.

Android

Blueprint

Это новый режим в Designer, который скрывает визуальные элементы компонентов и отражает только их структуру.

Constraint Layout

Это мощный новый layout manager, который позволяет создавать сложные структуры интерфейса, используя плоскую структуру.

Instant Run

Согласно информации от команды Android Tools, обновление исправляет большое количество проблем, связанных с работой Instant Run. Теперь Instant Run должен работать более стабильно.

APK Analyzer

Эта утилита позволяет анализировать содержимое APK.

Базы данных

Редактирование нескольких ячеек

Теперь вы можете выделить несколько ячеек и редактировать их одновременно.

Пакетная отправка изменений

Теперь изменения в таблице отправляются не сразу, а по нажатию Ctrl+Enter (Cmd+Enter для OS X) – целыми пакетами. Используйте Undo, чтобы откатить неотправленное изменение.

Поиск использований

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

Clouds

Google Cloud Tools

Google представила собственный плагин для деплоя приложений в Google Cloud. Позже этот плагин полностью заменит плагин JetBrains для работы с Google App Engine.

OpenShift Origin (V3)

Плагин для работы с OpenShift теперь поддерживает новую версию OpenShift.

Toolbox App

Не забудьте взглянуть на Toolbox App — новое настольное приложение для удобной установки и обновления любых IDE от JetBrains.

Это вкратце все, что команда успела сделать за 4 месяца, не считая багфиксов.

Подробности, скриншоты и видео о релизе можно найти на странице What’s New (на английском). Там же можно скачатьv обновление.

Как всегда, буду рад ответить на любые вопросы.
ссылка на оригинал статьи https://habrahabr.ru/post/315838/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *