Что нового в GoLand 2024.1

В GoLand 2024.1 появилось несколько важных новых функций.

  • Реализовано автодополнение кода для целых строк: каждый пользователь GoLand может бесплатно воспользоваться функцией автодополнения, работающей локально и использующей ИИ на базе большой языковой модели.
  • Значительно увеличена скорость индексирования и подсветки.
  • Мы отладили AI Assistant и реализовали обновления для него, включая дополнительные параметры автодополнения кода и создания документации.
  • Завершена программа раннего доступа для поддержки контейнеров среды разработки (Dev Containers). В новой версии пользователям стали доступны несколько важных новых функций.
  • Добавлена поддержка обновленных возможностей Go 1.22.

Кроме того, в новой версии добавлено много улучшений интерфейса и внутренних инструментов. Поехали!

Автодополнение кода для целых строк

В GoLand 2024.1 появилась новая функция автодополнения для целых строк кода на основе локальных моделей глубокого обучения, учитывающих контекст. Эта функция помогает писать код быстрее и эффективнее и при этом работает исключительно на вашем устройстве, не отправляя данные ни на какие серверы. Она встроена в GoLand 2024.1 и доступна всем пользователям IDE. Это лучший способ попробовать работу с ИИ на практике! Заинтересовались? Читайте подробнее в нашем блоге!

В меню Settings | Editor | General | Code Completion | Machine Learning-Assisted Completion можно настроить эту функцию и выбрать языки, для которых вы хотите получать варианты автодополнения целых строк.

Оптимизация производительности

Повышенная скорость индексирования

Теперь индексирование в GoLand стало значительно быстрее. По нашим оценкам, скорость выросла в среднем примерно на 30%. Разумеется, результаты будут разными у разных пользователей в зависимости от специфики проекта и аппаратного оборудования. Поделитесь с нами своими результатами! Здесь приведен пример индексации с использованием фреймворка Gin.

Расширенная подсветка при индексировании

Это улучшение обеспечивает подсветку ссылок сразу после запуска IDE. Лучше один раз увидеть, чем сто раз услышать, поэтому мы подготовили для вас два примера.

AI Assistant

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

Автодополнение кода структур и интерфейсов на основе облачных сервисов

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

Генерация документации для полей структур и методов интерфейсов

Новая версия GoLand может генерировать документацию для целых типов, методов интерфейса и полей структур. Чтобы создать документацию, поместите курсор в любое место определения поля и выберите в меню AI Actions действие Write documentation. Можно также ввести // перед определением поля, чтобы посмотреть варианты.

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

Начиная с версии 2024.1, пользователь может экспортировать файл со сниппетами, сгенерированными чат-ботом. Кроме того, задавая вопросы чат-боту, можно приложить файлы для уточнения контекста.

Удаленная разработка

В версии 2024.1 разработчикам будет удобнее заниматься удаленной разработкой: подсветка, рендеринг и общая эффективность теперь практически не отличаются от локального программирования. Вы можете сами убедиться, что подсветка и автодополнение работают практически так же быстро, как и на локальной кодовой базе.

Более того, пользователи могут управлять удаленными проектами, создавать новые или открывать существующие прямо из клиента IDE.

Dev Containers

В новой версии запустить контейнер среды разработки (с локального диска или из VCS) можно прямо на начальном экране. Раньше для этого нужно было сначала открыть проект.

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

Добавлены настройки, позволяющие пользователям сконфигурировать бэкенд-JetBrains IDE (например GoLand или CLion) прямо в файле devcontainer.json.

GoLand версии 2024.1 распознает файлы devcontainer.json, где бы в проекте они ни хранились. Раньше их нужно было обязательно хранить в папке ~/.devcontainer.

Поддержка функциональности Go 1.22

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

Поддержка range для целочисленных переменных и функций

В Go 1.22 появилась возможность удобной итерации целочисленных переменных и функций — гораздо более компактной, чем при использовании классического цикла for.

Поддержка вендоринга для рабочих пространств Go

Вендоринг расширяет возможности контроля зависимостей в проекте, поскольку их теперь можно хранить в репозитории проекта. В Go 1.22 команды в рабочем пространстве могут использовать директорию vendor, где находятся зависимости рабочего пространства. Новая версия GoLand поддерживает это улучшение.

Обновление анализа потоков данных (DFA)

Анализ потоков данных появился в GoLand 2023.3, а в версии 2024.1 эта функция была доработана и теперь включена по умолчанию. DFA в GoLand в настоящее время поддерживает три инспекции: Constant conditions detection, Potential nil dereference и Error may be not nil. Подробнее об этих улучшениях — в нашем блоге.

Расширенная поддержка Terraform

Мы существенно улучшили поддержку Terraform — инструмента для разработки инфраструктуры как кода. Новые возможности предназначены для разработчиков, специалистов по обеспечению надежности инфраструктуры и DevOps-специалистов. В это обновление входят несколько новых функций и улучшений, которые упрощают создание и масштабирование инфраструктуры, а также управление ею.

Предложение выполнить terraform init

Чтобы инициализировать рабочую директорию, используя файлы кода Terraform, необходимо сначала выполнить команду terraform init. Об этом часто забывают, в итоге Terraform выдает ошибку, возможности автодополнения кода оказываются ограничены, а документация отображается лишь частично. Чтобы избежать этих проблем, новая версия IDE явно предлагает выполнить инициализацию terraform init.

Поддержка сторонних поставщиков из реестра Terraform Registry

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

Это позволяет быстрее находить новых поставщиков Terraform и узнавать об их возможностях, не выходя из IDE.

Поддержка языка шаблонов Terraform (tftpl)

Мы рады представить поддержку языка шаблонов Terraform (tftpl), который упростит создание необходимых для работы файлов конфигурации, скриптов или любого программного кода, например конфигураций веб-серверов, сетей или сервисов. Создавать шаблоны стало еще проще! Теперь можно динамически подставлять в шаблоны значениям во время выполнения, упростив процесс рендеринга шаблонов для конкретных случаев использования.

Язык шаблонов Terraform не просто поддерживает создание шаблонов переменных и элементы потока управления, но и включает в себя списки, сопоставления, а также возможность генерации кода в формате JSON и YAML.

Интерфейс и другие возможности

Новый терминал

В GoLand 2024.1 был заметно доработан терминал: улучшен как его внешний вид, так и функционал, чтобы работать с ним было проще и удобнее. Терминал предлагает удобный доступ к истории и простую навигацию между блоками, а также советы по каждой доступной команде.

Новое окно Terminal полностью интегрировано в новый интерфейс и оформлено в соответствии с обновленным внешним видом IDE. В нем доступны возможности автодополнения для команд, путей, аргументов и параметров. Подробнее читайте в нашем блоге.

Уменьшение масштаба IDE

GoLand 2024.1 позволяет одновременно уменьшить размер всех элементов интерфейса IDE. Первоначально масштаб можно было только увеличивать от 100% до 200%. В новой версии размер элементов интерфейса IDE можно уменьшить до 90%, 80% или 70%.

Липкие строки в редакторе

Для упрощения работы с большими файлами и исследования новых кодовых баз мы добавили липкие строки в редакторе. Эта функция позволяет закрепить в верхней части окна редактора основные структурные элементы, например начала классов или методов, чтобы они были постоянно видны во время прокрутки кода. Благодаря этому основные области будут постоянно на виду, и для быстрой навигации достаточно просто кликнуть по закрепленной строке.

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

Ревью кода в редакторе

Новая версия GoLand предлагает пользователям GitHub и GitLab более простой и гибкий процесс ревью кода. Благодаря новому режиму ревью авторам и ревьюерам стало удобнее взаимодействовать прямо в редакторе. Подробнее.

Статусы CI-проверок в окне Git

Мы добавили новый столбец на вкладке Log окна Git, чтобы было удобно узнать результаты проверок коммитов в GitHub, выполненных CI-системой. Просто нажмите на вкладку, чтобы посмотреть полную информацию о CI-проверках.

Визуальные результаты обновлений кода GitHub, ожидающих одобрения

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

Улучшения, касающиеся веб-разработки и баз данных

Часть изменений в GoLand пришла из IDE WebStorm и DataGrip. Вас интересуют обновления и функции, связанные с веб-разработкой или работой с базами данных? Обязательно туда загляните!