В GoLand 2020.3 вы можете сдампить и отфильтровать горутины приложения, точечно запустить табличные тесты и воспользоваться расширенной поддержкой Testify фреймворка. Вы также найдете новую функциональность для редактирования кода, включая поддержку пакета time, улучшения пользовательского интерфейса, много нового для веб-разработки и работы с базами данных, а также сервис для совместной разработки и парного программирования.
Кстати, узнавать о новой функциональности в интерактивной форме можно прямо в IDE. Пройдите урок What's New in GoLand 2020.3 на начальном экране.
Новая иконка Dump Goroutines в отладчике позволяет быстро находить горутины с определенной строкой в стеке во время отладки. Просто кликните на иконку, чтобы открыть дамп в отдельном окне.
Чтобы сфокусироваться на действительно важной информации, вы можете скрыть одну или несколько горутин с одинаковым стеком. Выберите необходимое действие, кликнув правой кнопкой на горутину в выпадающем меню, чтобы переместить ее в раздел Hidden.
Теперь, когда вы используете конфигурацию Go Remote, можно остановить процесс отладки, если вы уверены, что повторное подключение к процессу больше не потребуется.
В настройках вы можете задать поведение отладчика при отключении: Stop remote Delve processes, Leave it running или указать, чтобы GoLand каждый раз предлагал вам эти опции.
Теперь можно запускать отдельные табличные тесты и переходить к ним из окна Run.
Ограничения:
fmt.Sprintf()
с %s
или %d
. Если имя подтеста в тестовой функции является строковым значением, IDE позволит запустить suite.Run
и suite.T().Run
отдельно. Чтобы избежать повторного запуска всего теста целиком, теперь можно перезапустить только подтест из окна Run.
В дополнение теперь можно запускать Testify наборы с одним и тем же методом отдельно внутри одного теста.
Когда вы пишете функцию или метод, которые принимают testing.T
в качестве первого аргумента, GoLand предложит для него автоматическое дополнение. Оно работает для функций и методов из пакетов testify/assert
, testify/require
, testify/mock
и testify/suite
.
Инспекция кода Incorrect usage of Println/Printf like functions предупредит о потенциальных проблемах в пакетах github.com/pkg/errors
, github.com/sirupsen/logrus
и go.uber.org/zap
.
Также мы добавили подсветку плейсхолдеров и свернутых кусков кода. Для генерации плейсхолдеров в форматируемых строках, вы можете воспользоваться intention-действием Add format string argument.
Инспекция кода context.CancelFunc is not called сообщает о небезопасной отмене контекстов. Это особенно полезно, когда функция отмены, возвращаемая context.WithCancel
или похожими по значению функциями, не была вызвана на одном из путей выполнения.
Узнать больше про этот пакет можно здесь: https://golang.org/pkg/context/.
Мы добавили поддержку пакета time, чтобы вам было проще работать с форматированием дат и времени. Автодополнение (Ctrl+Space) предложит элементы шаблонов для YYYY
, MM
, DD
, определенных в стандарте ISO-8601.
Также мы добавили подсветку синтаксиса. А если нажать <0>Ctrl+P0> на ключе, то IDE покажет его значение. Кроме того, автодополнение кода предлагает стандартные шаблоны дат из пакета time.
IDE теперь показывает первыми в списке автодополнения пакеты, которые вы часто используете или которые явно объявлены в файле go.mod
вашего проекта.
Мы также добавили возможность полностью исключить пакеты из пути импорта и автодополнения. Это можно сделать с помощью Alt+Enter или в окне Exclude for import and completion в разделе Settings | Go | Imports|.
GoLand помогает быстрее обнаружить затененные переменные:
Руководствуясь последним обновлением прототипа дженериков от команды Go, мы добавили поддержку квадратных скобок вместо круглых.
Обратите внимание, что поддержка Enable generics (experimental support for type parameters) отключена по умолчанию в Settings | Go. Чтобы начать использовать эту функциональность, необходимо явно отметить этот флажок.
Читайте этот блог пост, чтобы узнать больше о параметрах-типах.
При вводе func
в тестовом файле, GoLand предложит bench
и test
Live Templates в списке автодополнения.
Когда вы пишете for
внутри бенчмарка, IDE предложит автодополнение в виде цикла с b.N
.
При нажатии на Alt+Enter, рекомендации по исправлению теперь находятся в основном списке. В дополнение мы улучшили качество проверки грамматики для английского языка и добавили поддержку 10 новых.
GoLand 2020.3 поддерживает Code With Me (EAP) — наш новый сервис для совместной разработки и парного программирования. С его помощью вы и ваша команда можете вместе работать над проектами прямо из своих IDE.
Мы переработали начальный экран, чтобы предоставить вам мгновенный доступ к:
Выберите опцию Sync with OS в Settings | Appearance & Behavior | Appearance | Theme, чтобы синхронизировать тему IDE с настройками вашей операционной системы.
Разделите главный экран редактора по горизонтали или вертикали, просто перетащив вкладку в удобное для вас место. Редактор подсветит место, где она может быть закреплена.
Мы улучшили UX при работе с файлами в панели Project. Выберите файл в панели и нажмите на пробел, чтобы IDE открыла вам его предварительный просмотр. При открытии файла из Project фокус автоматически переносится в редактор, что позволяет сразу же начать работу с кодом.
Открыть несколько файлов в редакторе одновременно теперь можно с помощью набора клавиш. Выберите файл в Project и нажмите Shift+Enter, чтобы IDE разделила окно Editor и открыла файл в правой его части.
Меню VCS теперь адаптировано к используемой в настоящее время системе управления версиями, что облегчает доступ к ключевым функциям VCS, так как они больше не скрыты в подменю.
В новой версии появилась поддержка добавления содержимого рабочей директории в индекс (Git staging). Добавлять файлы можно из окна Commit, а также прямо из редактора.
Чтобы включить эту функциональность, выберите опцию Enable staging area в Settings | Version Control | Git. Как только вы это сделаете, поддержка списка изменений будет отключена.
В интерфейсе вы увидите все измененные файлы в коммите (добавленные и не добавленные). Нажмите на значок +, чтобы добавить файлы. Файлы появятся в новом узле Staged. Вы также можете добавлять файлы на стейджинг через поле редактора или вкладку Show Diff.
А вот список улучшений при работе с ветками:
Мы добавили возможность включения плагинов для текущего проекта или всех проектов с помощью опций Enable for Current Project или Enable for All Projects. В Settings | Plugins нажмите на значок шестеренки на странице плагина, который вы хотите включить или выключить, и выберите нужную опцию.
Раскладка macOS System Shortcuts в (Settings | Keymap) предоставляет альтернативную macOS раскладку. Она лучше совместима с системными шорткатами и меньше использует F-клавиши для часто используемых действий.
Мы улучшили поиск по флейм-графу в профилировшике и его визуализацию. Вы можете нажать на иконку лупы или ввести запрос в поле поиска внутри панели.
Также мы добавили стрелки для быстрой навигации между результатами, возможность поиска по всему флейм-графу или в определенном поддереве.
Благодаря команде WebStorm, GoLand предлагает вам комфортную среду для веб разработки. Например, реализовать недостающие React компоненты теперь проще простого! Поставьте курсор на нужный компонент, нажмите Alt+Enter и выберите нужный вариант.
GoLand 2020.3 полностью поддерживает менеджер зависимостей pnpm наряду с npm и yarn. Если у вас установлен pnpm и вы откроете проект с pnpm-lock файлом, GoLand поменяет менеджер зависимостей автоматически. Также мы добавили pnpm в список менеджеров зависимостей: Settings | Languages and Frameworks | Node.js and NPM.
В GoLand 2020.3 можно выбрать между ручной и автоматической идентификацией конфигурационных файлов. Эту опцию можно найти в Settings | Languages & Frameworks | JavaScript | Webpack.
Благодаря команде DataGrip, GoLand расширил семейство поддерживаемых баз данных. Встречайте – Couchbase! Важно отметить, что IDE поддерживает Couchbase Query, а не Couchbase Analytics.
DataGrip теперь знает о правах доступа и показывает их в сгенерированном DDL для объекта. Это работает для MySQL, PostgreSQL, Greenplum, Redshift и SQL Server.
Мы улучшили в редакторе несколько вещей:
Мы добавили два новых формата, чтобы облегчить вам работу с данными:
INSERT
для нескольких строк. Кроме того, в CSV-форматах появилась новая опция: never quote values.