GoLand Releases

GoLand 2021.3: полная поддержка WSL, запуск gofmt при сохранении файла, Inline Function, удаленная разработка

Read this post in other languages:
English

Сегодня мы расскажем о свежем релизе GoLand.

Что нового:

  • полная поддержка WSL;
  • запуск gofmt при сохранении по умолчанию;
  • рефакторинг Inline Function;
  • удаленная разработка (Beta);
  • поддержка gRPC в HTTP-клиенте;
  • улучшения отладчика;
  • и многое другое!

Узнать о новой функциональности в интерактивной форме можно прямо в IDE. Урок What’s New in GoLand 2021.3 доступен на экране приветствия в разделе Learn GoLand.

Скачать GoLand 2021.3 можно на сайте JetBrains или через приложение Toolbox App.

Полная поддержка WSL

По вашим многочисленным запросам, для работы с проектами в WSL теперь можно использовать SDK, загруженный в директорию \\wsl$.

wsl.gif

gofmt при сохранении файла

Раньше вы могли настроить автоматическое выполнение опции Reformat code при сохранении файла. Теперь мы сделали это поведением по умолчанию. Опция Reformat code позволяет запускать gofmt и встроенный форматтер GoLand.

gofmt.gif

Мы добавили уведомление об этом изменении — оно будет показано один раз в каждом проекте.

gofmt-notification.1.png

Рефакторинг Inline Function

Мы добавили долгожданный рефакторинг Inline для функций и методов!

Чтобы попробовать новый рефакторинг, поставьте курсор на функцию, метод или вызов и нажмите ⌥⌘N на macOS или Ctrl + Alt + N на Windows/Linux.

Улучшенное автодополнение для тегов в структурах

Мы улучшили автодополнение для разных стилей написания составных слов (camelCase, snake_case и т. д.) в тегах структур.

Теперь при вводе значения тега GoLand предлагает несколько опций. IDE запомнит ваш выбор и предложит тот же стиль первым для остальных тегов этой структуры.

name-style-struct-tags.1.gif

Новые шаблоны постфиксного автодополнения

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

У нас появились новые шаблоны для преобразования строк в числа. Введите число в двойных кавычках, поставьте точку, и GoLand предложит две опции для парсинга числа — parseInt и parseFloat.

postfix-string-to-integer.3.gif

Предпросмотр исходного кода для Show Usages

Мы улучшили окно Show Usages. Теперь для любого использования можно сделать предпросмотр исходного кода. Для этого нажмите на соответствующую иконку в верхней панели инструментов.

preview-source.1.png

Улучшение run targets

Названия папок для исходных и исполняемых файлов

Теперь вы можете переименовывать папки на удаленной машине для хранения исходных и исполняемых файлов проекта. Для этого перейдите в раздел Run | Manage targets | Additional Settings. 

ssh-sources-settings.png

Конфигурация run target по умолчанию для всего проекта

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

Перейдите в раздел Run | Manage targets. Укажите в качестве Project default target существующую конфигурацию run target — и все новые конфигурации запуска будут создаваться на ее основе.

default-run-target-1.png

Поддержка прокси для подключений по SSH

В настройках SSH Configurations появилась новая секция HTTP/SOCKS Proxy, где вы можете настроить прокси. Для этого перейдите в раздел Preferences/Settings | Tools | SSH Configurations либо откройте проект и нажмите Run | Manage Targets | …

ssh-proxy.png

Обновления отладчика

Улучшенное представление нулевых интерфейсов

У интерфейсов в Go есть две составляющие: тип и значение. Интерфейс может быть равен nil только тогда, когда обе составляющие равны nil.

Если у вас в программе есть интерфейс, значение которого равно нулевому указателю на int, то сам интерфейс не будет нулевым, потому что внутренний тип не равен nil (а равен *int). Это может сбить вас с толку.

Чтобы распознавать такие случаи, мы изменили способ отображения интерфейсов во вкладке Variables окна Debug. Например, если у вас есть интерфейс с внутренним типом *int и значением nil, он будет показан так:

{interface{} | *int} *int(nil)

Сокращенные названия пакетов

Теперь во вкладке Variables полные имена пакетов сокращаются — указывается только последняя часть.

Возможность спрятать/показать типы объектов

Если тип объекта занимает слишком много места во вкладке Variables, нажмите правой кнопкой мыши и в открывшемся контекстном меню отключите опцию Show Types. Включить опцию можно тем же способом.

Delve для Linux ARM64

GoLand 2021.3 включает версию Delve для ARM64. Отладка на Linux ARM работает «из коробки».

Шаблон для утверждений testify

Мы добавили новый шаблон для табличных тестов с утверждениями testify. Если вы уже использовали утверждения testify в своем пакете, то, когда вы нажмете ⌘N (Alt + Ins) и выберете опцию — например, Test for function, — GoLand сгенерирует код с утверждениями.

Новые быстрые исправления

Форматирование сообщений об ошибках

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

Нажмите ⌥ ↩ (Alt + Enter), и GoLand предложит исправить форматирование сообщения.

fix-error-str-format.gif

Export type

Если у вас есть экспортированная функция, которая возвращает неэкспортированный тип, GoLand предложит быстрое исправление для экспорта этого типа.

export-type-quickfix.1.gif

Инспекция context.TODO()

Мы добавили инспекцию, которая подсвечивает использования context.TODO(), чтобы вы не забыли указать верный контекст.

Комментарий TODO в шаблоне Implement Method

Мы добавили комментарий //TODO implement me в шаблоны, которые генерируются при использовании действия Implement Methods. GoLand подсвечивает и индексирует эти комментарии, а также показывает их в окне TODO — так вы не забудете добавить все недостающие реализации.

todo-implement-me.1.gif

Удаленная разработка

Еще одно долгожданное изменение — GoLand 2021.3 поддерживает удаленную разработку (пока в режиме Beta).

Чтобы попробовать новую функциональность, нажмите на Remote Development на приветственном экране GoLand. Также вы можете использовать JetBrains Gateway — наше новое приложение, служащее точкой входа для ваших удаленных машин.

Инструкции по удаленной разработке в GoLand можно найти здесь.

Поддержка gRPC в HTTP-клиенте

Теперь для запросов gRPC в GoLand работает автодополнение. Начните запрос с ключевого слова GRPC, и HTTP-клиент будет работать с ним как с gRPC-запросом.

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

generate-req.gif

HTTP-клиент поддерживает унарные и серверные потоковые вызовы RPC.

О других улучшениях HTTP-клиента можно прочитать здесь.

Обновления системы контроля версий

Checkout and Rebase onto Current для удаленных веток

Действие Checkout and Rebase onto Current позволяет переключиться на другую ветку и перебазировать ее поверх текущей ветки. Теперь это действие также доступно для удаленных веток.

Новое действие Push All up to Here

Теперь вы можете отправить в удаленный репозиторий все коммиты вплоть до указанного. Для этого перейдите во вкладку Log окна Git, выберите коммит, на котором хотите остановиться, нажмите по нему правой кнопкой мыши и в контекстном меню выберите Push All up to Here.

Реорганизация настроек системы контроля версий

Настройки системы контроля версий теперь легче найти. Также мы по-новому структурировали их. Все настройки VCS можно найти в разделе Preferences/Settings Version Control.

vcs-settings.gif

Улучшения пользовательского интерфейса

Evaluate expression во вкладке Variables

Функциональность Evaluate expression теперь доступна во вкладке Variables отладчика.

old-debug-ui--1.png

Разделение окна Run

Теперь можно разделять окно Run, перетаскивая вкладки в подсвеченную область. Чтобы объединить вкладки, нажмите правой кнопкой мыши в верхней части панели и выберите в контекстном меню опцию Unsplit.

split-run-window.1.gif

Новое окно Bookmarks

У нас появилось окно Bookmarks. Отныне все файлы и папки, которые вы помечаете как важные с помощью клавиши F3 (F11), будут показаны в этом окне.

Визуализация сравнения снэпшотов в профилировщике

Вы можете визуализировать сравнение двух снэпшотов на флейм-графе. Для этого дважды нажмите ⇧ (Shift) и напечатайте «Open Profiler Snapshots» в поисковой строке. Выберите в списке нужный снэпшот, снова дважды нажмите ⇧ (Shift) и напечатайте «Open Profiler Snapshots», чтобы открыть второй снэпшот.

Затем перейдите во вкладку любого из снэпшотов и нажмите Compare With Baseline. В открывшемся меню выберите снэпшот, с которым хотите сравнить текущий. Откроется вкладка Diff, в которой вы увидите результаты сравнения.

Поддержка ConPTY

Терминал GoLand поддерживает новый прикладной программный интерфейс ConPTY для Windows. PTY на Windows теперь включен по умолчанию. Благодаря ConPTY в терминале поддерживаются 24-разрядные цвета.

Опережающий ввод в терминале

Мы добавили в наш встроенный терминал функцию опережающего ввода. Теперь, когда вы работаете на удаленной машине, терминал пробует предсказывать, какие символы вы введете дальше, и отображает их в светло-сером цвете. Это помогает сгладить эффект сетевой задержки.

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

Поддержка URL в инструкциях import

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

url-import-js.png

Улучшенное автодополнение в HTML-файлах

Мы улучшили автодополнение в HTML-файлах. Вам больше не нужно печатать открывающую скобку (<), чтобы вызвать автодополнение, — достаточно просто начать вводить имя тега или аббревиатуру, и GoLand сразу же покажет подходящие варианты. Кроме того, мы улучшили автодополнение для мнемоников.

html-completion.1.gif

Новая инспекция для обновления зависимостей

Обновлять пакеты npm до новой версии теперь можно прямо из редактора. Для этого откройте файл package.json, поставьте курсор на строчку с пакетом, который вы хотите обновить, нажмите ⌥↩ (Alt + Enter) и выберите Update <имя_пакета> to the latest version.

Преобразование списка элементов

Для фронтенд-проектов теперь есть действие, позволяющее быстро разместить разделенные запятыми элементы на отдельных строках либо, наоборот, сгруппировать их на одной строке.

Работа с базами данных

Aggregate view для диапазона ячеек

Выберите диапазон ячеек, нажмите по нему правой кнопкой мыши и выберите Show Aggregate View — GoLand рассчитает и покажет значения агрегатных функций для выбранного диапазона.

Независимые вкладки в редакторе

Если вы разделите редактор на две вкладки и откроете в них одну и ту же таблицу, работать в этих вкладках можно будет абсолютно независимо — например, применять разные параметры фильтрации и сортировки.

database-split.1.gif

Проверка логических выражений

У нас появилась инспекция для логических выражений в командах WHERE и HAVING. Если выражение не является логическим, GoLand подсвечивает его желтым и показывает предупреждение перед выполнением запроса.

Навигация по внешним ключам на основе нескольких значений

Теперь вы можете выбрать несколько значений в редакторе и по ним перейти к соответствующим данным.

Определение типов столбцов в CSV-файлах

GoLand теперь автоматически определяет типы данных в столбцах CSV-файлов и позволяет сортировать числовые данные.

MongoDB: автодополнение для filter {} и sort {}

При сортировке и фильтрации данных в коллекциях MongoDB теперь можно пользоваться автодополнением.

mongo-completion.png

Настройка шрифта в редакторе данных

Вы можете настроить шрифт для редактора данных. Для этого перейдите в Preferences/Settings | Tools | Database | Data views | Use custom font.

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

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

Также мы улучшили поддержку режима специальных возможностей на macOS. Во-первых, мы исправили несколько неполадок, связанных с VoiceOver. Во-вторых, теперь вы можете создавать проекты при помощи инструмента чтения с экрана. Мы убрали некоторые подсказки со звуком, чтобы снизить количество отвлекающих факторов.

На этом все. Будем рады узнать ваши впечатления от новой версии!

Ваша команда GoLand
The Drive to Develop

Оригинал статьи опубликован на Habr.com.

Discover more