Что нового в GoLand

В GoLand 2021.2 мы улучшили поддержку Go modules, добавили новую опцию форматирования кода и поддержку функциональности Go 1.17. А еще вы найдете новые быстрые исправления. Например, GoLand теперь предлагает мгновенного переместить//go:build в начало файла.

Также мы улучшили интеграцию с системами контроля версий – в том числе, добавили возможность подписывать коммиты GPG-ключом. Вы найдете и много нового для веб-разработки и работы с базами данных, в частности опцию перезагрузки страницы в браузере при сохранении кода и автодополнение для полей и операторов MongoDB.

Предпочитаете узнавать о новой функциональности в интерактивной форме? Пройдите урок What's New in GoLand 2021.2 на начальном экране в разделе Learn. Если вы новичок и не знаете с чего начать, попробуйте новый Onboarding Tour. Он поможет поближе познакомиться с GoLand.

Go модули

Настройки, в которых можно изменить, как загружаются изменения файлов go.mod

Загружайте изменения файлов go.mod вручную

Вы можете контролировать, как GoLand исполняет команду go list, и вручную загружать изменения файлов go.mod.

Перейдите в Settings | Build, Execution, Deployment | Build Tools и выберите опцию External changes. В результате GoLand будет исполнять команду go list автоматически только при внешних изменениях.

Загрузка изменений в go.mod вручную с помощью специальной иконки

Вы увидите иконку Load Go modules Changes, на которую нужно кликнуть, чтобы загрузить обновления файлов go.mod.

Если снять галочку с опции Reload project after changes in the build scripts, то иконка Load Go modules Changes будет появляться при изменениях как внутренних, так и внешних.

Замена версии Go в go.mod с помощью быстрого исправления

Улучшенная поддержка версий Go

Если вы используете в коде функциональность из более новой версии Go, чем та, которая указана в go.mod, GoLand сообщит об ошибке. Для числовых литералов и //go:embed появились быстрые исправления, с помощью которых можно поменять версию языка в go.mod.

Переименованные опции создания проекта на начальном экране

Go значит Go modules

Мы сделали опцию Go на начальном экране опцией по умолчанию для проектов с Go modules. Проекты с GOPATH теперь называются Go (GOPATH).

Загрузка неиспользуемых зависимостей

Работа с неиспользуемыми зависимостями

Неиспользуемые зависимости в директивах replace теперь подсвечиваются серым. Это поможет отличить их от ошибок. Наведите курсор на серую строку и вы увидите сообщение “Unused dependency”.

Если вам нужно загрузить неиспользуемые зависимости, нажмите Alt+Enter и выберите действие Download all modules to the module cache. Каждую зависимость можно загрузить отдельно.

Форматирование

Активация опции Run gofmt on code reformat в настройках

В этом релизе у нас появилась опция Run gofmt on code reformat. Она может быть интересна тем, кто хочет использовать gofmt вместе со встроенным форматером GoLand.

Когда опция активна, вы можете с помощью Ctrl+Alt+L запускать gofmt и встроенный форматер. Это первый шаг, мы запланировали и другие изменения в использовании gofmt.

Опция активна по умолчанию, изменить настройки можно в разделе Settings | Editor | Code Style | Go.

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

Перенос объявления //go:build в начало файла

Поддержка нового синтаксиса ограничений сборки //go:build

У GoLand появилась пара быстрых исправлений, которые помогут правильно использовать старый синтаксис ограничений сборки // +build и новый синтаксис //go:build.

Первое быстрое исправление перенесет объявление //go:build в начало файла, как того требует новый синтаксис.

В Go 1.16 можно использовать либо старый синтаксис, либо оба вместе. Чтобы быстро сгенерировать объявление // +build в дополнение к //go:build, вы можете воспользоваться быстрым исправлением, которое уже готово для вас в GoLand 2021.2.

Активация поддержки cgo одним кликом

Активируйте поддержку cgo одним кликом

Если вы импортировали пакет “С”, но забыли активировать поддержку cgo в настройках проекта, GoLand предложит исправить это с помощью быстрого исправления Enable cgo support.

Опция Navigate to cgo import переместит курсор в начало названия пакета. Это поможет отыскать инструкцию импорта в большом проекте.

Отладчик

Использование режима Preview во время отладки приложения

Режим Preview теперь работает во время отладки приложения. Он позволяет открывать файлы последовательно в одной вкладке. Так вы избегаете загромождения видимой зоны редактора многочисленными открытыми вкладками.

Чтобы активировать режим Preview, перейдите в Settings | Editor | General | Editor Tabs и поставьте галочку в опции Enable preview tab.

Go 1.17

Преобразование среза в указатель на массив

В Go 1.17 срез можно будет преобразовывать в указатель на массив. GoLand не будет считать такие преобразования ошибками. Чтобы использовать функциональность Go 1.17, измените значение GOROOT на «Go 1.17» в Settings | Go.

Быстрая навигация

Переход к реализациям интерфейса, содержащимся в папке internal

Теперь Navigate to implementations работает с реализациями интерфейсов, которые находятся в папке internal. Чтобы перейти к реализациям, нажмите на значок в поле редактора слева от интерфейса. Вы также можете перейти к интерфейсу от его реализаций.

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

Настройка подписи коммитов GPG-ключом в GoLand

Подпись коммитов GPG-ключом

GoLand 2021.2 позволяет верифицировать коммиты с помощью GPG-ключа. Чтобы активировать эту функциональность, перейдите в Settings | Version Control | Git.

If this is your first time using a GPG key, you’ll first need to configure it. Если вы хотите использовать настроенный ранее ключ GPG, его можно выбрать из выпадающего списка.

Настройка новых опций в проверках перед коммитом

Новые проверки перед коммитом

В разделе проверок перед коммитом появились новые опции Run tests и Analyze code, которые позволяют тестировать и анализировать код перед коммитом. Чтобы активировать их, перейдите в Settings | Version Control | Commit | Before commit или нажмите на значок шестеренки в окне Commit.

Обратите внимание, что возможность тестировать код перед коммитом доступна только в том случае, если у вас активирована опция Use non-modal commit interface в Settings | Version Control | Commit.

Использование новой поисковой строки в окне Local History

Новая поисковая строка в Local History

Мы добавили в окно Local History новую строку поиска. Local History отслеживает изменения файла независимо от систем контроля версий. Новая строка поиска поможет быстрее найти нужный текст в изменениях файла. Чтобы попробовать новую функциональность, кликните правой кнопкой мыши на файл и перейдите в Local History | Show History.

Обратите внимание, что Local History не может служить заменой системам контроля версий. Мы рекомендуем использовать системы контроля версий по умолчанию, а обращаться к Local History только в крайнем случае, когда, например, вы не успели внести изменения в Git-репозиторий.

Список Default Changelist теперь называется Changes

Changes вместо Default Changelist

Список Default Changelist, в котором показывались файлы с изменениями, еще не внесенными в Git-репозиторий, теперь называется Changes. Раньше он назывался Default Changelist. Это обновление будет доступно по умолчанию во всех ваших новых проектах. Кроме того, операции Git больше не будут автоматически создавать changelist.

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

Вид объединенных проектов в GoLand

Новый вид объединенных проектов

Объединенные проекты в окне Project теперь представлены иначе. Раньше они показывались как дочерние папки существующего проекта. Сейчас объединенные проекты представлены как отдельные папки.

Новый раздел Advanced Settings и стрелки навигации

Advanced Settings и стрелки навигации

Мы добавили в настройки новый раздел – Advanced Settings. В нем содержатся дополнительные настройки – например, возможность изменить ширину левого отступа в режиме Distraction-free.

Также в Settings в верхнем правом углу появились стрелки. С их помощью можно переходить от одного раздела к другому и обратно.

Уведомление о необходимости обновить GoLand

Уведомления об обновлениях из JetBrains Toolbox App

GoLand уведомит вас о наличии новой версии, и вы сможете установить обновление прямо из IDE. Для этого у вас должно быть установлен JetBrains Toolbox App версии 1.20.8804 и выше.

Изменение формы курсора в настройках

Новые опции для встроенного терминала

Теперь вы можете изменить форму курсора на вертикальную линию или нижнее подчеркивание. Для этого нужно перейти в Settings | Tools | Terminal.

В настройках терминала появилось еще одно изменение. GoLand теперь поддерживает опцию Use Option as Meta key. Клавиша Meta изменяет назначение другой клавиши, если нажать их вместе. Использование клавиши Meta может быть полезным, если вы много работаете в терминале.

Изменение иконки проекта

Улучшенное окно Change project icon

Мы изменили вид окна, которое позволяет загрузить свою иконку для проекта. Чтобы загрузить иконку, кликните на название проекта в списке проектов на начальном экране и в контекстном меню выберите опцию Choose project icon.

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

Страница в браузере обновляется при сохранении кода

Перезагрузка страниц в браузере при сохранении изменений

Теперь GoLand может автоматически обновлять страницы в браузере, когда вы изменяете и сохраняете файлы HTML, CSS и JavaScript.

Перезагрузка страниц при сохранении кода включена по умолчанию. Чтобы изменить настройки, перейдите в Settings | Build, Execution, Deployment | Debugger | Built-in Server.

Переименование хуков в React

Рефакторинг для хуков useState в React

Рефакторинг Rename теперь работает для хуков useState в React. Просто поставьте курсор на значение состояния и вызовите рефакторинг Rename с помощью сочетания клавиш ⇧+F6 или кликните правой кнопкой мыши и выберите Refactor | Rename.

GoLand добавляет недостающую инструкцию require

Автоматический импорт для require()

GoLand уже умеет добавлять недостающие инструкции import для ES6-символов, и теперь такая же функция доступна для модулей CommonJS – инструкции require добавятся в код при выполнении Code completion.

GoLand показывает доступные версии частного пакета npm

Автодополнение кода для частных npm-пакетов

Автодополнение кода теперь работает для частных пакетов npm. GoLand покажет данные о последних версиях таких пакетов, как и в случае с публичными пакетами.

Использование стандарта web-types с фреймворком Vue

Расширенная поддержка web-types

Мы запускаем новую версию web-types – стандарта для документирования различных фреймворков. Первая версия web-types включала в себя поддержку Vue.js.

Мы хотим построить новую архитектуру, которая будет поддерживать новые JavaScript-фреймворки и улучшит поддержку для уже существующих фреймворков. Чтобы лучше понять, как использовать web-types в своих проектах, вы можете прочитать пост в блоге WebStorm или посмотреть вебинар.

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

Автодополнение кода в консоли MongoDB

Code completion теперь работает в консоли MongoDB для полей, вложенных полей и полей внутри агрегатных выражений. Также автодополнение работает для операторов запроса и проекции, операторов обновления и стадий агрегирования.

Другие изменения

Настройка действий при сохранении кода

Действия при сохранении кода

Мы собрали в одно место все действия, которые можно запускать при сохранении кода. Теперь вы можете настроить их в Settings | Tools | Actions on Save. Просто поставьте галочку в чекбоксе рядом с действием, которое хотите активировать.

Также можно применить расширенные настройки. Для этого наведите курсор на действие, кликните на ссылку с настройками конфигурации и измените настройки на появившейся странице.

Удаление кеша и логов вручную

Автоматическое удаление кеша и логов

GoLand автоматически удалит кеш и логи, которые последний раз обновлялись более 180 дней назад. Этот процесс не затрагивает ваши системные настройки и плагины.

Вы можете удалить кеш и логи вручную с помощью действия Help | Delete Leftover IDE Directories.

Как настроить проверку опечаток и грамматики

Проверка опечаток и грамматических ошибок в файлах Go

Мы активировали проверку опечаток и грамматических ошибок в файлах Go по умолчанию. Проверка возможна благодаря плагину Grazie, который включен в GoLand.

Чтобы изменить настройки, перейдите в Settings | Editor | Natural Languages | Grammar.

Пользовательский интерфейс GoLand на китайском

Локализация интерфейса на китайский, корейский и японский языки

У GoLand теперь есть полностью локализованный пользовательский интерфейс на китайском, корейском и японском языках. Локализация доступна в виде плагинов, которые не включены в IDE и могут быть установлены из репозитория.

Code With Me

GoLand показывает, какие опции автодополнения видят ваши коллеги во время сессии Code With Me

Теперь вы можете видеть, какие опции автодополнения кода GoLand показывает вашим коллегам во время сессии Code With Me. Чтобы использовать эту функциональность, нужно быть в режиме Following.