Главная » Хабрахабр » Что нового в GoLand 2018.3

Что нового в 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.yaml c базовыми настройками конфигурации и main.go файл с обработчиком запросов. А еще мы добавили новый шаблон проекта — App Engine.

Поддержка анализа дампов памяти

В этом случае помогут дампы памяти. Иногда стандартные инструменты отладки не дают полного представления о том, что происходит с программой в определенные моменты ее выполнения.

Чтобы начать анализировать дамп памяти в GoLand, выберите Open Core Dump в Run меню.

Чтобы автоматически создать аварийные дампы памяти, введите GOTRACEBACK=crash в поле Environment конфигурации Run.

Создавать дампы памяти можно только на Linux, однако анализировать можно и на macOS, и Windows.

Поддержка Testify

3 поддерживает Testify фреймворк. Запускайте тестовые наборы (suites) и методы прямо из редактора, как обычные тестовые функции. GoLand 2018.

В окне Comparison Failure сравнивайте фактическое и ожидаемое значение, если тест упал.

Инспекции кода

Появились две новые инспекции кода: Unhandled Error и Unreachable code.

Unhandled Error предупреждает о функциях и методах, которые возвращают ошибку, но проверок для обработки этой ошибки нет.

Unreachable code выявляет части кода, которые никогда не будут выполнены.

Кроме того, инспекция Function Call, которая проверяет, нужно ли преобразовывать выражение в функцию или вызов метода, теперь умеет автоматически исправлять ошибки с помощью Finish Call Expression.

Автодополнение

3 появился новый вид автодополнения для функций. В GoLand 2018. Вы знаете, что для этого должна быть функция, и скорее всего, она называется "split". Представьте, что вы новичок в мире golang и вам нужно разделить строку. Новый вид автодополнения помогает легко находить такие функции. Эта функция должна принимать строку в качестве первого аргумента, но вы не знаете точное имя функции и ее пакета.

Дважды вызовите 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 автоматически вставляет запятую в составных литералах (структуры, словари и пр.) и ставит курсор на позицию следующего утверждения.

3 можно определить набор файлов, к которым не будут применяться действия Reformat code, Optimize imports, и Rearrange. В GoLand 2018.

IDE поддерживает многострочные TODO комментарии для файлов на Go, JavaScript, TypeScript, CSS, и SCSS.

Система контроля версий

Интеграция с Git теперь отображает запросы на проверку изменений для репозитория в новом окне — GitHub Pull Requests, а также поддерживает Git submodules.

Доступность

Мы добавили новую высококонтрастную тему, и улучшили поддержку программ для чтения с экрана.

Docker

В новом поле Build конфигурации запуска Dockerfiles можно использовать следующие аргументы: cache-from, cpu-shares, cpuset-cpus, force-rm, label,memory, memory-swap, shm-size, no-cache, pull, quiet, и rm. Docker плагин поддерживает CLI-аргументы в Run-конфигурации.

Kubernetes плагин

Автодополнение кода, Rename рефакторинг, инспекции кода и быстрые исправления работают в шаблонах Helm.

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

  • Действие Attach теперь есть в меню Open Project, что позволяет добавить каталог прямо во время открытия нового проекта.
  • Теперь можно открыть проект, перетащив его в окно приветствия.
  • Activity Monitor показывает, сколько ресурсов процессора потребляют различные подсистемы и плагины: Help | Activity Monitor.
  • Поиск и обновление плагинов в IDE стал более удобным. Страница плагинов поддерживает поиск по тегам и сортировку результатов по загрузкам, имени, рейтингу, рекомендованным или обновленным.
  • Индексирование проектов происходит значительно быстрее.

Как всегда, мы будем рады услышать ваше мнение: пишите нам здесь в комментариях, в Twitter или баг-трекере 🙂 Все!

Скачать обновление можно на странице загрузки или через приложение Toolbox App.

На всякий случай напоминаю, что если вы уже используете IntelliJ IDEA Ultimate, то все возможности GoLand доступны прямо там: просто установите этот плагин.

Спасибо за внимание!


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Перевезти дата-центр за 14 400 секунд

Всем знакома пословица «Один переезд равен двум пожарам». Смысл этой народной мудрости в том, что процесс переезда сопряжен со стрессами, суетой, переживаниями и, конечно, беготней, которые бывают и при пожаре, а подчас и с утратами ценного имущества. К тому же, ...

Дорожная карта математических дисциплин для машинного обучения, часть 1

Вместо предисловия Допустим, сидя вечерком в теплом кресле вам вдруг пришла в голову шальная мысль: «Хм, а почему бы мне вместо случайного подбора гиперпараметров модели не узнать, а почему оно всё работает?»Это скользкий путь — вы думаете, что достаточно пары ...