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

image-loader.svg

Привет, Хабр!  

Сегодня расскажем о свежем релизе 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.gifwsl.gif

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

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

gofmt.gifgofmt.gif

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

gofmt-notification.1.pnggofmt-notification.1.png

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

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

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

image-loader.svg

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

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

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

name-style-struct-tags.1.gifname-style-struct-tags.1.gif

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

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

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

postfix-string-to-integer.3.gifpostfix-string-to-integer.3.gif

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

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

preview-source.1.pngpreview-source.1.png

Улучшение run targets 

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

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

ssh-sources-settings.pngssh-sources-settings.png

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

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

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

default-run-target-1.pngdefault-run-target-1.png

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

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

ssh-proxy.pngssh-proxy.png

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

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

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

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

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

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

image-loader.svg

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

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

image-loader.svg

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

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

image-loader.svg

Delve для Linux ARM64

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

image-loader.svg

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

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

image-loader.svg

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

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

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

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

fix-error-str-format.giffix-error-str-format.gif

Export type

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

export-type-quickfix.1.gifexport-type-quickfix.1.gif

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

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

image-loader.svg

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

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

todo-implement-me.1.giftodo-implement-me.1.gif

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

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

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

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

image-loader.svg

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

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

image-loader.svg

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

generate-req.gifgenerate-req.gif

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

image-loader.svg

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

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

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

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

image-loader.svg

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

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

image-loader.svg

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

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

vcs-settings.gifvcs-settings.gif

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

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

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

old-debug-ui--1.pngold-debug-ui--1.png

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

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

split-run-window.1.gifsplit-run-window.1.gif

Новое окно Bookmarks

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

image-loader.svg

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

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

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

image-loader.svg

Поддержка ConPTY

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

image-loader.svg

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

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

image-loader.svg

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

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

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

url-import-js.pngurl-import-js.png

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

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

html-completion.1.gifhtml-completion.1.gif

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

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

image-loader.svg

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

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

image-loader.svg

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

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

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

image-loader.svg

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

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

database-split.1.gifdatabase-split.1.gif

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

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

image-loader.svg

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

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

image-loader.svg

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

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

image-loader.svg

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

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

mongo-completion.pngmongo-completion.png

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

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

image-loader.svg

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

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

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

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

Команда GoLand

© Habrahabr.ru