![](https://habrastorage.org/getpro/habr/upload_files/872/d98/a8d/872d98a8d0bb96f4b887aaa91517a010.png)
Привет, Хабр!
Сегодня расскажем о свежем релизе 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 wsl.gif](https://habrastorage.org/getpro/habr/upload_files/2d6/edc/e0f/2d6edce0fc1ffab0cb54c10845d13f8d.gif)
gofmt при сохранении файла
Раньше вы могли настроить автоматическое выполнение опции Reformat code при сохранении файла. Теперь мы сделали это поведением по умолчанию. Опция Reformat code позволяет запускать gofmt и встроенный форматтер GoLand.
![gofmt.gif gofmt.gif](https://habrastorage.org/getpro/habr/upload_files/758/41e/27d/75841e27d141a49cf70f979123d44bb9.gif)
Мы добавили уведомление об этом изменении — оно будет показано один раз в каждом проекте.
![gofmt-notification.1.png gofmt-notification.1.png](https://habrastorage.org/getpro/habr/upload_files/bd5/27c/f87/bd527cf872504aee013a6821d45baac8.png)
Рефакторинг Inline Function
Мы добавили долгожданный рефакторинг Inline для функций и методов!
Чтобы попробовать новый рефакторинг, поставьте курсор на функцию, метод или вызов и нажмите ⌥⌘N на macOS или Ctrl + Alt + N на Windows/Linux.
![](https://habrastorage.org/getpro/habr/upload_files/da1/2e0/81f/da12e081fd00286b9b0e747e445e9f9e.gif)
Улучшенное автодополнение для тегов в структурах
Мы улучшили автодополнение для разных стилей написания составных слов (camelCase, snake_case и т. д.) в тегах структур.
Теперь при вводе значения тега GoLand предлагает несколько опций. IDE запомнит ваш выбор и предложит тот же стиль первым для остальных тегов этой структуры.
![name-style-struct-tags.1.gif name-style-struct-tags.1.gif](https://habrastorage.org/getpro/habr/upload_files/c84/27b/21e/c8427b21e715489d02066dcdeff29f27.gif)
Новые шаблоны постфиксного автодополнения
Шаблоны постфиксного автодополнения позволяют изменять код, который вы уже написали, без необходимости возвращаться назад.
У нас появились новые шаблоны для преобразования строк в числа. Введите число в двойных кавычках, поставьте точку, и GoLand предложит две опции для парсинга числа — parseInt и parseFloat.
![postfix-string-to-integer.3.gif postfix-string-to-integer.3.gif](https://habrastorage.org/getpro/habr/upload_files/4a9/62e/de1/4a962ede16f3fd21f7ae871aa24b165d.gif)
Предпросмотр исходного кода для Show Usages
Мы улучшили окно Show Usages. Теперь для любого использования можно сделать предпросмотр исходного кода. Для этого нажмите на соответствующую иконку в верхней панели инструментов.
![preview-source.1.png preview-source.1.png](https://habrastorage.org/getpro/habr/upload_files/67f/239/6ea/67f2396ea58ad1782a687f9d38651070.png)
Улучшение run targets
Названия папок для исходных и исполняемых файлов
Теперь вы можете переименовывать папки на удаленной машине для хранения исходных и исполняемых файлов проекта. Для этого перейдите в раздел Run | Manage targets | Additional Settings.
![ssh-sources-settings.png ssh-sources-settings.png](https://habrastorage.org/getpro/habr/upload_files/c0f/c5e/94b/c0fc5e94b4e94aaf59a6d6081254796d.png)
Конфигурация run target по умолчанию для всего проекта
В новой версии вы можете настроить конфигурацию run target, которая будет использоваться по умолчанию для всего проекта.
Перейдите в раздел Run | Manage targets. Укажите в качестве Project default target существующую конфигурацию run target — и все новые конфигурации запуска будут создаваться на ее основе.
![default-run-target-1.png default-run-target-1.png](https://habrastorage.org/getpro/habr/upload_files/c1e/81d/2f1/c1e81d2f1e7cbdf61365425a23aaea22.png)
Поддержка прокси для подключений по SSH
В настройках SSH Configurations появилась новая секция HTTP/SOCKS Proxy, где вы можете настроить прокси. Для этого перейдите в раздел Preferences/Settings | Tools | SSH Configurations либо откройте проект и нажмите Run | Manage Targets | …
![ssh-proxy.png ssh-proxy.png](https://habrastorage.org/getpro/habr/upload_files/0f3/d2e/52c/0f3d2e52c9b9e85c2c49b1ad92a0d652.png)
Обновления отладчика
Улучшенное представление нулевых интерфейсов
У интерфейсов в Go есть две составляющие: тип и значение. Интерфейс может быть равен nil только тогда, когда обе составляющие равны nil.
Если у вас в программе есть интерфейс, значение которого равно нулевому указателю на int, то сам интерфейс не будет нулевым, потому что внутренний тип не равен nil (а равен *int). Это может сбить вас с толку.
Чтобы распознавать такие случаи, мы изменили способ отображения интерфейсов во вкладке Variables окна Debug. Например, если у вас есть интерфейс с внутренним типом *int и значением nil, он будет показан так:
{interface{} | *int} *int(nil)
![](https://habrastorage.org/getpro/habr/upload_files/d45/1bb/1a0/d451bb1a04f39e4ee97d2579a7f2d1bb.gif)
Сокращенные названия пакетов
Теперь во вкладке Variables полные имена пакетов сокращаются — указывается только последняя часть.
![](https://habrastorage.org/getpro/habr/upload_files/0dd/926/de8/0dd926de83cb19aeefe94194bf3c9138.png)
Возможность спрятать/показать типы объектов
Если тип объекта занимает слишком много места во вкладке Variables, нажмите правой кнопкой мыши и в открывшемся контекстном меню отключите опцию Show Types. Включить опцию можно тем же способом.
![](https://habrastorage.org/getpro/habr/upload_files/852/668/220/852668220ac382849ff377c53cf9b273.gif)
Delve для Linux ARM64
GoLand 2021.3 включает версию Delve для ARM64. Отладка на Linux ARM работает «из коробки».
![](https://habrastorage.org/getpro/habr/upload_files/04a/831/fdc/04a831fdc193aab69f751b6ab1e43b21.png)
Шаблон для утверждений testify
Мы добавили новый шаблон для табличных тестов с утверждениями testify. Если вы уже использовали утверждения testify в своем пакете, то, когда вы нажмете ⌘N (Alt + Ins) и выберете опцию — например, Test for function, — GoLand сгенерирует код с утверждениями.
![](https://habrastorage.org/getpro/habr/upload_files/6ad/76c/625/6ad76c625238d9b4e28b282299c997f7.gif)
Новые быстрые исправления
Форматирование сообщений об ошибках
Мы добавили быстрое исправление для инспекции, предупреждающей, что сообщения об ошибках не должны начинаться с заглавной буквы и заканчиваться знаками пунктуации.
Нажмите ⌥ ↩ (Alt + Enter), и GoLand предложит исправить форматирование сообщения.
![fix-error-str-format.gif fix-error-str-format.gif](https://habrastorage.org/getpro/habr/upload_files/043/912/bfe/043912bfef725ff0543167fea3ed7bb7.gif)
Export type
Если у вас есть экспортированная функция, которая возвращает неэкспортированный тип, GoLand предложит быстрое исправление для экспорта этого типа.
![export-type-quickfix.1.gif export-type-quickfix.1.gif](https://habrastorage.org/getpro/habr/upload_files/053/3c8/1d0/0533c81d0ca205ade05056c732960e0f.gif)
Инспекция context.TODO()
Мы добавили инспекцию, которая подсвечивает использования context.TODO(), чтобы вы не забыли указать верный контекст.
![](https://habrastorage.org/getpro/habr/upload_files/2cc/0c8/877/2cc0c8877180fe4963ec9ed8169088d5.png)
Комментарий TODO в шаблоне Implement Method
Мы добавили комментарий //TODO implement me в шаблоны, которые генерируются при использовании действия Implement Methods. GoLand подсвечивает и индексирует эти комментарии, а также показывает их в окне TODO — так вы не забудете добавить все недостающие реализации.
![todo-implement-me.1.gif todo-implement-me.1.gif](https://habrastorage.org/getpro/habr/upload_files/06f/9e2/bb8/06f9e2bb81ccd87888b8eb1dcbcf53af.gif)
Удаленная разработка
Еще одно долгожданное изменение — GoLand 2021.3 поддерживает удаленную разработку (пока в режиме Beta).
Чтобы попробовать новую функциональность, нажмите на Remote Development на приветственном экране GoLand. Также вы можете использовать JetBrains Gateway — наше новое приложение, служащее точкой входа для ваших удаленных машин.
Инструкции по удаленной разработке в GoLand можно найти здесь.
![](https://habrastorage.org/getpro/habr/upload_files/6b9/293/5f9/6b92935f9bb48797a204c5e1ef4840e3.png)
Поддержка gRPC в HTTP-клиенте
Теперь для запросов gRPC в GoLand работает автодополнение. Начните запрос с ключевого слова GRPC, и HTTP-клиент будет работать с ним как с gRPC-запросом.
![](https://habrastorage.org/getpro/habr/upload_files/3e6/32a/869/3e632a869bcdc794365e5ba3356e4613.gif)
Вы можете сгенерировать gRPC-запрос в HTTP-клиенте: для этого откройте файл .proto и нажмите на иконку на полях редактора.
![generate-req.gif generate-req.gif](https://habrastorage.org/getpro/habr/upload_files/6ae/e80/47e/6aee8047e9036fe481e3896baba478fa.gif)
HTTP-клиент поддерживает унарные и серверные потоковые вызовы RPC.
![](https://habrastorage.org/getpro/habr/upload_files/729/b7f/2a6/729b7f2a6292c33de606c1caeeda8558.gif)
О других улучшениях HTTP-клиента можно прочитать здесь.
Обновления системы контроля версий
Checkout and Rebase onto Current для удаленных веток
Действие Checkout and Rebase onto Current позволяет переключиться на другую ветку и перебазировать ее поверх текущей ветки. Теперь это действие также доступно для удаленных веток.
![](https://habrastorage.org/getpro/habr/upload_files/ace/d23/cca/aced23ccaf542efb3d6032d620875fc2.png)
Новое действие Push All up to Here
Теперь вы можете отправить в удаленный репозиторий все коммиты вплоть до указанного. Для этого перейдите во вкладку Log окна Git, выберите коммит, на котором хотите остановиться, нажмите по нему правой кнопкой мыши и в контекстном меню выберите Push All up to Here.
![](https://habrastorage.org/getpro/habr/upload_files/ec8/faa/1f2/ec8faa1f21d3b4c54c5dce2be435b65e.png)
Реорганизация настроек системы контроля версий
Настройки системы контроля версий теперь легче найти. Также мы по-новому структурировали их. Все настройки VCS можно найти в разделе Preferences/Settings | Version Control.
![vcs-settings.gif vcs-settings.gif](https://habrastorage.org/getpro/habr/upload_files/f41/ece/16b/f41ece16be8815d65404b68432260359.gif)
Улучшения пользовательского интерфейса
Evaluate expression во вкладке Variables
Функциональность Evaluate expression теперь доступна во вкладке Variables отладчика.
![old-debug-ui--1.png old-debug-ui--1.png](https://habrastorage.org/getpro/habr/upload_files/aef/aab/e38/aefaabe38f545070a0aa612377d1435d.png)
Разделение окна Run
Теперь можно разделять окно Run, перетаскивая вкладки в подсвеченную область. Чтобы объединить вкладки, нажмите правой кнопкой мыши в верхней части панели и выберите в контекстном меню опцию Unsplit.
![split-run-window.1.gif split-run-window.1.gif](https://habrastorage.org/getpro/habr/upload_files/67f/61f/30d/67f61f30d78713c1984db7ee2eb43f24.gif)
Новое окно Bookmarks
У нас появилось окно Bookmarks. Отныне все файлы и папки, которые вы помечаете как важные с помощью клавиши F3 (F11), будут показаны в этом окне.
![](https://habrastorage.org/getpro/habr/upload_files/3b8/760/90b/3b876090bdb9c79e713c5cf0dcc0dfd6.gif)
Визуализация сравнения снэпшотов в профилировщике
Вы можете визуализировать сравнение двух снэпшотов на флейм-графе. Для этого дважды нажмите ⇧ (Shift) и напечатайте «Open Profiler Snapshots» в поисковой строке. Выберите в списке нужный снэпшот, снова дважды нажмите ⇧ (Shift) и напечатайте «Open Profiler Snapshots», чтобы открыть второй снэпшот.
Затем перейдите во вкладку любого из снэпшотов и нажмите Compare With Baseline. В открывшемся меню выберите снэпшот, с которым хотите сравнить текущий. Откроется вкладка Diff, в которой вы увидите результаты сравнения.
![](https://habrastorage.org/getpro/habr/upload_files/d25/6e9/d07/d256e9d070c7f491ce652dab2c0e4293.gif)
Поддержка ConPTY
Терминал GoLand поддерживает новый прикладной программный интерфейс ConPTY для Windows. PTY на Windows теперь включен по умолчанию. Благодаря ConPTY в терминале поддерживаются 24-разрядные цвета.
![](https://habrastorage.org/getpro/habr/upload_files/bb8/1b0/e23/bb81b0e235cc93f7576101ad8b539dcc.png)
Опережающий ввод в терминале
Мы добавили в наш встроенный терминал функцию опережающего ввода. Теперь, когда вы работаете на удаленной машине, терминал пробует предсказывать, какие символы вы введете дальше, и отображает их в светло-сером цвете. Это помогает сгладить эффект сетевой задержки.
![](https://habrastorage.org/getpro/habr/upload_files/061/254/ef6/061254ef60a3ca5ae56541a4ca971d8c.gif)
Веб-разработка
Поддержка URL в инструкциях import
Теперь, чтобы загрузить модуль, можно просто поставить курсор на URL в инструкции import и выполнить быстрое исправление.
![url-import-js.png url-import-js.png](https://habrastorage.org/getpro/habr/upload_files/1c0/1bd/fdd/1c01bdfddce1dd1c57978a0a8ddf6066.png)
Улучшенное автодополнение в HTML-файлах
Мы улучшили автодополнение в HTML-файлах. Вам больше не нужно печатать открывающую скобку (<), чтобы вызвать автодополнение, — достаточно просто начать вводить имя тега или аббревиатуру, и GoLand сразу же покажет подходящие варианты. Кроме того, мы улучшили автодополнение для мнемоников.
![html-completion.1.gif html-completion.1.gif](https://habrastorage.org/getpro/habr/upload_files/cf2/d8f/550/cf2d8f5506b2a0409cbd59488ed69333.gif)
Новая инспекция для обновления зависимостей
Обновлять пакеты npm до новой версии теперь можно прямо из редактора. Для этого откройте файл package.json, поставьте курсор на строчку с пакетом, который вы хотите обновить, нажмите ⌥↩ (Alt + Enter) и выберите Update <имя_пакета> to the latest version.
![](https://habrastorage.org/getpro/habr/upload_files/543/3e2/137/5433e213713a6eb485daa900710ae06b.png)
Преобразование списка элементов
Для фронтенд-проектов теперь есть действие, позволяющее быстро разместить разделенные запятыми элементы на отдельных строках либо, наоборот, сгруппировать их на одной строке.
![](https://habrastorage.org/getpro/habr/upload_files/04a/4e8/da2/04a4e8da2a3d6a6ff6c5d43451ae93fb.gif)
Работа с базами данных
Aggregate view для диапазона ячеек
Выберите диапазон ячеек, нажмите по нему правой кнопкой мыши и выберите Show Aggregate View — GoLand рассчитает и покажет значения агрегатных функций для выбранного диапазона.
![](https://habrastorage.org/getpro/habr/upload_files/fc1/b29/097/fc1b290977ddf132a260c89c16f6d09c.gif)
Независимые вкладки в редакторе
Если вы разделите редактор на две вкладки и откроете в них одну и ту же таблицу, работать в этих вкладках можно будет абсолютно независимо — например, применять разные параметры фильтрации и сортировки.
![database-split.1.gif database-split.1.gif](https://habrastorage.org/getpro/habr/upload_files/f66/390/3c6/f663903c65a8d1bbb15feae9dadb7a6f.gif)
Проверка логических выражений
У нас появилась инспекция для логических выражений в командах WHERE и HAVING. Если выражение не является логическим, GoLand подсвечивает его желтым и показывает предупреждение перед выполнением запроса.
![](https://habrastorage.org/getpro/habr/upload_files/19d/fa6/c8d/19dfa6c8d494fb08056d4e70d3a7aafa.png)
Навигация по внешним ключам на основе нескольких значений
Теперь вы можете выбрать несколько значений в редакторе и по ним перейти к соответствующим данным.
![](https://habrastorage.org/getpro/habr/upload_files/eef/866/bc8/eef866bc81a195fd340fa5f5e3c17867.gif)
Определение типов столбцов в CSV-файлах
GoLand теперь автоматически определяет типы данных в столбцах CSV-файлов и позволяет сортировать числовые данные.
![](https://habrastorage.org/getpro/habr/upload_files/da4/eff/47a/da4eff47a56e00e620050d73056111ec.png)
MongoDB: автодополнение для filter {} и sort {}
При сортировке и фильтрации данных в коллекциях MongoDB теперь можно пользоваться автодополнением.
![mongo-completion.png mongo-completion.png](https://habrastorage.org/getpro/habr/upload_files/aa1/934/306/aa1934306ec262c90ce6b76af0fdeecf.png)
Настройка шрифта в редакторе данных
Вы можете настроить шрифт для редактора данных. Для этого перейдите в Preferences/Settings | Tools | Database | Data views | Use custom font.
![](https://habrastorage.org/getpro/habr/upload_files/161/bda/e35/161bdae353eaa7ecc068448a756ab882.png)
Обновления режима специальных возможностей
Мы исправили некоторые недочеты режима специальных возможностей: убрали всплывающее окно со списком окон инструментов и всплывающее окно для быстрого просмотра документации, которые появлялись по наведению курсора. Благодаря этому пользоваться инструментом чтения с экрана стало удобнее.
Также мы улучшили поддержку режима специальных возможностей на macOS. Во-первых, мы исправили несколько неполадок, связанных с VoiceOver. Во-вторых, теперь вы можете создавать проекты при помощи инструмента чтения с экрана. Мы убрали некоторые подсказки со звуком, чтобы снизить количество отвлекающих факторов.
На этом всё. Будем рады узнать ваши впечатления от новой версии!
Команда GoLand
ссылка на оригинал статьи https://habr.com/ru/articles/595775/
Добавить комментарий