В GoLand 2022.2 вы найдете новую функциональность для дженериков и go.work
. Мы также добавили поддержку фаззинг-тестирования.
Команды SQL теперь распознаются автоматически, и вы получаете помощь IDE при работе с ними.
GoLand теперь поддерживает соединения WebSocket и может отправлять запросы GraphQL по протоколам HTTP и WebSocket.
Если вы предпочитаете узнавать о новой функциональности в интерактивной форме, пройдите урок What's New in GoLand 2022.2 на начальном экране в разделе Learn.
any
В GoLand теперь есть инспекция, которая сообщает об использовании пустого интерфейса в качестве типа или ограничения типа.
Также мы добавили действие, которое заменяет interface{}
на any
. Вы можете заменить все пустые интерфейсы в файле, выбрав соответствующую строку во всплывающем окне.
Параметры типа с пустыми списками параметров теперь отображаются как ошибки. Мы добавили быстрое исправление для их удаления.
Мы добавили новую инспекцию, которая сообщает о неиспользуемых параметрах типа. Они выделены серым цветом, и при наведении на них курсора вы увидите предупреждение.
IDE теперь сообщает об ошибке, если вы пытаетесь использовать интерфейсы с методами в объединениях.
Если вы попытаетесь использовать параметр типа в качестве ограничения, GoLand отобразит ошибку.
GoLand автоматически добавляет идентификатор параметра типа, когда вы указываете получателя при создании метода.
Мы добавили в Find Usages новую группу для дженериков: Type parameter declaration.
Теперь вы можете запускать фаззинг-тесты из GoLand. Если вы нажмете на зеленый треугольник в поле рядом с тестом, вы увидите различные варианты запуска. Если тест не пройден, последовательность символов из корпуса входных данных, которая обрушила программу, записывается в файл и помещается в папку testdata
в директории пакета.
Ссылка на этот файл появится в консоли. При нажатии на нее файл откроется в IDE, и вы увидите зеленый треугольник в поле вверху файла. Нажмите на него, и GoLand запустит команду go test
с последовательностью символов, которая обрушила программу.
Также из GoLand можно запускать фаззинг-тесты как обычные юнит-тесты.
Если для проекта с фаззинг-тестами вы выбрали Go SDK, который не поддерживает фаззинг, кнопка запуска не будет отображаться. Мы также добавили быстрое исправление для изменения SDK, если текущий SDK не поддерживает фаззинг-тестирование.
use
Мы добавили быстрое исправление для объединения нескольких директив use
в файле go.work
в одну директиву.
fmt.Appendf
Мы добавили поддержку fmt.Appendf
. GoLand распознает глаголы форматирования внутри строк, и функция Appendf
получает такую же функциональность, как и другие форматирующие функции — например, действие Add a format string argument.
unix
GoLand поддерживает новый тег сборки unix
, который соответствует Unix и Unix-подобным операционным системам.
loong64
в список Arch В Go 1.19 появится новая архитектура – loong64
. Мы добавили loong64
в список Arch в Settings | Go | Build Tags & Vendoring.
Мы улучшили функциональность Quick Documentation:
chan
, на операции получения или отправления и на любые ссылки на типы каналов. iota
теперь содержит дополнительную информацию о том, как пользоваться iota
. Если константа является частью группы iota
, значение константы отображается в вариантах автодополнения, даже если константа объявлена неявно. GoLand больше не сканирует папку cache
в ~/go/pkg/mod
, так как она не содержит информации, необходимой для правильной работы IDE. Эта папка может быть довольно большой, и ее исключение из процесса сканирования должно улучшить производительность.
go:linkname
Мы добавили поддержку директивы go:linkname
:
//go:linkname localname [importpath.name]
Эта директива сообщает компилятору, что importpath.name
необходимо использовать как имя символа объектного модуля для переменной или функции, объявленной в качестве localname
в исходном коде.
iota
В GoLand появилась новая инспекция, которая предупреждает о нестандартном использовании iota
.
Мы также включили инспекцию Reserved word used as name для iota
и других встроенных констант. Инспекция сработает, если вы попытаетесь присвоить значение константе с именем iota
, true
или false
.
Согласно документации Go, все методы типа должны быть объявлены либо на получателе значения, либо на получателе указателя.
В GoLand есть новая инспекция, которая обнаруживает случаи, когда у типа есть методы и на получателе значения, и на получателе указателя.
Инструкции SQL теперь автоматически распознаются в строковых литералах, которые соответствуют определенным шаблонам. В результате вы получаете помощь IDE при редактировании таких литералов.
Вы можете найти уже готовые шаблоны, редактировать их и добавлять свои шаблоны в Settings | Editor | Language Injections.
GoLand теперь поддерживает действие Run Anything, которое позволяет быстро запускать конфигурации запуска/отладки, приложения, скрипты, команды, а также открывать недавние проекты. Чтобы использовать Run Anything, нажмите Ctrl дважды и начните печатать в поисковой строке.
GoLand теперь поддерживает конечные точки WebSocket. Вы можете выполнять запросы, а также отправлять и получать сообщения.
Теперь в GoLand можно отправлять запросы по протоколам HTTP и WebSocket — возможность доступна из коробки. Для http://
и https://
используются простые HTTP-запросы, тогда как ws://
и wss://
отправляются через WebSocket.
Теперь можно выбирать среду запуска в HTTP-клиенте, нажав на кнопку запуска в поле. Чтобы включить эту функциональность, выберите опцию Select Environment Before Run в комбинированном списке Run with.
Мы обновили раздел Remote Development на приветственном экране. Здесь вы можете выбрать нужный способ запуска IDE на удаленном сервере. Также для процессов, запущенных в терминале, доступно перенаправление портов.
Подробнее об этой новой функциональности для удаленной разработки читайте в нашем блоге.
JetBrains Space — это универсальная платформа для разработки, которая предоставляет такую функциональность, как управление проектами, отслеживание задач, Git-хостинг, код-ревью, непрерывная интеграция, управление пакетами и оркестрация удаленных серверов с запущенными IDE с помощью облачных сред разработки.
Мы интегрировали Space в GoLand. Вы можете просматривать проекты в Space, клонировать репозитории и работать с ними. Когда ваши изменения готовы, вы можете создать merge-реквест и запустить код-ревью прямо из IDE.
Вы можете управлять облачными средами разработки Space прямо из GoLand.
Когда IDE подключена к вашей организации в Space, все существующие облачные среды разработки синхронизируются. Вы можете создать новую облачную среду разработки для репозитория или ветки и сразу начать писать код. Облачную среду разработки можно перевести в спящий режим, чтобы снизить потребление ресурсов, или просто удалить ее, когда работа закончена.
Для пользователей macOS мы добавили возможность объединять все открытые проекты в одно окно с вкладками. Для этого перейдите в Window | Merge All Project Windows.
Мы добавили новое сочетание клавиш для изменения размера шрифта в редакторе. Чтобы увеличить шрифт, нажмите Alt+Shift+., а что тобы уменьшить — Alt+Shift+,.
При изменении масштаба в редакторе новый индикатор показывает текущий размер шрифта и позволяет вернуться к значению по умолчанию.
В диалоге Add Mnemonic Bookmark теперь есть поле Description, где вы можете добавить свое описание закладки. Чтобы создать мнемоническую закладку, кликните правой кнопкой мыши в поле рядом со строчкой, которую вы хотите сохранить, и выберите соответствующую опцию из контекстного меню. Также вы можете использовать комбинацию клавиш Ctrl+F11.
Индикатор выполнения Cloning repository теперь показывается прямо в списке проектов.
Теперь вы можете открыть настройки Code Completion, нажав на вертикальное многоточие во всплывающем окне с вариантами автодополнения кода и выбрав соответствую строку в открывшемся меню.
Теперь у вас есть возможность включать и выключать автоматическое добавление скобок в процессе автодополнения кода.
Вы можете изменить стиль подчеркивания для инспекций, используя новое выпадающее меню Highlighting in editor в Settings | Editor | Inspections.
Эта функциональность дает больше возможностей для настройки инспекций. Например, вы можете установить строгость инспекции на уровне Warning, а стиль подчеркивания изменить на Error.
Вы можете копировать образы с одного демона Docker на другой с помощью нового действия Copy Docker Image, которое сохраняет образ в файл и затем добавляет его в выбранный демон.
GoLand теперь автоматически подключается к Docker при перезапуске IDE. Эта опция включена по умолчанию в Preferences | Advanced Settings | Docker.
Colima и Rancher интегрированы в GoLand, и у вас теперь есть больше возможностей для подключения к демонам Docker.
Теперь можно выбрать сразу несколько CSV-файлов и импортировать их одновременно.
Для работы с базами данных у вас теперь будет два режима разрешения: Playground и Script.
Playground предназначен для набора не связанных между собой запросов, а Script — для набора запросов с последовательной логикой.
GoLand теперь умеет автоматически импортировать SSL-сертификаты из доверенных системных хранилищ. IDE сама обнаружит пользовательские сертификаты, используемые в вашей корпоративной среде разработки. Вам не нужно ничего делать дополнительно — все работает из коробки.
Файлы JSON и YAML теперь содержат активные ссылки внутри значений, начинающихся с http://
и https://
. Вы можете открывать эти ссылки в браузере и генерировать запросы в HTTP-клиенте.