Что нового в GoLand

В GoLand 2022.1 вы найдете поддержку дженериков и рабочих пространств.

Также мы добавили новую функциональность для работы с микросервисами. Вы увидите все конечные точки в специальном окне инструментов и сможете генерировать HTTP-запросы прямо из Go-файлов.

Как всегда, новая версия GoLand содержит улучшения для работы с базами данных и для веб-разработки.

Если вы предпочитаете узнавать о новой функциональности в интерактивной форме, пройдите урок What's New in GoLand 2022.1 на начальном экране в разделе Learn.

Дженерики

Использование дженериков для создания функции сложения

Улучшения и исправления

В этом релизе мы фокусировались на исправлении ложноположительных и ложноотрицательных предупреждений. Мы закрыли более 200 задач, связанных с дженериками.

GoLand автоматически добавляет закрывающую скобку после того, как вы напечатали открывающую скобку

Автодополнение кода

Мы также добавили новую функциональность для параметров типа.

Как только вы вводите открывающую квадратную скобку, GoLand подставляет закрывающую скобку.

Параметры типа показываются в вариантах автодополнения

GoLand показывает параметры типа в вариантах автодополнения и вставляет квадратные скобки, когда вы выбираете один из вариантов.

Реализация недостающих методов с помощью быстрого исправления

Быстрое исправление Implement missing methods

Если у типа не хватает методов интерфейса, которым он ограничен, GoLand показывает ошибку. Вы можете реализовать недостающие методы, использовав быстрое исправление прямо во всплывающем окне с сообщением об ошибке.

Также вы можете нажать на значок лампочки или нажать Alt+Enter и выбрать Implement missing methods.

Рабочие пространства

Открытый файл go.work

Вы можете открыть папку с файлом go.work и дальше писать код как обычно. Позже мы добавим подсветку кода и автодополнение для go.work.

Микросервисы

Использование действия Go to declaration из Go-файла

Поиск использований и навигация

Примечание: новая функциональность для работы с микросервисами пока доступна только для стандартной библиотеки.

Рядом с каждой конечной точкой в Go-файлах теперь есть значок в виде глобуса. Если вы нажмете на него, GoLand предложит несколько опций.

Первая опция позволяет найти все использования конечной точки и перейти к ним. Вы также можете найти все использования, нажав Ctrl и затем на конечную точку.

Генерация запроса из Go-файла

Генерация запросов

Вторая опция, которую вы увидите, нажав на значок глобуса, — Generate request in HTTP client. Если вы выберете эту опцию, IDE откроет встроенный HTTP-клиент. С помощью этого действия можно сгенерировать запрос для любого URL-адреса.

В нашем HTTP-клиенте появилось автодополнение для конечных точек. Оно работает для конечных точек в Go-файлах (пока поддерживается только стандартная библиотека), Swagger-спецификаций, файлов .proto и JavaScript-файлов.

Открытое окно Endpoints

Окно Endpoints

Третья опция — Show all endpoints of module. Если вы выберете эту опцию, GoLand откроет новое окно Endpoints, в котором вы увидите все конечные точки вашего проекта.

Дальше вы можете использовать действие Jump to source или нажать на любую конечную точку и выполнять запросы прямо из вкладки HTTP-клиента.

GoLand показывает варианты автодополнения для HTTP-методов

Автодополнение для методов и заголовков

Автодополнение теперь работает для HTTP-методов и заголовков в Go-файлах.

Ссылка открывается в браузере

Ссылки и конечные точки подчеркиваются

Все ссылки и конечные точки в Go-файлах сейчас подчеркиваются, чтобы их было легче увидеть в коде. На ссылки можно нажать и открыть их в браузере.

GoLand показывает варианты автодополнения для gRPC-запроса

Поддержка gRPC reflection

If your project doesn't have a .proto file but the server supports gRPC reflection, you will be able to run requests and get completion for service and method names right from a running server.

Тестирование

GoLand показывает ошибку, если вы используете неправильный глагол форматирования

Форматирование строк для testify/assert

GoLand теперь сообщает об ошибках, если вы используете неправильные глаголы форматирования в функциях testify/assert.

Отладчик

Как сделать названия вкладок видимыми в окне Debug

Названия вкладок

Чтобы увеличить доступное для использования пространство в окне Debug, мы по умолчанию скрыли названия вкладок. Отобразить их и изменить их местоположение можно с помощью параметра Show Tab Labels в меню Layout Settings.

Kubernetes

Изменение ресурсов, загруженных из кластера

Редактирование ресурсов в кластере

Примечание: плагин Kubernetes можно установить в Settings | Plugins.

Ресурсы, загруженные из кластера, теперь можно изменить прямо в редакторе.

Настройки, в которых можно изменить путь к kubectl

Изменение пути к kubectl

Теперь вы можете изменить путь к kubectl, если он не находится в расположении по умолчанию. Для этого перейдите в Settings | Build, Execution, Deployment | Kubernetes | Path to kubectl executable.

Использование функциональности перенаправления портов из панели инструментов

Перенаправление портов

Мы добавили возможность перенаправления портов для подов. Чтобы перенаправить порты, можно либо использовать значок на панели инструментов, либо вызвать контекстное меню правым кликом по поду и выбрать Forward Ports…

Действие Describe Resource

Действие Describe Resource в окне Services

Для всех ресурсов в окне Services появилось новое действие Describe Resource. Его можно вызвать из контекстного меню или использовать значок на панели инструментов.

События кластера показываются в окне Services.

Узел для событий кластера

События кластера теперь показываются в отдельном узле в окне Services.

Автодополнение кода работает в файлах Helm.

Поддержка werf

Мы добавили базовую поддержку для werf.yaml и связанных шаблонов Helm. Базовая поддержка включает автодополнение, инспекции и быстрые исправления, рефакторинги для .Values.werf.image.* и валидацию для некоторых полей, таких как boolean и int.

Docker

Окно Services

Обновленный интерфейс Services

Мы значительно переработали интерфейс Docker в окне Services. Изменения коснулись настроек контейнеров, образов, сетей и томов.

Функциональность Run Targets поддерживает Docker Compose

Поддержка Docker Compose в Run Targets

Мы добавили поддержку Docker Compose в Run Targets. Чтобы попробовать, перейдите в Run | Manage targets и нажмите Add new target.

В настройках Docker Registry можно выбрать Docker V2.

Поддержка Docker Registry V2

GoLand теперь поддерживает программный интерфейс Docker Registry V2.

Markdown

Значок Copy code в редакторе Markdown

Значок Copy code

Для Markdown появился значок Copy code, позволяющий копировать данные в буфер обмена.

Выполнение команд из Markdown-файлов

Запуск команд

Вы можете запускать команды из файлов Markdown в консоли: для этого используйте иконки запуска на полях редактора.

Markdown-файл с новой плавающей панелью инструментов

Улучшенная плавающая панель инструментов

Мы переработали плавающую панель инструментов, которая появляется при выделении текста. Изменился не только внешний вид панели: теперь с ее помощью можно создавать списки, а в выпадающем меню выбирать стили заголовков.

Взаимодействие с IDE

Окно Notifications

Новое окно Notifications

Вместо журнала событий теперь есть окно Notifications. В нем лучше структурированы уведомления IDE и отмечается все самое важное и полезное.

Диалог Structural Search and Replace

Обновленный диалог Structural Search and Replace

В диалоге Structural Search and Replace теперь отображается список всех шаблонов, чтобы между ними было проще переходить.

Structural Search and Replace в GoLand работает для XML, HTML, SQL и JavaScript.

Равные вкладки в режиме Split

Равные вкладки в режиме Split

Теперь в режиме Split вкладки можно сделать одинаковыми по ширине. Для этого перейдите в меню Settings | Advanced Settings | Editor Tabs и выберите опцию Equalize proportions in nested splits.

Экспорт UML-диаграммы

Экспорт UML-диаграмм в другие форматы

В новой версии диаграммы можно экспортировать в форматах yEd (.graphml), JGraph (.drawio), Graphviz (.dot и .dot с позициями), Mermaid (.md), Plantuml, а также в файлы .uml IDEA. Благодаря этому их можно использовать в сторонних инструментах.

Управление версиями

Информация о GPG-подписи в панели Commit details

Обновленная панель Commit Details в окне Git

На панели Commit Details теперь содержится информация о цифровых подписях GPG.

GoLand подсвечивает различия между строками в режиме Annotate with Git Blame

Улучшенное действие Annotate with Git Blame

Чтобы анализировать внесенные изменения было проще, мы улучшили работу действия Annotate with Git Blame. При наведении курсора на аннотацию IDE подсвечивает различия между строками прямо в редакторе, а при нажатии на аннотацию открывает вкладку Git Log.

Базы данных

Копирование нескольких таблиц в другую схему

Копирование нескольких объектов

Теперь можно выбрать сразу несколько таблиц и скопировать их в другую схему.

Выберите таблицы, которые нужно скопировать, и нажмите F5, чтобы открыть диалог экспорта. Как и при экспорте отдельной таблицы, можно настроить соответствие столбцов и внешний вид, а также изменить DDL новой таблицы.

Редактирование полей в коллекциях MongoDB

Редактирование полей в результатах MongoDB

Теперь редактировать результаты в коллекциях MongoDB так же просто, как в реляционных базах данных.

Обо всех улучшениях для работы с базами данных в версии 2022.1 читайте на странице DataGrip.

Веб-разработка

GoLand распознает глобальные компоненты в Vue-файлах.

Улучшения для Vue

В GoLand 2022.1 вас ждет несколько улучшений для Vue 3. Теперь IDE распознает глобальные компоненты в файлах .vue.

Также мы улучшили поддержку синтаксиса createApp: IDE правильно соотносит приложения, созданные с помощью createApp, с релевантными элементами. Кроме того, мы добавили поддержку Nuxt 3 — новой версии популярного фреймворка для Vue.

GoLand разрешает пути, использованные в атрибуте href компонентов Link.

Улучшенная поддержка Next.js

Мы добавили поддержку страниц — одной из наиболее важных вещей, специфичных для Next. js. IDE разрешает пути, использованные в атрибуте href компонентов Link. Автодополнение, навигация и рефакторинги тоже работают.

Конфигурация webpack с ES-модулями

Поддержка настройки webpack в ESM

Начиная с версии 2022.1, помощь в написании кода для webpack будет работать при использовании ES-модулей в файлах webpack.config.js.

GoLand автоматически распознает Yarn и npm, установленные с помощью Volta.

Поддержка Volta

Мы добавили интеграцию с Volta — менеджером JavaScript-инструментов. GoLand теперь автоматически распознает Yarn и npm, установленные с помощью Volta.

Обо всех улучшениях для веб-разработки в версии 2022.1 читайте на странице WebStorm.

Обновления режима специальных возможностей

Инструмент чтения с экрана теперь озвучивает названия и описания деревьев веток: это упрощает навигацию по вкладке Log.

Кроме того, мы добавили несколько обновлений для VoiceOver, чтобы улучшить поддержку специальных возможностей на macOS.