В GoLand 2021.3 мы добавили полную поддержку Go-проектов в WSL, рефакторинг Inline для функций и методов, а также поддержку удаленной разработки в режиме Beta.
Начиная с этой версии gofmt
запускается при сохранении по умолчанию. В GoLand 2021.3 вы найдете улучшения отладчика, такие как Delve для ARM64, и опцию Show Types.
Еще мы добавили два новых шаблона постфиксного автодополнения для преобразования строк в числа, новый шаблон для табличных тестов с утверждениями testify
, а также улучшили автодополнение для значений тегов в структурах.
Как всегда, новая версия GoLand содержит улучшения для веб-разработки и работы с базами данных.
Если вы предпочитаете узнавать о новой функциональности в интерактивной форме, пройдите урок What's New in GoLand 2021.3 на начальном экране в разделе Learn.
Теперь вы можете работать с проектами в WSL с помощью SDK, загруженного в WSL.
Когда вы создаете новый проект (или открываете уже существующий) в WSL, GoLand сообщает, что для таких проектов необходимо использовать SDK в WSL. Вы можете загрузить Go SDK или выбрать уже загруженный SDK в директории \\wsl$
.
gofmt
при сохранении Опция Reformat code, которая позволяет запускать gofmt
и встроенный форматтер GoLand при сохранении файла, теперь включена по умолчанию.
Это изменение может оказаться неожиданным для некоторых пользователей, поэтому мы добавили уведомление, которое будет показываться один раз в каждом проекте. Вы можете отключить его, нажав Don’t show again.
Или нажмите Edit actions on save, и IDE откроет Settings | Tools | Actions on save, где вы можете изменить настройки.
В этой версии мы добавили рефакторинг Inline для функций и методов. Чтобы попробовать новый рефакторинг, поставьте курсор на функцию, метод или вызов и нажмите Ctrl + Alt + N.
Когда вы вызываете рефакторинг Inline, открывается окно с несколькими опциями. Из этого окна можно открыть Refactoring Preview, который помогает найти все вызовы функции или метода.
Мы улучшили автодополнение для разных стилей написания составных слов – camelCase, snake_case и т. д. – в тегах структур.
Теперь, когда вы вводите значение тега, GoLand предлагает несколько опций. Если вы выберете одну из них, IDE запомнит ваш выбор и предложит тот же стиль первым в списке для остальных тегов этой структуры.
У нас появились новые шаблоны постфиксного автодополнения для преобразований строк в числа. Введите число внутри двойных кавычек, потом точку, и GoLand предложит две опции для парсинга числа: parseInt
и parseFloat
.
Мы улучшили опцию Show Usages – теперь вы можете включить предпросмотр исходного кода для обнаруженного использования, нажав на квадратную иконку.
Вы можете придумать названия для папок на удаленной машине, где хранятся исходные и исполняемые файлы проекта. Для этого перейдите в Run | Manage targets | Additional Settings.
В этой версии GoLand мы добавили возможность настроить конфигурацию run target, которая будет использоваться по умолчанию для всего проекта. Перейдите в Run | Manage targets. Откроется окно с настройкой Project default target. Если вы выберете здесь какую-либо run target, она будет использоваться для создания всех новых конфигураций запуска.
Мы добавили в настройки SSH Configurations новую секцию HTTP/SOCKS Proxy, где вы можете настроить прокси. Новую секцию можно найти в Settings | Tools | SSH Configurations. Или из открытого проекта нажмите Run | Manage Targets | ...
У интерфейсов в Go есть две составляющие: тип и значение. Интерфейс может быть равен nil
только тогда, когда обе составляющие равны nil
.
Если у вас в программе есть интерфейс, значение которого равно нулевому указателю на int
, то сам интерфейс не будет нулевым, потому что внутренний тип не равен nil
(а равен *int
). Это может сбить вас с толку.
Чтобы распознавать такие случаи, мы изменили способ отображения интерфейсов во вкладке Variables окна Debug. Например, если у вас есть интерфейс с внутренним типом *int
и значением nil
, он будет показан так: {interface{}|*int} *int(nil)
.
GoLand больше не показывает полные имена пакетов во вкладке Variables отладчика. Теперь вы будете видеть только последнюю часть полного имени.
Если тип объекта занимает слишком много места во вкладке Variables, кликните правой кнопкой мыши в окне и отключите опцию Show Types в появившемся контекстном меню. Вы можете включить опцию тем же способом.
Начиная с этой версии GoLand включает версию Delve для ARM64, и отладка на Linux ARM работает «из коробки».
Также мы улучшили сообщения об ошибках, когда GoLand не включает версию Delve для какой-либо архитектуры. Теперь IDE явно сообщает, в чем проблема.
testify
Мы добавили новый шаблон для табличных тестов с утверждениями testify
. Если вы уже использовали утверждения testify
в своем пакете, GoLand сгенерирует код с утверждениями, когда вы нажмете Alt + Ins и выберете соответствующую опцию.
GoLand now has a quick-fix for an inspection that warns you about incorrect formatting of error strings: “Error strings should not be capitalized or end with punctuation”. Нажмите Alt + Enter, и GoLand предложит исправить форматирование сообщения.
Если у вас есть экспортированная функция, которая возвращает неэкспортированный тип, GoLand предложит быстрое исправление для экспорта этого типа.
context.TODO()
Мы добавили инспекцию, которая подсвечивает использования context.TODO()
. Вы можете включить ее в Settings | Editor | Inspections. Эта инспекция будет служить напоминанием о том, что необходимо изменить context.TODO()
, если во время написания кода было непонятно, какой контекст лучше использовать.
//TODO implement me
Мы добавили комментарий //TODO implement me
в шаблоны, которые генерируются, когда вы используете действие Implement Methods. GoLand подсвечивает, индексирует и показывает эти специальные комментарии в окне TODO, и в результате они могут служить напоминанием о нереализованных методах.
GoLand теперь поддерживает удаленную разработку в режиме Beta.
Вы можете попробовать новую функциональность Remote Development прямо на приветственном экране GoLand. Или можете использовать JetBrains Gateway, наше новое приложение, которое будет служить точкой входа для ваших удаленных машин.
Инструкции для начала работы с удаленной разработкой можно найти на этой странице.
HTTP-клиент в GoLand начал поддерживать gRPC-запросы – для них работает автодополнение. Начните запрос с ключевого слова GRPC
, и HTTP-клиент будет работать с ним как с gRPC-запросом.
Вы можете сгенерировать gRPC-запрос в HTTP-клиенте, кликнув на иконку в поле редактора в файле .proto
.
Сейчас HTTP-клиент поддерживает унарные и серверные потоковые вызовы RPC. Как и в случае с обычными HTTP-запросами, тело запроса и ответ представляют собой файлы JSON.
Мы добавили в HTTP-клиент еще несколько улучшений, о которых вы можете прочитать здесь.
Функция Checkout and Rebase onto Current позволяет извлечь выбранную ветку и переместить ее на вершину ветки, в которой вы находитесь. Теперь это действие доступно для удаленных веток.
Иногда у разработчика бывает сразу несколько коммитов, но над некоторыми он еще работает, а другие готовы к отправке. В таких случаях удобно передать в удаленный репозиторий только те коммиты, работа над которыми завершена.
Теперь вы можете отправить в удаленный репозиторий все коммиты вплоть до коммита, выбранного во вкладке Log окна Git. Для этого выберите коммит, на котором вы хотите остановиться, кликните по нему правой кнопкой мыши, чтобы вызвать контекстное меню, и выберите Push All up to Here.
Настройки системы контроля версий теперь легче найти и они лучше структурированы. Узел Version Control в Settings содержит все необходимые настройки.
Функциональность Evaluate expression теперь доступна во вкладке Variables отладчика.
Теперь можно разделять окно Run, перетаскивая вкладки в подсвеченную область. Чтобы объединить вкладки, кликните правой кнопкой мыши по верхней части панели и выберите Unsplit из контекстного меню.
У нас появилось окно Bookmarks. Отныне все файлы и папки, которые вы помечаете как важные с помощью клавиши F11, будут показаны в этом окне.
Вы можете визуализировать сравнение двух снапшотов на флейм-графе. Нажмите Shift дважды и напечатайте «Open Profiler Snapshots» в поисковой строке. Откройте снапшот из списка, повторите эти действия и откройте еще один.
Затем нажмите на кнопку Compare With Baseline, находясь во вкладке одного из снапшотов. Из меню выберите снапшот, с которым хотите сравнить. Откроется вкладка Diff, в которой вы увидите результаты сравнения.
GoLand’s terminal supports the new ConPTY API on Windows. We addressed several problems users were having with the old implementation, which was based on winpty, and enabled PTY on Windows by default.
Благодаря ConPTY в терминале теперь поддерживается 24-битный цвет.
Раньше, когда вы вводили символы в терминале, работая на удаленной машине, GoLand из-за сетевой задержки не мог отображать символы так же быстро, как если бы вы печатали на локальной машине.
Это больше не проблема, потому что мы добавили функцию опережающего ввода. Наш встроенный терминал предсказывает, какие символы вы собираетесь вводить, и сразу же отображает их в светло-сером цвете.
import
Вы можете загрузить модуль ES6, поставив курсор на URL-адрес в инструкции import и вызвав быстрое исправление. Модуль будет загружен вместе со всеми зависимостями. Чтобы попробовать, поставьте курсор на Url, нажмите Alt + Enter и выберите Download module.
Мы улучшили работу автодополнения в HTML-файлах. Теперь когда вы вводите имя тега или аббревиатуру или вызываете автодополнение, GoLand показывает подходящие варианты сразу же.
Раньше нужно было сначала ввести открывающую угловую скобку (<
). Кроме того, мы улучшили автодополнение для мнемоников.
Теперь обновить npm-пакеты до новой версии можно прямо из редактора. Откройте файл package.json
, установите курсор на версию пакета, который нужно обновить, нажмите Alt+Enter и выберите Update ‘имя пакета’ to the latest version.
У GoLand появилось действие для фронтенд-проектов, которое позволяет быстро расставить разделенные запятыми элементы на отдельные строки и, если требуется, обратно на одну строку.
Мы добавили возможность показывать Aggregate view для диапазона ячеек. Выберите диапазон ячеек, к которому вы хотите применить агрегатные функции, кликните по нему правой кнопкой мыши и выберите Show Aggregate View. Значение одной из агрегатных функций будет показано в строке состояния, и вы можете выбрать, какая это будет функция.
Если вы разделите редактор на две вкладки и откроете одну и ту же таблицу, вкладки будут полностью независимыми. Вы можете применять разные параметры фильтрации и сортировки.
У нас появилась инспекция для логических выражений в командах WHERE
и HAVING
.
Если выражение не является логическим, мы подсвечиваем его желтым и предупреждаем вас, прежде чем вы исполните запрос.
Проверка работает для баз данных ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite и Vertica. Для других баз данных такие выражения будут подсвечены как ошибки.
Теперь редактор данных позволяет выбрать сразу несколько значений и перейти к соответствующим данным.
GoLand теперь автоматически определяет типы данных в столбцах в файлах CSV, и вы можете сортировать числовые данные. Ранее данные в колонках интерпретировались как текст, и сортировка работала по-другому.
filter {}
и sort {}
Теперь при фильтрации данных в коллекциях MongoDB можно пользоваться автодополнением.
Вы можете настроить отдельный шрифт для редактора данных. Чтобы выбрать шрифт, перейдите в Settings | Tools | Database | Data views | Use custom font.
Мы исправили некоторые недочеты режима специальных возможностей, чтобы сделать работу с инструментом чтения с экрана более удобной. Мы отключили всплывающее окно со списком окон инструментов и всплывающее окно быстрого просмотра документации, которые появлялись по наведению курсора.
Поддержка режима специальных возможностей на macOS также была улучшена. Мы исправили несколько неполадок, связанных с VoiceOver, а также теперь можно создавать проекты с помощью инструмента чтения с экрана. Мы убрали некоторые подсказки со звуком, чтобы снизить количество отвлекающих факторов.