В GoLand 2022.3 улучшена производительность, добавлены новые возможности для дженериков и рабочих пространств.
Мы интегрировали Go Playground, поддержали новый синтаксис документирующих комментариев, добавили улучшения для HTTP-клиента и Docker, а также сделали общедоступным новый интерфейс.
Как и всегда, вас также ждут нововведения для веб-разработки и работы с базами данных — например, поддержка Redis.
Если вы предпочитаете узнавать о новой функциональности в интерактивной форме, пройдите урок What's New in GoLand 2022.3 на начальном экране в разделе Learn.
А еще GoLand сегодня исполняется 5 лет, и мы подготовили для вас небольшой сюрприз. Введите «Happy B-day, GoLand!» в GoLand 2022.3 или GoLand 2022.2.5 и посмотрите, что будет.
go list
для улучшения индексирования Когда вы открываете проект, GoLand индексирует файлы и запускает команду go list
, которая сообщает о структуре проекта. Во время выполнения этой команды индексирование приостанавливается, и у вас нет доступа к возможностям анализа кода до завершения индексирования.
Раньше в некоторых случаях go list
запускалась дважды. Мы изменили API и сократили количество запусков go list
. Надеемся, это изменение значительно повысит производительность при работе над крупными проектами с большим количеством модулей.
Теперь при открытии проекта информация, получаемая от go list
, сохраняется на диске в кэш-памяти. Когда вы откроете этот проект в следующий раз, данные о структуре проекта загрузятся из памяти и будут учтены на старте индексирования.
Благодаря этому индексирование выполняется без остановки и завершается быстрее, а функции анализа кода становятся доступны гораздо раньше.
В этой версии вас ждет еще несколько оптимизаций производительности, призванных сократить время запуска приложений и открытия проектов в IDE.
В результате общая производительность запуска, включая восстановление редактора, повысилась примерно на 30%.
Теперь можно генерировать тесты для функций с обобщенными параметрами.
Теперь у нас есть инспекция, которая обнаруживает параметры типа, записанные строчными буквами, и быстрое исправление для того, чтобы сделать их прописными.
В контекстном меню New появилось действие Go Workspace File. При его выборе в корневой папке появится файл go.work
. В него будут автоматически добавлены существующие Go-модули.
go.work
с помощью директив replace
Теперь можно генерировать go.work
из go.mod
, если там есть директивы replace
. Установите курсор внутри директивы replace
, нажмите Alt+Enter и выберите быстрое исправление Add … module to workspace.
В Go 1.19 была добавлена поддержка ссылок, списков и новых заголовков в документирующих комментариях. GoLand 2022.3 тоже поддерживает эти новые возможности.
GoLand теперь поддерживает doc-ссылки. Щелчок по ссылке приведет к элементу, на который она ссылается, а щелчок по текстовой ссылке — к определению текстовой ссылки.
И те и другие отображаются в виде ссылок в подсказке Quick Documentation и в окне Documentation.
Начиная с Go 1.19, заголовок — это строка, начинающаяся со знака #, за которым следует пробел и текст заголовка.
Новые заголовки отображаются как HTML-заголовки и в Quick Documentation, и в окне Documentation.
Во всплывающем окне Quick Documentation и в окне Documentation списки отображаются в виде HTML-списков.
Мы интегрировали в GoLand функциональность Go Playground.
Выделите фрагмент кода, выберите опцию Open In и нажмите Playground. В результате откроется скретч-файл с панелью инструментов, содержащей те же опции, что и при использовании Go Playground.
Вы можете отформатировать свой код и поделиться им, изменить версию Go, запустить код на сервере Go Playground или локально.
Если тип содержит сам себя, IDE выдает ошибку «Invalid recursive type». To avoid this, you should include a pointer to a type, not a type itself. Теперь для таких случаев есть быстрое исправление.
Мы начали реализовывать функцию Code Vision. Пока что авторы кода отображаются, если включена интеграция с системой контроля версий. Если кликнуть по имени автора кода, откроется боковая панель Annotate with Git blame, показывающая, кто внес те или иные изменения.
Мы также добавили отображение использований рядом со всеми функциями и типами, и вы увидите, сколько раз на функцию или тип ссылаются в проекте.
GoLand теперь показывает встроенные подсказки для блоков определений констант. Это особенно полезно в случае блоков констант, производных от iota
, когда подсказки показывают значения iota
, соответствующие каждой позиции.
IDE теперь игнорирует автоматически сгенерированные поля protobuf, начинающиеся с XXX_
, при вызове действия Fill all fields. Эти поля отображаются только после того, как вы вызовете автодополнение второй раз.
GoLand теперь автоматически подхватывает системные переменные, связанные с Go-модулями, и отображает их в диалоге Environment variables. Чтобы открыть диалог, перейдите в Settings | Go | Go Modules и нажмите на значок Edit environment variables.
Теперь IDE всегда показывает имена пакетов во всплывающем окне Quick documentation для объявлений верхнего уровня. Раньше заголовки пакетов показывались только при обнаружении файлов doc.go
или <pkg_name>.go
.
Максимально допустимый размер файла увеличился с 2,5 до 10 МБ. Если файл больше 10 МБ, функции анализа кода, такие как подсветка синтаксиса и навигация, не работают.
В большинстве случаев ограничения в 2,5 МБ было достаточно, но есть проекты с файлами большего размера, например AWS SDK и GCP.
Поскольку инспекция Receiver names are different не актуальна для сгенерированного кода, мы отключили ее для файлов, которые содержат комментарий, соответствующий следующему регулярному выражению: ^// Code generated .* DO NOT EDIT\.$
HTTP-клиент теперь поддерживает выполнение блоков скриптов перед запросами. Можно генерировать данные перед выполнением запроса и передавать их в конечный запрос с помощью переменных. Есть быстрое исправление, которое создаст шаблонный код для инициализации переменных.
HTTP-клиент теперь поддерживает Crypto API. Вы можете вычислять хэш-значения md5 или sha1 для HTTP-запросов.
Для простых случаев в IDE появился новый набор переменных random.
GoLand теперь поддерживает подключение к Docker, запущенному в Windows Subsystem for Linux (WSL). Настроить такое соединение можно в разделе Settings | Build, Execution, Deployment | Docker.
Теперь есть простой способ извлечь необходимый образ из Dockerfile
или docker-compose.yml
, не запуская его. Для этого вызовите контекстное меню (Alt+Enter) на подсвеченном имени образа и выберите Pull Docker image.
.dockerignore
Мы добавили полную поддержку файлов .dockerignore
, включая подсветку и автодополнение кода. Теперь эти файлы учитываются при сборке образа из IDE.
Here-документы позволяют перенаправлять последующие строки Dockerfile
в качестве входных данных для команд RUN
и COPY
. GoLand теперь поддерживает этот синтаксис, и вы можете использовать его для создания файлов конфигурации или многострочных скриптов прямо в файлах Dockerfile
.
Теперь можно настраивать дополнительные Docker-соединения с помощью Docker Contexts, если у вас уже есть эти параметры в конфигурации Docker. Для этого в окне Services вызовите контекстное меню Add Service и выберите Docker Connections From Docker Contexts.
Теперь бэкенд вашей IDE может запускаться непосредственно в WSL 2, и к нему можно подключаться так же, как и к любой другой удаленной машине при использовании удаленной разработки в GoLand.
Как вы, возможно, знаете, в мае мы открыли ограниченный ранний доступ к новому интерфейсу в наших IDE.
Теперь новый интерфейс может попробовать каждый: переключайтесь на него в меню Settings | Appearance & Behavior | New UI Preview и делитесь с нами своими впечатлениями.
Функция предварительного просмотра intention-действий теперь включена по умолчанию, а значит, вы можете заранее посмотреть, как изменится ваш код после применения предложения IDE.
Функция включается и выключается нажатием Ctrl+Q, когда открыт список intention-действий.
Чтобы упростить организацию пространства и взаимодействие с GoLand на нескольких мониторах, мы добавили возможность перетаскивать окна инструментов из главного окна и прикреплять их к плавающим вкладкам редактора.
Мы улучшили раздел полезных советов, которые помогают осваивать GoLand.
У каждого совета теперь есть заголовок. Мы также усовершенствовали алгоритм выбора советов, чтобы показывать вам только самые актуальные — с учетом вашего опыта использования IDE и специфики проекта, над которым вы работаете.
Снова можно добавлять в закладки файлы, открытые во вкладках редактора. Просто кликните правой кнопкой мыши по вкладке и выберите Bookmarks в контекстном меню.
В закладки можно добавить сразу все файлы со всех открытых вкладок. Для этого выберите действие Bookmark Open Tabs в том же контекстном меню или вызовите его, нажав на три точки в правой части панели вкладок.
В этой версии настройки синхронизируются по-новому. Долгое время параллельно существовало два плагина с пересекающимися функциями — IDE Settings Sync и Settings Repository. Чтобы избежать путаницы, мы объединили их функциональность в одном решении — новом плагине Settings Sync.
You can find details about the new unified solution here.
Обо всех новых возможностях для работы с базами данных читайте на странице DataGrip.
Мы реализовали предварительную версию долгожданной поддержки Redis.
При использовании быстрого поиска теперь можно фильтровать объекты. Все, что не соответствует фильтрам, будет скрыто.
Обо всех улучшениях для веб-разработки в версии 2022.3 читайте на странице WebStorm.
В этой версии доступна новая функция Code Vision для веб-разработки. Она собирает различные метрики типов и членов типов в JavaScript и TypeScript-коде и отображает эту информацию рядом с их объявлениями.
Появилось новое быстрое исправление для подавления инспекций с помощью комментария в YAML-файлах, включая файлы Kubernetes, спецификации OpenAPI и файлы docker-compose.yml
.
Мы также добавили возможность сворачивать многострочные комментарии, которые составляют блок из 3 или более строк и начинаются с #
.
Мы начали распространять установщики для Windows ARM64. Их уже можно скачать с нашего сайта или через приложение Toolbox.