В 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).
Мы предлагаем обновленный подход к проверке изменений в коде. Вам больше не нужно просматривать файлы по одному: все измененные файлы из выборки отображаются в едином фрейме с возможностью прокрутки. Подробнее