В GoLand 2020.2 мы улучшили поддержку Go modules, сделали удобнее поиск возможных проблем и слабых мест в коде, добавили новые проверки кода. Кроме того, вы найдете новые функции редактирования кода, такие как долгожданное Add Caret Per Selected Line, экспериментальная поддержка дженериков, возможность экспортировать код из редактора в Go Playground, обновления для системы контроля версий, включая поддержку WSL 2 для Git на Windows, и многое другое!
Кстати, узнавать о новой функциональности в интерактивной форме можно прямо в IDE. Пройдите урок What's New in GoLand 2020.2 на экране приветствия.
Начиная с версии Go 1.15 можно изменить расположение кэша модулей по умолчанию с $GOPATH/pkg/mod
на другую папку, используя новую переменную окружения GOMODCACHE.
Для этого укажите GOMODCACHE в Preferences/Settings | Go Modules | Environment. IDE автоматически распознает новое расположение и использует его для всех последующих действий с зависимостями.
Теперь можно закомментировать строки в файле go.mod
с помощью Comment With Line Comment (Ctrl+/ на Windows/Linux и ⌘/ на macOS).
GoLand сразу добавляет закрывающую скобку, когда вы печатаете открывающую скобку для операторов replace, exclude и require.
IDE отображает ссылки из комментариев на соответствующие объявления на уровне пакета и позволяет перейти к ним с помощью Navigate to Declaration or Usages (⌘B на macOS и Ctrl+B/ на Windows/Linux).
Inspections Widget показывает количество предупреждений, ошибок и опечаток в текущем файле в правом верхнем углу редактора. Вы можете переходить от одной ошибки к другой с помощью стрелок или хоткея Next Error (F2).
Виджет позволяет настроить уровень подсветки (не подсвечивать ничего, подсвечивать только ошибки или подсветить все), а также изменить уровень значимости проверок или переключиться в Compact View, чтобы виджет не отвлекал вас.
Новое окно Problems показывает список предупреждений и ошибок в текущем файле с описанием этих проблем и позволяет сразу же их исправить с помощью Alt+Enter.
Чтобы открыть окно Problems, нажмите на Inspections Widget или перейдите к нему через View | Tool Window | Problems. Чтобы перейти к строке кода с ошибкой в редаторе, щелкните по ней правой кнопкой мыши.
Новая инспекция кода предупреждает о возможных проблемах преобразований string(int)
, которые возвращают UTF-8 представление точки кода Unicode x
вместо ожидаемого десятичного представления строки x
.
GoLand уведомит о таких потенциальных ошибках и предложит быстрое исправление.
GoLand предупредит о распространенных ошибках в использовании имен тестов и примеров, вам больше не нужно вызывать для этого go vet
. IDE уведомит о таких потенциальных ошибках и предложит быстрое исправление. Например, GoLand предложит переименовать Testme
в TestMe
.
Инспекция кода Malformed struct tag проверяет, соответствуют ли теги структур стандартам языка, и предупреждает о потенциальных проблемах в коде.
Инспекция кода Impossible interface type assertion проверяет утверждения типа v.(T)
и соотвествующий переключатель типов, в которых статический тип V
от v
— интерфейс, не соответствующий целевому типу интерфейса T
.
Это происходит, когда V
и T
содержат методы с одинаковым именем, но разными сигнатурами.
Чтобы посмотреть предварительный результат быстрого исправления перед его применением, вызовите Show Context Actions с помощью Alt+Enter, выберите нужное действие и нажмите ⌥+Space на macOS или Ctrl+Shift+I на Windows и Linux.
Add Caret Per Selected Line создает курсоры в конце каждой выделенной строки. Используйте Alt+Shift+G на Windows/Linux и ⌥⇧G на macOS.
Настройте перенос на новую строку для аргументов вызова, параметров функций и составных литералов в Preferences/Settings | Editor | Code Style | Go | Wrapping and Braces.
Вы также можете использовать Put arguments on separate lines и Put arguments on one line с помощью Alt+Enter, чтобы вручную разделить или объединить элементы.
Рефакторинг Introduce Variable (Ctrl+Alt+V на Windows и Linux, ⌘⌥ V на macOS) теперь умеет упаковывать аргументы в новый слайс, в то время как Inline Variable (⌥⌘N на macOS и Ctrl+Alt+N на Linux и Windows), наоборот, распаковывает их из слайса.
А при помощи быстрого исправления Unpack slice можно передать слайс последним аргументом вариативной функции.
Теперь вы можете повторно использовать проекты или файлы, сохраняя их как пользовательские шаблоны: выберите Tools | Save Project as Template. В момент создания нового проекта IDE воссоздаст дерево проекта с файлами, папками и конфигурациями сборки.
Теперь вы можете экспортировать код в Go Playground, дважды щелкнув мышью внутри редактора. Выберите Go Tools | Share in Playground в раскрывающемся меню или Tools | Go Tools | Share in Playground либо используйте горячие клавиши ⌥⇧⌘S на macOS или Ctrl+Alt+Shift+S на Windows/Linux.
Playground также работает с go2
-файлами, в этом случае GoLand использует https://go2goplay.golang.org/.
Команда Go анонсировала прототип дизайна дженериков. Подробности можно найти в черновике реализации.
GoLand 2020.2 предоставляет экспериментальную поддержку дженериков. Для работы с ними включите Enable experimental support for generics a.k.a type parameters в Settings/Preferences | Go.
Текущая реализация обеспечивает подсветку синтаксиса и базовую навигацию ссылок и работает только в go2-файлах.
Если Vendoring mode включен, то вы собираете свое приложение, используя только те пакеты зависимостей, которые хранятся в папке Vendor вашего проекта.
Теперь, если в проекте есть папка Vendor и включен режим Enable vendoring mode automatically в Settings/Preferences | Go | Go Modules, GoLand будет использовать только папку vendor и не будет обращаться к кэш-памяти модулей.
GoLand 2020.2 запускает команды go list
последовательно и показывает индикатор выполнения с информацией о количестве команд в очереди.
GoLand 2020.2 позволят использовать Git из WSL 2, который изначально доступен в майском обновлении Windows 10, версия 2004. Если Git не установлен в Windows, GoLand автоматически будет искать Git в WSL и использовать его оттуда. IDE также автоматически переключится на Git из WSL для проектов, открытых из WSL (при помощи \wsl$ path
).
Мы переработали диалоги Merge, Pull и Rebase, сделав их более аккуратными и информативными. Также теперь легче понять, какая команда будет выполняться. А еще мы добавили опцию –rebase
к диалогу Pull и –no-verify
к диалогу Merge.
Мы добавили полную поддержку пул-реквестов GitHub. Просматривайте, назначайте и объединяйте пул-реквесты, читайте встроенные комментарии и изучайте хронологию, отправляйте комментарии и ревью, а также принимайте изменения, не покидая GoLand.
Теперь, когда вы сравниваете две ветки в GoLand, вы можете увидеть коммиты обеих веток в одном окне. IDE открывает список коммитов этих веток в редакторе вместо окна VCS, где было недостаточно места для отображения всей информации.
Мы добавили полноценный редактор к ячейкам. Если в ячейке длинное значение, например XML или JSON, его удобно открыть в отдельной панели. Для этого нажмите Maximize в контекстном меню.
Теперь, прежде чем записать новые значения в редакторе данных, можно посмотреть, какой запрос будет выполнен. Для этого нажмите кнопку DML на панели инструментов.
Это не именно тот запрос, который мы запустим, потому что для редактирования данных GoLand использует JDBC-драйвер. Но в большинстве случаев то, что мы покажем, будет совпадать с тем, что реально запустится.
Просматривать и редактировать ячейки с типом boolean стало гораздо удобнее. Значения true помечены точкой, чтобы их можно было легко найти среди остальных.
В списке диалектов пополнение: Google BigQuery. Это пока еще не полноценная поддержка базы, а только правильная подсветка кода.
Новые intention-действия (Alt+Enter) сэкономят ваше время. Например, можно быстро преобразовать цикл for с числовым индексом в перебирающий метод forEach. Кроме того, стало проще просматривать документирующие комментарии в файлах JavaScript и TypeScript: мы сделали рендеринг прямо в редакторе — теперь все выглядит аккуратнее.