[Программирование, Go] GoLand 2020.2: улучшенная поддержка Go modules, дженерики и многое другое
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Хабр, привет!
Две недели назад мы выпустили GoLand 2020.2 и хотим рассказать про основные изменения в этом релизе.
Если коротко, то мы улучшили поддержку Go modules, сделали удобнее поиск возможных проблем и слабых мест в коде, добавили новые проверки кода.
Кроме того, вы найдете новые функции редактирования кода, экспериментальную поддержку дженериков, возможность отправлять код из редактора в Go Playground, обновления для системы контроля версий, включая поддержку WSL 2 для Git на Windows, и многое другое!
Кстати, узнавать о новой функциональности в интерактивной форме можно прямо в IDE. Пройдите урок What's New in GoLand 2020.2 на экране приветствия.
Go modules
Начиная с версии Go 1.15 можно изменить расположение кэша модулей по умолчанию с $GOPATH/pkg/mod на другую папку, используя новую переменную окружения GOMODCACHE.
Для этого укажите GOMODCACHE в Preferences/Settings | Go Modules | Environment. IDE распознает новое расположение и использует его для всех последующих действий с зависимостями.
Теперь можно закомментировать строки в файле go.mod с помощью Comment With Line Comment (Ctrl+/ на Windows/Linux и ⌘/ на macOS).
Работа с комментариями
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 уведомит о таких потенциальных ошибках и предложит быстрое исправление (quick-fix). Например, GoLand предложит переименовать Testme в TestMe.
Инспекция кода Malformed struct tag проверяет, соответствуют ли теги структур стандартам языка, и предупреждает о потенциальных проблемах в коде.
Инспекция Impossible interface type assertion анализирует выражения проверки типов v.(T), в том числе внутри оператора switch, и уведомляет пользователя, если тип 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 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-файлах.
Под капотом IDE
Если Vendoring mode включен, то вы собираете свое приложение, используя только те пакеты зависимостей, которые хранятся в папке vendor вашего проекта.
Теперь, если в проекте есть папка Vendor и включен режим Enable vendoring mode automatically в Settings/Preferences | Go | Go Modules, GoLand будет использовать только папку vendor и не будет обращаться к кэш памяти модулей.
GoLand 2020.2 запускает команды go list последовательно и показывает индикатор выполнения с информацией о количестве команд в очереди.
Система контроля версий
Поддержка WSL 2 для Git на Windows
GoLand 2020.2 позволят использовать Git из WSL 2, который изначально доступен в майском обновлении Windows 10, версия 2004. Если Git не установлен в Windows, GoLand автоматически будет искать Git в WSL и использовать его оттуда. IDE также автоматически переключится на Git из WSL для проектов, открытых из WSL (при помощи \wsl$ path).
Обновленные диалоги для работы с Git
Мы переработали диалоги Merge, Pull и Rebase для Git, сделав их более аккуратными и информативными. Также теперь легче понять, какая команда будет выполняться. И еще добавили опцию –rebase к диалогу Pull и –no-verify к диалогу Merge.
Расширенная поддержка пул-реквестов GitHub
Мы добавили полную поддержку пул-реквестов GitHub. Просматривайте, назначайте и объединяйте пул-реквесты, читайте встроенные комментарии и изучайте хронологию, отправляйте комментарии и ревью, а также принимайте изменения, не покидая GoLand.
Улучшенная презентация результатов Compare branches
Теперь, когда вы сравниваете две ветки в GoLand, вы можете увидеть коммиты обеих веток в одном окне. IDE открывает список коммитов этих веток в редакторе вместо окна VCS, где было недостаточно места для отображения всей информации.
На этом всё! Идеи улучшений мы зачастую берем из ваших отзывов и предложений, так что пишите нам здесь в комментариях, в наш баг-трекер или в Twitter.
По традиции напоминаю, что если вы уже используете IntelliJ IDEA Ultimate, то все возможности GoLand доступны прямо там, нужно просто установить плагин Go.
Спасибо за внимание!
===========
Источник:
habr.com
===========
Похожие новости:
- [Программирование, Системное программирование, Rust] Распространённые заблуждения о временах жизни в Rust (перевод)
- [Разработка веб-сайтов, JavaScript, Программирование] JavaScript: 250+ практических вопроса (список + викторина + бонус)
- [Поисковые технологии, IT-компании] Mozilla и Google продлят сделку по поиску по умолчанию в Firefox до 2023. Её оценивают в $400-450 млн в год
- [C, Алгоритмы, Программирование микроконтроллеров] stm32. Смотрим в корень
- [Программирование, Хакатоны, Kotlin, Голосовые интерфейсы] Алиса на Kotlin: превращаем код в Яндекс. Станцию
- [Программирование, Хакатоны, Машинное обучение, Робототехника] Пан или пропант. «Роснефть» интригует программистов
- Релиз языка программирования Go 1.15
- [Смартфоны, Будущее здесь, IT-компании] Google утверждает, что создала самую большую сеть обнаружения землетрясений
- [DevOps] Мастерим задание на деплой в GKE без плагинов, смс и регистрации. Одним глазком заглядываем Jenkins'у под пиджак
- [Разработка веб-сайтов, JavaScript, Программирование] Webpack: руководство для начинающих (перевод)
Теги для поиска: #_programmirovanie (Программирование), #_go, #_go_golang_goland_jetbrains, #_blog_kompanii_jetbrains (
Блог компании JetBrains
), #_programmirovanie (
Программирование
), #_go
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:46
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Хабр, привет! Две недели назад мы выпустили GoLand 2020.2 и хотим рассказать про основные изменения в этом релизе. Если коротко, то мы улучшили поддержку Go modules, сделали удобнее поиск возможных проблем и слабых мест в коде, добавили новые проверки кода. Кроме того, вы найдете новые функции редактирования кода, экспериментальную поддержку дженериков, возможность отправлять код из редактора в Go Playground, обновления для системы контроля версий, включая поддержку WSL 2 для Git на Windows, и многое другое! Кстати, узнавать о новой функциональности в интерактивной форме можно прямо в IDE. Пройдите урок What's New in GoLand 2020.2 на экране приветствия. Go modules Начиная с версии Go 1.15 можно изменить расположение кэша модулей по умолчанию с $GOPATH/pkg/mod на другую папку, используя новую переменную окружения GOMODCACHE. Для этого укажите GOMODCACHE в Preferences/Settings | Go Modules | Environment. IDE распознает новое расположение и использует его для всех последующих действий с зависимостями. Теперь можно закомментировать строки в файле go.mod с помощью Comment With Line Comment (Ctrl+/ на Windows/Linux и ⌘/ на macOS). Работа с комментариями 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 уведомит о таких потенциальных ошибках и предложит быстрое исправление (quick-fix). Например, GoLand предложит переименовать Testme в TestMe. Инспекция кода Malformed struct tag проверяет, соответствуют ли теги структур стандартам языка, и предупреждает о потенциальных проблемах в коде. Инспекция Impossible interface type assertion анализирует выражения проверки типов v.(T), в том числе внутри оператора switch, и уведомляет пользователя, если тип 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 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-файлах. Под капотом IDE Если Vendoring mode включен, то вы собираете свое приложение, используя только те пакеты зависимостей, которые хранятся в папке vendor вашего проекта. Теперь, если в проекте есть папка Vendor и включен режим Enable vendoring mode automatically в Settings/Preferences | Go | Go Modules, GoLand будет использовать только папку vendor и не будет обращаться к кэш памяти модулей. GoLand 2020.2 запускает команды go list последовательно и показывает индикатор выполнения с информацией о количестве команд в очереди. Система контроля версий Поддержка WSL 2 для Git на Windows GoLand 2020.2 позволят использовать Git из WSL 2, который изначально доступен в майском обновлении Windows 10, версия 2004. Если Git не установлен в Windows, GoLand автоматически будет искать Git в WSL и использовать его оттуда. IDE также автоматически переключится на Git из WSL для проектов, открытых из WSL (при помощи \wsl$ path). Обновленные диалоги для работы с Git Мы переработали диалоги Merge, Pull и Rebase для Git, сделав их более аккуратными и информативными. Также теперь легче понять, какая команда будет выполняться. И еще добавили опцию –rebase к диалогу Pull и –no-verify к диалогу Merge. Расширенная поддержка пул-реквестов GitHub Мы добавили полную поддержку пул-реквестов GitHub. Просматривайте, назначайте и объединяйте пул-реквесты, читайте встроенные комментарии и изучайте хронологию, отправляйте комментарии и ревью, а также принимайте изменения, не покидая GoLand. Улучшенная презентация результатов Compare branches Теперь, когда вы сравниваете две ветки в GoLand, вы можете увидеть коммиты обеих веток в одном окне. IDE открывает список коммитов этих веток в редакторе вместо окна VCS, где было недостаточно места для отображения всей информации. На этом всё! Идеи улучшений мы зачастую берем из ваших отзывов и предложений, так что пишите нам здесь в комментариях, в наш баг-трекер или в Twitter. По традиции напоминаю, что если вы уже используете IntelliJ IDEA Ultimate, то все возможности GoLand доступны прямо там, нужно просто установить плагин Go. Спасибо за внимание! =========== Источник: habr.com =========== Похожие новости:
Блог компании JetBrains ), #_programmirovanie ( Программирование ), #_go |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:46
Часовой пояс: UTC + 5