В GoLand 2023.2 улучшена интеграция с Go-модулями, добавлены рефакторинги для миграции параметров функций в ресиверы методов и наоборот, а также поддержка errors.Is
и errors.As
.
Кроме того, в этой версии вас ждет новый плагин AI Assistant, интеграция с GitLab и плагин для работы с Kafka.
Кроме того, мы усовершенствовали интеграцию с Docker и плагин Kubernetes.
Если вы предпочитаете узнавать о новой функциональности в интерактивной форме, пройдите урок What's New in GoLand 2023.2 на начальном экране в разделе Learn.
В GoLand появилась возможность автоматической загрузки Go-модулей при открытии проекта и после любого изменения файла go.mod
. Эта опция включена по умолчанию, но ее можно в любой момент отключить в разделе Settings | Go | Go Modules.
go.mod
Мы добавили несколько intention-действий и инспекций, чтобы ускорить обновление зависимостей в файлах go.mod
.
Теперь при открытии файла go.mod
GoLand подсвечивает устаревшие зависимости. Вы можете навести курсор на подсвеченные версии пакета и применить быстрое исправление для его обновления. Также можно обновить все зависимости до последних патчей или основных версий, причем есть возможность обновить только прямые зависимости.
Теперь можно отключить вендоринг для каждого проекта по отдельности, например, когда у вас есть монорепозиторий, содержащий папку vendor, используемую другим языком. Отключить вендоринг можно при создании нового проекта или в любое другое время в разделе Settings | Go | Go Modules.
GoLand предлагает два новых рефакторинга: Migrate function parameter to method receiver и Migrate method receiver to function parameter.
Рефакторинг Migrate function parameter to method receiver позволяет преобразовать функцию в метод типа, а Migrate method receiver to function parameter делает обратное — преобразует метод типа в функцию.
errors.Is
и errors.As
Две новые инспекции указывают на случаи, когда следует использовать errors.Is
или errors.As
. Новые быстрые исправления помогут выполнить рефакторинг существующего кода под использование errors.Is
или errors.As
.
Первая инспекция подсвечивает прямые сравнения ошибок. В Go 1.13 и более поздних версиях ошибки могут быть обернуты в функцию fmt.Errorf
с глаголом %w
, и прямое сравнение ошибок с помощью проверки на равенство в таких случаях может оказаться неудачным.
Предпочтительным способом проверки на конкретную ошибку является использование функции errors.Is
из стандартной библиотеки. В GoLand теперь есть быстрое исправление, предлагающее преобразовать прямое сравнение ошибок в использование errors.Is
.
Вторая инспекция подсвечивает утверждения типов и переключатели типов при ошибках, например err.(*MyErr)
или switch err.(type)
, поскольку они тоже могут не работать при обернутых ошибках.
В Go 1.13 и более поздних версиях предпочтительнее использовать errors.As
. Новое быстрое исправление предлагает преобразовать утверждения типов и переключатели типов при ошибках в использование errors.As
.
min
, max
и clear
min
, max
и clear
— новых функций, появившихся в Go 1.21. make
make
Мы добавили автодополнение с учетом типов для вызовов функции make
.
make
GoLand теперь находит ошибки и избыточные аргументы в функциях make
. Для удаления лишних аргументов есть быстрое исправление, перейти к которому можно, как и всегда, нажав Alt+Enter.
При вызове метода непосредственно на типе в качестве первого аргумента необходимо указать тип-ресивер. В этих случаях GoLand теперь показывает ресивер в качестве первого параметра в предлагаемых вариантах автодополнения.
Сообщение об ошибке, связанной с отсутствием аргументов в инстанцировании типа, теперь четко дает понять, что именно не так.
Мы добавили превью действия Wrap error handling in a closure. Превью можно отключить, нажав Ctrl+Q, когда открыт список intention-действий, и оно будет отключено до тех пор, пока вы вновь не включите его с помощью того же сочетания клавиш.
for
Теперь GoLand показывает предупреждение о наличии избыточных условий в циклах for
. Удалить лишнее условие можно с помощью быстрого исправления.
В этой версии мы представляем важное дополнение к GoLand — AI Assistant. Текущий набор функций AI Assistant включает в себя чат-бота на основе искусственного интеллекта, автоматическое создание документирующих комментариев, предложение имен, генерацию сообщений коммитов и многое другое.
AI Assistant работает на базе сервиса JetBrains AI, который сейчас подключается к OpenAI, а в будущем будет интегрирован с другими языковыми моделями. Для доступа к функциям ассистента нужно установить плагин JetBrains AI и войти в сервис JetBrains AI, используя свой JetBrains-аккаунт. На начальном этапе доступ к сервису может быть ограничен. Подробнее об AI Assistant и о том, как получить к нему доступ, читайте в документации.
В окне Services теперь можно посмотреть превью содержимого слоев Docker-образов. Выберите образ из списка, нажмите Show layers, а затем Analyze image for more information. Вы увидите список файлов, хранящихся в слое, из которого можно легко открыть выбранный файл в редакторе, кликнув по нему правой кнопкой мыши и выбрав Open File (или Download File для исполняемых файлов).
Теперь можно запускать конфигурацию запуска Docker перед другой конфигурацией, обозначив ее как Before Launch. IDE не будет инициировать следующую конфигурацию запуска, пока текущий контейнер не достигнет состояния готовности. Чтобы поставить конфигурацию запуска Docker в очередь, сначала создайте ее, а затем добавьте в соответствующий контейнер в разделе Modify options | Add before launch task | Run configuration.
В GoLand появилась возможность использовать несколько файлов kubeconfig в одном проекте. Это упрощает работу с несколькими кластерами или средами на разных кластерах в рамках одного проекта. Для настройки файлов перейдите в раздел File | Settings | Build, Execution, Deployment | Kubernetes.
Теперь в окне Services можно просматривать журналы развертывания в кластерах Kubernetes. Кликните правой кнопкой мыши по Deployment в дереве, а затем выберите Follow Log или Download Log в контекстном меню.
В GoLand теперь можно включать в коммит только определенные фрагменты кода. Для этого выберите нужные строки внутри блока кода и вызовите действие Include these lines into commit из контекстного меню. Блок будет разделен на отдельные строки, а выбранные строки будут подсвечены. Используйте флажки или контекстное меню, чтобы добавить или снять выделение со строки.
В GoLand 2023.2 появилась интеграция с GitLab для оптимизации вашего рабочего процесса. Теперь можно пользоваться функцией Merge Request прямо из IDE: просматривать список реквестов, проверять изменения, оставлять комментарии и переходить к соответствующим представлениям.
Новый Kafka-плагин позволяет контролировать процессы потоковой передачи событий Kafka. Вы можете подключаться к кластеру Kafka, производить и потреблять сообщения в разных форматах, управлять темами и отслеживать группы потребителей, а также использовать Confluent Schema Registry и AWS Glue Schema Registry. Подробнее
Если вы привыкли к конфигурации сочетаний клавиш VS Code, теперь ее можно выбрать в разделе Customize на начальном экране IDE. Конфигурацию сочетаний клавиш также можно поменять в разделе Settings | Keymap.
В GoLand 2023.2 появилось долгожданное упорядочивание файлов по времени изменения. Пересортировка файлов происходит автоматически при сохранении изменений в проекте. Чтобы включить эту функцию, нажмите на три точки на панели Project и выберите Tree Appearance | Sort by Modification Time.
Чтобы вам было проще управлять несколькими конфигурациями запуска, наиболее часто используемые теперь можно закреплять в виджете Run. Чтобы закрепить конфигурацию, нажмите на три точки рядом с ее названием и в открывшемся меню выберите Pin. Если вы хотите изменить порядок закрепленных конфигураций, просто перетащите их вверх или вниз по списку.
Мы расширили возможности кастомизации главной панели инструментов в новом интерфейсе. Теперь в выпадающем меню можно быстро выбрать действия, которые вы хотите добавить на панель. Для этого кликните правой кнопкой мыши по любому виджету и выберите опцию Add to Main Toolbar, чтобы увидеть доступные варианты.
В новом интерфейсе изменился дизайн меню на главной панели инструментов для Windows и Linux. Теперь элементы меню отображаются по горизонтали на панели инструментов. Кроме того, это меню можно превратить в отдельную панель с помощью опции View | Appearance | Main menu as a Separate Toolbar.
Новая опция Open Directories with Single Click позволяет быстрее разворачивать и сворачивать папки проектов на панели Project. Вы найдете ее в выпадающем меню, если нажмете на три точки.
Функция Search Everywhere (двойное нажатие Shift) в основном используется для поиска файлов, методов, действий и настроек. Теперь же она включает в себя текстовый поиск, аналогичный Find in Files. Результаты текстового поиска отображаются в тех случаях, когда по заданному запросу мало или вообще нет других результатов. По умолчанию текстовый поиск включен, но вы можете изменить настройки в разделе Settings | Advanced Settings.
В разделе Settings | Editor | Inspections теперь работает подсветка синтаксиса в примерах кода. Так проще понять, что активирует инспекцию, и решить, нужна она вам или нет.
Чтобы вам было проще настраивать GoLand под ваши проекты и расширять функциональность IDE при помощи плагинов, мы переработали интерфейс раздела Settings | Plugins. Теперь вы найдете там список рекомендуемых плагинов, составленный с учетом особенностей вашего проекта.
В GoLand 2023.2 заголовки проектов стали цветными. Это упрощает навигацию, когда открыто несколько проектов. Каждому проекту можно присвоить уникальный цвет и значок, чтобы вам было проще различать их во время работы.
Цвета заголовков определены заранее, но вы можете настроить их, как вам нравится. Чтобы задать цвет для проекта, кликните правой кнопкой мыши по заголовку окна, зайдите в контекстное меню, а затем выберите опцию Change Toolbar Color и укажите желаемый цвет. Чтобы отключить эту функцию, просто снимите флажок с опции Show Project Gradient в контекстном меню.
Мы усовершенствовали светлую тему, добавив альтернативный вариант Light with Light Header. В нем заголовки окон, всплывающие подсказки и уведомления тоже светлые.
Мы переработали интерфейс для действий запуска и отладки в окне Services, чтобы привести внешний вид этой панели инструментов в соответствие виджету Run/Debug на главной панели IDE.
Для удобства пользователей Linux мы убрали из нового интерфейса нативный заголовок операционной системы, уменьшив таким образом визуальный шум. Теперь по умолчанию вы видите только заголовок окна IDE, который можете настроить, как вам нравится.
HTTP-клиент теперь понимает спецификации Swagger и OpenAPI и предоставляет подходящие варианты автодополнения для JSON-запросов.
Появилась возможность совместного использования общего JavaScript-кода для обработчиков запросов HTTP-клиента через импортируемые модули.
GoLand теперь показывает превью PDF- и HTML-файлов прямо в результатах запроса в HTTP-клиенте.
Теперь в HTTP-клиенте можно отправлять gRPC-запросы с использованием протокола Transport Layer Security (TLS). Он обеспечивает шифрование и аутентификацию, гарантируя конфиденциальность и целостность передаваемых данных. В синтаксисе запроса поддерживаются схемы https://
и grpcs://
.
Благодаря новому форматированию информацию об ошибках и предупреждениях проще читать, а значит легче находить проблемы в коде. Новым способом отображаются все ошибки в TypeScript-коде и наиболее распространенные в JavaScript.
GoLand теперь поддерживает модуль вложенности CSS. Мы добавили поддержку синтаксиса и инспекцию для проверки того, что вложенный селектор не начинается с идентификатора или функциональной нотации.
В GoLand появилась новая инспекция для устранения так называемой проблемы с Норвегией и предотвращения непреднамеренной ошибочной интерпретации логических значений в YAML-файлах.
Если список состоит в основном из строк, но содержит литерал, похожий на логическое значение, GoLand подсветит такой литерал, указывая на потенциальное несоответствие, и предложит добавить к нему кавычки. Если же список состоит в основном из литералов, подобных логическим (таких как true, false, off, on, yes и no), то любой литерал, отклоняющийся от этого шаблона, будет подсвечен как возможная ошибка, но никаких быстрых исправлений в этом сценарии не предлагается.
Настраивать конфигурации Swagger Codegen стало удобнее. Мы переработали диалог Edit Swagger Codegen Configuration, чтобы вам было проще настраивать конфигурации запуска под ваши потребности.
Кроме того, теперь можно перейти к конфигурации запуска Swagger Codegen прямо с поля редактора без каких-либо дополнительных настроек.
GoLand теперь поддерживает превью Redoc UI для файлов спецификаций OpenAPI и Swagger, включая файлы YAML и JSON, и можно переключаться между интерфейсами Redoc и Swagger внутри IDE. Благодаря интеграции с Redocly у вас есть доступ к консоли Try it прямо из GoLand, и вы можете использовать ее для установки параметров и отправки запросов к API.
Работать с форматом спецификации AsyncAPI стало удобнее. IDE поддерживает проверку схем и предоставляет автодополнение ссылок, окно Endpoints и панель Editor Preview.
В этой версии мы добавили API, предназначенный для разработчиков плагинов, которые хотят использовать определенный LSP-сервер, чтобы получать помощь в написании кода в IDE. Если вы создали свой собственный язык программирования или фреймворк, для его поддержки в IDE можно написать LSP-сервер и плагин.