Компания JetBrains выпустила крупное обновление для своей IDE для языка Go под названием GoLand 2021.2. Свежий релиз упрощает работу с модулями Go и расширяет возможности форматирования.
Изменения в модулях Go
В GoLand 2021.2 встроена функция контроля исполнения команды go list, а также возможность самостоятельно загружать изменения файлов go.mod. При использовании в проекте функций более новой версии Go относительно указанной в go.mod, IDE укажет на ошибку. Быстро сменить версию языка можно для числовых литералов и //go:embed.
Если в директивах replace присутствуют неиспользуемые зависимости, они будут выделены в редакторе серым цветом, что поможет отличить их ошибок. При наведении курсора на такую строчку появится уведомление «Unused dependency». Сочетанием клавиш Alt+Enter можно загрузить неиспользуемые зависимости.
Опция Go на начальном экране стала опцией по умолчанию для проектов, использующих Go modules. Решения, для которых задействован GOPATH, переименованы в Go (GOPATH).
Форматирование и исправления
В GoLand 2021.2 добавлена опция Run gofmt on code reformat, предназначенная для использования gofmt параллельно со встроенным форматером редактора. Сочетание клавиш Ctrl+Alt+L запустит этот инструментарий. В будущем компания обещает продолжать дорабатывать gofmt.
В новом релизе программы внедрена поддержка нескольких быстрых исправлений, которые позволят корректно применять старый синтаксис ограничений сборки // +build и новый синтаксис //go:build. Первая функция переносит объявление //go:build в начало файла, чтобы он соответствовал актуальным правилам. Чтобы использовать возможность Go 1.16 работать одновременно и со старым, и с новым синтаксисом, добавлено быстрое исправление, генерирующее объявление // +build в дополнение к //go:build.
При импорте пакета «С» без активации поддержки cgo в настройках GoLand предложит автоматически устранить эту ошибку. Функция Navigate to cgo import переместит курсор в начало названия пакета, чтобы можно было быстро отыскать команду импорта в крупном проекте.
Другие нововведения
GoLand 2021.2 теперь полностью поддерживает последнюю версию языка Go 1.17. К примеру, появилась возможность преобразовывать срез в указатель на массив без появления сообщений об ошибке. Чтобы включить эту опцию, необходимо изменить параметр GOROOT на «Go 1.17beta1» или «Go 1.17rc1» в настройках языка.
Улучшена интеграция с системами контроля версий. Новая версия редактора поддерживает верификацию коммитов при помощи GPG-ключей. При первом использовании необходимо настроить ключ. Добавлено больше проверок перед внесением изменений, которые позволяют протестировать и проанализировать код.
Доработана быстрая навигация. Функция Navigate to implementations теперь работает и с реализациями интерфейсов из папки internal. Для перехода к реализации достаточно нажать соответствующий значок в редакторе.