Что нового в GoLand 2018.3
Привет, Хабр!
На прошлой неделе вышла новая версия GoLand 2018.3.
В этом обновлении вы найдете множество улучшений для отладки и тестирования. Это отладка приложений на платформе Google App Engine, Testify фреймворк, анализ дампов памяти и Mozilla rr.
Появился новый Change Signature рефакторинг, инспекции кода и автодополнение для функций.
Кроме того, мы добавили поддержку для диаграмм, улучшили Rename и Inline рефакторинги, работу с шаблонами Go (text/html) и системой контроля версий для Git, Docker и Kubernetes плагины, и многое другое.
Change Signature рефакторинг
Рефакторинг Change Signature изменяет сигнатуру функций и методов. Он помогает задать новое имя или переместить, переименовать, добавить или удалить параметры.
Если меняете сигнатуру метода, GoLand предложит обновить реализации.
Перед тем как применить рефакторинг, посмотрите, что получится в панели предварительного просмотра.
Список всех файлов и объектов, к которым применяется рефакторинг, отображается в панели. Если нужны подробности, из панели можно перейти к любому изменяемому символу в проекте. Если результат не соответствует ожиданиям, изменения можно отменить.
Rename и Inline рефакторинги
Rename теперь предупреждает о потенциальных конфликтах в результате переименования. Мы добавили диалог, который сообщает о проблеме и предлагает сделать выбор: игнорировать конфликт, рассмотреть или отменить рефакторинг.
Результат применения Inline рефакторинга теперь видно сразу: GoLand подсвечивает измененный код.
Отладка приложения на платформе Google App Engine
В новой версии отладчик позволяет локально запускать и отлаживать приложения на платформе Google App Engine.
А еще мы добавили новый шаблон проекта — App Engine. Он содержит app.yaml
c базовыми настройками конфигурации и main.go
файл с обработчиком запросов.
Поддержка анализа дампов памяти
Иногда стандартные инструменты отладки не дают полного представления о том, что происходит с программой в определенные моменты ее выполнения. В этом случае помогут дампы памяти.
Чтобы начать анализировать дамп памяти в GoLand, выберите Open Core Dump в Run меню.
Чтобы автоматически создать аварийные дампы памяти, введите GOTRACEBACK=crash
в поле Environment конфигурации Run.
Создавать дампы памяти можно только на Linux, однако анализировать можно и на macOS, и Windows.
Поддержка Testify
GoLand 2018.3 поддерживает Testify фреймворк. Запускайте тестовые наборы (suites) и методы прямо из редактора, как обычные тестовые функции.
В окне Comparison Failure сравнивайте фактическое и ожидаемое значение, если тест упал.
Инспекции кода
Появились две новые инспекции кода: Unhandled Error и Unreachable code.
Unhandled Error предупреждает о функциях и методах, которые возвращают ошибку, но проверок для обработки этой ошибки нет.
Unreachable code выявляет части кода, которые никогда не будут выполнены.
Кроме того, инспекция Function Call, которая проверяет, нужно ли преобразовывать выражение в функцию или вызов метода, теперь умеет автоматически исправлять ошибки с помощью Finish Call Expression.
Автодополнение
В GoLand 2018.3 появился новый вид автодополнения для функций. Представьте, что вы новичок в мире golang и вам нужно разделить строку. Вы знаете, что для этого должна быть функция, и скорее всего, она называется »split
». Эта функция должна принимать строку в качестве первого аргумента, но вы не знаете точное имя функции и ее пакета. Новый вид автодополнения помогает легко находить такие функции.
Дважды вызовите Basic completion (Ctrl + Space + Space), чтобы просмотреть все доступные варианты завершения.
Intention actions
Add format string argument генерирует спецификатор формата для заданного выражения, вставляет спецификатор в форматную строку и передает выражение в качестве аргумента спецификатора.
Generate Constructor создает специальную функцию для инициализации структур.
Generate getter/setter теперь позволяет редактировать параметры сгенерированной функции.
Generate Constructor, Generate getter/setter, и Generate getter and setter теперь доступны через Generate меню.
Отладчик
В диалоге Evaluate Expression и панели Watchers теперь есть автодополнение, инспекции и автоматическое исправление ошибок.
Шаблоны Go (html/template)
В шаблонах Go (html/template) работают автодополнение кода и Rename рефакторинг, появилась возможность переходить от любого символа к местам его использования, и улучшилось форматирование.
Mozilla rr
Мы добавили поддержку rr от Mozilla в отладчик на Linux. Записывайте и воспроизводите ход выполнения программы, используя всего две кнопки. Для начала отладки нужно установить Mozilla rr.
В остальном, все работает так же, как и в стандартном отладчике, за исключением специальной кнопки Rewind для Mozilla rr. Она запускает программу назад до предыдущей точки останова.
Диаграммы
Мы добавили поддержку диаграмм для визуализации:
- зависимостей внутри Go modules проектов;
- отношений между импортируемыми и экспортируемыми модулями в JavaScript и TypeScript проектах;
- связей между таблицами в базах данных и SQL.
Поиск и навигация
Диалоги Find in Path и Replace in Path теперь работают с многострочными фрагментами кода.
Окно поиска, Search Everywhere, работает быстрее и объединяет в себе Go to type, Go to file, Go to symbol, и Find действия. Используйте TAB, чтобы переключаться между между вкладками.
Улучшения в редакторе кода
Новые иконки в редакторе не только подскажут, что нужно переопределить методы, но и помогут в один клик перейти от одного такого имени к другому.
Complete Current Statement автоматически вставляет запятую в составных литералах (структуры, словари и пр.) и ставит курсор на позицию следующего утверждения.
В GoLand 2018.3 можно определить набор файлов, к которым не будут применяться действия Reformat code, Optimize imports, и Rearrange.
IDE поддерживает многострочные TODO комментарии для файлов на Go, JavaScript, TypeScript, CSS, и SCSS.
Система контроля версий
Интеграция с Git теперь отображает запросы на проверку изменений для репозитория в новом окне — GitHub Pull Requests, а также поддерживает Git submodules.
Доступность
Мы добавили новую высококонтрастную тему, и улучшили поддержку программ для чтения с экрана.
Docker
Docker плагин поддерживает CLI-аргументы в Run-конфигурации. В новом поле Build конфигурации запуска Dockerfiles можно использовать следующие аргументы: cache-from, cpu-shares, cpuset-cpus, force-rm, label,
memory, memory-swap, shm-size, no-cache, pull, quiet,
и
rm.
Kubernetes плагин
Автодополнение кода, Rename рефакторинг, инспекции кода и быстрые исправления работают в шаблонах Helm.
Другие изменения
- Действие Attach теперь есть в меню Open Project, что позволяет добавить каталог прямо во время открытия нового проекта.
- Теперь можно открыть проект, перетащив его на окно приветствия.
- Activity Monitor показывает, сколько ресурсов процессора потребляют различные подсистемы и плагины: Help | Activity Monitor.
- Поиск и обновление плагинов вIDE стал более удобным. Страница плагинов поддерживает поиск по тегам и сортировку результатов по загрузкам, имени, рейтингу, рекомендованным или обновленным.
- Индексирование проектов происходит значительно быстрее.
Все! Как всегда, мы будем рады услышать ваше мнение: пишите нам здесь в комментариях, в Twitter или баг-трекере:)
Скачать обновление можно на странице загрузки или через приложение Toolbox App.
На всякий случай напоминаю, что если вы уже используете IntelliJ IDEA Ultimate, то все возможности GoLand доступны прямо там: просто установите этот плагин.
Спасибо за внимание!