Привет, Хабр!

В конце прошлой недели вышла GoLand 2018.1! Для нашей команды этот релиз особенный, — это первое крупное обновление IDE с момента ее запуска четыре месяца назад. Подсказки при редактировании, и навигация по коду, которыми наша команда гордится, стали еще более умными и удобными. Интеграция со многими инструментами доведена до ума. В обновлении поддерживаются частичные коммиты Git, интеграция с Dep, возможность отладки локальных процессов Go, улучшена поддержка Docker Compose, добавлены подсказки при редактировании файлов Kubernetes, и многое другое.



Ниже подробнее о том, что попало в релиз.

Рефакторинги

В этом обновлении мы добавили рефакторинг Move. С его помощью можно быстро переместить в другой файл в пределах одного пакета любой символ верхнего уровня:



Алгоритм предложения имен, используемый Extract Variable, теперь учитывает контекст и избегает коллизий имен.

Рефакторинг Rename для глобальных символов теперь работает гораздо быстрее (как и Find Usages).

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

Булево выражение, подсказанное комплишеном, теперь можно выбрать с одновременным отрицанием, нажав "!":



Если курсор расположен справа от оператора возврата внутри функции, автодополнение предлагает значения по умолчанию в соответствии с типом значения, возвращаемого функцией:



В новой версии добавились два шаблона Postfix Completion.

• Новый шаблон «.if» преобразует булево выражение в оператор if:



• Новый шаблон «.p» подставляет в начало выражения оператор указателя.

Intention actions

В обновлении появилось несколько новых Intention actions, например Flip for binary expressions, Negate recursively и Negate для булевых выражений:



Помимо Negate, для выражения if теперь также можно использовать Invert:



Другие вспомогательные инструменты

Вот еще некоторые улучшения, которые помогут вам в работе:

  • Механизм автоматического импорта стал умнее и теперь срабатывает, только если полученный код компилируется без ошибок.
  • Если курсор находится на вызове из цепочки или на строковом литерале, по нажатию Enter IDE автоматически форматирует полученный код.
  • Редактор теперь может удалять операторы импорта для неиспользуемых пакетов прямо во время работы в редакторе. Этот параметр называется Optimize imports on the fly. Его можно включить в разделе Settings | Go | Imports.
  • Всплывающее окно Quick Documentation теперь учитывает примеры функций и включает их в состав документации. Если кликнуть на имя функции-примера, IDE откроет Scratch File с кодом этой функции:



Scratch Files

Эти самые Scratch Files, с которыми вы, возможно, уже успели поэкспериментировать, предоставляют сеанс редактирования в стиле Go Playground с полной поддержкой IDE. В новой версии они тоже стали лучше. Во-первых, в Scratch File, созданный из выделенного кода Go, теперь автоматически добавляются все необходимые импорт выражения. Во-вторых, такие файлы теперь создаются из шаблонов, которые можно настроить в разделе Settings | Editor | File and Code Templates.

Отладчик

В новой версии отладчик можно прикреплять к локально выполняемым процессам. Для этого достаточно кликнуть Run в главном меню и выбрать Attach to Local Process:



IDE предложит выбрать процесс для отладки:



После выбора процесса открывается окно инструмента Debugger и начинают действовать точки останова.

Dep

Еще одна важная новость — в последнем обновлении появилась поддержка инструмента dep для управления зависимостями.

Когда импортируется существующий проект dep, IDE обнаруживает dep и просит включить интеграцию с ним.

Если при работе с проектом dep открыть файл, в котором есть неразрешенный оператор импорта, IDE предлагает quick-fix, запускающий dep ensure:



Поддержка Go 1.10

Все инструменты IDE для работы с кодом обновлены и полностью поддерживают все возможности Go 1.10.

Стиль кода

Среди параметров Code Style появилось несколько новых: Use back quotes for imports, Add parentheses for a single import и Add leading space to comments.

VCS

Еще одно крупное новшество в последнем обновлении — наконец-то появилась поддержка частичных коммитов Git.

Теперь можно выбирать, какие именно изменения в файле необходимо включить в коммит:



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



Во всплывающем окне Git Branches появились новые действия для перебазирования: Abort Rebase, Continue Rebase и Skip Commit.

И наконец, окно инструмента VCS теперь позволяет группировать изменения по репозиториям.

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

Предварительный просмотр во всплывающем окне Replace in Path теперь работает, даже если использовано регулярное выражение.

Любую папку из окна инструмента Project теперь легко открыть в окне терминала. Для этого используется действие Open in Terminal.

Кроме того, IDE теперь правильно обрабатывает дробные коэффициенты масштаба при использовании нескольких мониторов HiDPI.

Производительность

В новой версии можно повысить производительность IDE, ограничив для проекта область индексирования, например, чтобы не индексировать весь GOPATH.

JavaScript/TypeScript

Поддержка фронтэнд-технологий, таких как TypeScript и JavaScript значительно улучшилась благодаря достижениям команды WebStorm.

Вот самые важные изменения:

  • Поддержка TypeScript 2.7
  • Новый quick-fix Surround with type guard для «unresolved» свойств.
  • Рефакторинг Rename для классов также предлагает переименовать файл. Этот рефакторинг теперь можно вызвать через Intention action на классе.
  • Если установлен пакет Prettier, в IDE появляется действие Reformat with Prettier.
  • Новый рефакторинг Extract a Vue component.
  • Стало удобнее работать с менеджерами пакетов. Теперь можно явным образом выбрать npm или Yarn для установки зависимостей и запуска скриптов.
  • Если вы уже перешли на Webpack 4, IDE предлагает подсказки для имен параметров в файле конфигурации webpack.
  • Скрипты npm теперь можно выполнять прямо из редактора с помощью иконок на левой панели, подобно тестам.

Разное

Наконец, нельзя не упомянуть новый плагин для Kubernetes:



Подробнее о работе с плагином можно узнать в посте в блоге IntelliJ IDEA.

Вот такой длинный список. Надеемся, что вам пригодится что-нибудь из этого. А если нет, расскажите нам, чего вам не хватает или что хотелось бы добавить.

Подробнее узнать об этих и других изменениях можно на странице What’s New.

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

??Как всегда, будем рады вашим отзывам и постараемся ответить на любые вопросы.

Приятной разработки!

Комментарии (4)


  1. Legion21
    04.04.2018 15:23
    +1

    На Mac OS только дебаггер теперь не работает, когда в планах это поправить? (касяки в delve)


    1. andreycheptsov Автор
      04.04.2018 15:40

      На этой недели будет апдейт и для 2017.3 и 2018.1.


    1. andreycheptsov Автор
      04.04.2018 15:47
      +1

      Два воркэраунда описано в тикете: youtrack.jetbrains.com/issue/GO-5527
      Мы ждем новостей от команды Delve для починки проблемы.


  1. WebProd
    04.04.2018 20:56

    Можно ли добавить go tools: dep init?