В GoLand 2023.3 появилось несколько важных новых функций.
return
и panic
и другого кода. slice
, анализ кода для функций типа printf
, улучшения отладчика. Кроме того, в GoLand 2023.3 улучшена интеграция с Docker и Kubernetes, работа с системами контроля версий, также сделаны улучшения в области веб-разработки. А теперь подробнее!
Обновления включают в себя улучшенную генерацию кода прямо в редакторе, контекстный чат-бот, который может ответить на запросы по проекту, не требуя копировать код, а также действия на основе ИИ, учитывающие расширенный контекст проекта для более точных результатов. Благодаря новому инструменту поиска различий стало проще находить изменения, внесенные в код с помощью действий на основе ИИ.
Чтобы использовать AI Assistant как дополнительную функцию GoLand, вам потребуется подписка JetBrains AI Service.
Придумывать имена бывает сложно, но вам поможет AI Assistant в GoLand: он предложит удобные имена функций, чтобы улучшить читаемость кода.
Создание документации — довольно занудное, но необходимое дело. С помощью действия Write documentation вы сможете задокументировать свой код всего за пару кликов.
AI Assistant поможет создать тесты для конкретных функций или методов, а после создания исходного тестового класса предложит добавить другие тест-кейсы.
Это быстрое исправление позволяет ввести имя несуществующей функции и сгенерировать ее реализацию в выбранном пакете.
В версии 2023.3 добавлена первая часть долгожданного рефакторинга Extract Parameter. Быстрое исправление Create Parameter для неразрешенных ссылок позволяет быстро найти такие ссылки и создать нужный параметр. Кроме того, с помощью этого же рефакторинга можно изменить тип параметра, если он указан недостаточно точно, указать значение по умолчанию и изменить вызовы, используя значения по умолчанию.
Новая версия GoLand поддерживает полноценное использование Dev Containers в качестве среды разработки, где можно редактировать, собирать и запускать проекты. Dev Containers можно запустить удаленно через SSH-соединение или локально с помощью Docker.
В GoLand 2023.3 добавлена поддержка Dev Container Features. Благодаря этому вы получаете удобный и быстрый способ интеграции инструментов, сред выполнения и библиотек, необходимых для работы.
Мы также добавили поддержку Docker Compose в Dev Containers, так что теперь можно прямо из IDE запустить как основной, так и любые зависимые контейнеры, которые нужны в процессе разработки: например, контейнеры с базами данных или очередями сообщений.
return
и panic
Для однострочных return
и panic
теперь можно использовать новый компактный стиль сворачивания кода, который гораздо больше похож на исходный код.
Новый синтаксис сворачивания включен по умолчанию.
Аналогичный подход мы используем и для блоков case
: стрелка вверх удаляется, сворачивается только двойное двоеточие.
return
Точно так же, как было сделано для однострочных return
и panics
, устроено сворачивание для функций с одиночным оператором return
.
Чтобы улучшить читаемость кода обработки ошибок, GoLand автоматически сворачивает в нем блоки if
.
Кроме того, для блоков if
в коде обработки ошибок GoLand сворачивает также все одиночные выражения, например, с вызовами журналов.
string
Мы отключили сворачивание кода для форматирования string
, чтобы соответствующий синтаксис был лучше виден. Более того, новый подход к сворачиванию кода позволяет редактировать блоки кода, не разворачивая их.
switch
для перечислений enum Новая версия GoLand может помочь в написании выражений switch
для перечислений enum. Во всплывающем окне автодополнения появляются варианты генерации кейсов для всех значений.
iota
Инспекция помогает отслеживать выражения switch
для констант iota
. Она предупреждает о кейсах, не покрытых оператором switch
, и предлагает два решения: добавить отсутствующие условия или условие по умолчанию.
С помощью этой функции можно увидеть, какой код был исполнен за один или несколько запусков. Кроме того, она помогает найти «мертвый» код.
Раньше она работала только с тестовыми запусками, но теперь функцию main
тоже можно выполнить с использованием Coverage.
slice
Выражения slice
, особенно если у них три индекса, бывает сложно понять. Новая версия GoLand будет показывать вам подсказки, когда вы создаете slice.
printf
GoLand предлагает много полезных возможностей для стандартных функций типа printf
: подсветка плейсхолдеров, обнаружение ошибок, сворачивание кода и т. п. Теперь все эти возможности доступны и для функций типа printf
, определенных пользователем.
В GoLand 2023.3 появился улучшенный анализатор потоков данных, использующий тот же движок, что и в CLion. Эта функция более полно находит проблемы в коде, например потенциальные разыменования nil
, неверную или отсутствующую обработку ошибок, а также условия, которые всегда выдают одно значение true/false
.
Обратите внимание, что эта возможность пока что доступна в режиме раннего доступа и по умолчанию отключена. Ее можно включить в меню Settings | Editor | Inspections | Go | Data Flow Analysis (experimental). Ждем ваших отзывов!
asdf — инструмент командной строки, с помощью которого можно управлять несколькими версиями среды выполнения языка. Изучив отзывы членов сообщества, мы решили включить в новую версию поддержку asdf. В новом релизе GoLand будет проверять, какая версия Go указана в файле .tool-versions
, и использовать соответствующую версию языка для выбранного проекта.
В Go 1.21 и более поздних версиях языка приняты более надежные меры для предотвращения ошибочной компиляции кода, требующего более новой версии Go. В частности, строка go
в go.mod
теперь указывает минимально необходимую версию Go toolchain, в то время как в прошлых релизах это была необязательная рекомендация.
Новая версия GoLand полностью поддерживает этот рабочий процесс и автоматически скачивает версию SDK, указанную в файле go.mod
в строке go
или toolchain
. Кроме того, указанная версия автоматически указывается в настройках проекта Go.
GoLand 2023.3 мигрировала на современный API платформы IntelliJ, поэтому go list -m
не выполняется второй раз, если проект содержит директории vendor. Более эффективное использование кэширования улучшает производительность проектов, в которых много модулей Go.
Новый встроенный параметр Run to Cursor позволяет в ходе отладки выполнить код до определенной строки. После приостановки выполнения программы наведите курсор мыши на строку, до которой нужно выполнить код. Затем откройте всплывающее окно Run to Cursor и выполняйте код до строки, где находится курсор.
Мы расширяем интеграцию с GitLab и добавили поддержку сниппетов GitLab. Теперь разработчик может создавать как общедоступные, так и закрытые сниппеты прямо в IDE.
Теперь разработчику легко добавить контекст kubeconfig
из кластеров, расположенных вне требуемой системы. Проект будет содержать ссылки на файлы kubeconfig
, обеспечивая доступ к нужным кластерам в ходе работы над проектом. Добавленное таким образом содержимое kubeconfig
не будет скопировано в систему или изменено в ней (~/.kube/config
). Эта функция особенно удобна, если вы часто добавляете кластеры Kubernetes и удаляете из облака или локальной среды. Подробнее
Для работы с плагином Kubernetes вам может потребоваться установить kubectl или Helm. Если на вашем компьютере еще нет этих инструментов, IDE предложит установить их автоматически.
Telepresence позволяет локально выполнять отладку микросервисов выполняемых в Kubernetes, как если бы ваш компьютер был частью кластера. В этой версии мы упростили доступ к Telepresence, переместив его в контекстное меню кластера. Мы также упростили управление перехватом, чтобы процесс отладки стал удобнее.
import
в Terraform GoLand поддерживает блоки import
верхнего уровня из языка описания конфигурации Terraform версии 1.5. Блоки import
позволяют управлять имеющейся инфраструктурой с помощью Terraform. Если использовать import
используется в блоке кода, тот становится частью стандартных циклов plan и apply и перестает быть операцией состояния. Terraform автоматически генерирует код для импортированных ресурсов, экономя время при создании инфраструктуры как кода.
В GoLand устранен ряд нарушений правил при добавлении инструкций import type
. Мы добавили возможность настроить использование инструкций TypeScript import type или спецификатора типа при импорте типа. Кроме того, улучшено поведение поля exports
в package.json для файлов TypeScript.
Мы доработали представление Structure, чтобы упростить навигацию по большим .http
файлам. Также в новой версии появились цветные метки для типов запросов, а их содержимое отображается более понятным образом. Кроме того, мы добавили поддержку объявления переменных с помощью @
и аутентификацию с использованием типов предоставления доступа Password и Client Credentials в OAuth 2.0.
GoLand автоматически найдет тесты Cypress и Playwright и поможет вам одним щелчком выполнить их запуск и отладку. Кроме того, поддержка включает в себя возможность проанализировать результаты и найти ошибки с помощью навигации по дереву тестов (Test Tree).
Мы предлагаем обновленный подход к проверке изменений в коде. Вам больше не нужно просматривать файлы по одному: все измененные файлы из выборки отображаются в едином фрейме с возможностью прокрутки. Подробнее