Компания JetBrains представила планы развития интегрированных IntelliJ IDEA и сред разработки, созданных на базе IntelliJ. Диапазон новых функций простирается от автоматического дополнения программного кода на основе машинного обучения до средств совместного редактирования.

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

В JetBrains уже изучали возможность машинного обучения для автоматического дополнения кода, и результаты этих исследований найдут отражение в конечном продукте. В настоящее время IntelliJ использует машинное обучение для улучшения предлагаемых вариантов заполнения, а плагины языка присваивают каждому из вариантов дополнения различные атрибуты. Машинное обучение используется в IntelliJ, чтобы определять, какие атрибуты улучшают ранжирование элементов, и выдавать в верхней части списка наиболее релевантные элементы.

Помимо дополнения кода на основе машинного обучения JetBrains внесет в 2020 году в IntellIj множество других улучшений.

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

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

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

— Упрощение установки и настройки конфигурации. Система сама позаботится об установке Git, Java Development Kit и т.д.

— Более глубокая интеграция с облаком.

— Переработанная модель проекта для устранения существующих ограничений, к которым относится, к примеру, произвольное смешение проектов различных типов. Среди положительных моментов можно отметить ускорение открытия проекта и улучшение синхронизации с Maven и Gradle.

— Улучшение производительности индексирования и снижение отрицательных последствий индексирования. Пользователи будут получать уведомление об аномалиях индексирования.

— Редизайн модели блокировки потоков чтения/записи с целью предотвращения затормаживания пользовательского интерфейса.

— Улучшение рефакторинга в процессе автоматического обнаружения недостатков. Один из примеров – добавление возможности определения изменений в объявлении метода и соответствующая корректировка его применения.

— Поддержка загрузки и выгрузки большинства плагинов без перезапуска. Цель заключается в том, чтобы получить среду разработки, идеально соответствующую каждому из проектов. Проекты Spring, к примеру, будут загружаться только в случае использования плагинов Spring.

— Расширение возможностей Code Vision при отображении контекстной информации в редакторе кода. Эта возможность уже реализована в JetBrains Rider IDE for .NET.

— Локализация сред разработки на основе IntelliJ на азиатских рынках с изначальной поддержкой китайского языка, а также с поддержкой корейского и японского языков.