Сегодня мы выпустили GoLand 2019.2 и спешим рассказать вам о том, что появилось в новой версии.
Поддержка вызовов функций во время отладки
Теперь можно выяснить, что происходит с выражением в любой момент выполнения программы.
Обратите внимание, что эта функциональность создана на основе экспериментальной поддержки вызовов функций в Delve и Go Runtime.
Если вы столкнетесь с ошибками или проблемами, связанными с поддержкой вызовов функций, сообщайте о них в нашем трекере.
Улучшенные цветовые схемы Default и Darcula
В версии 2019.2 мы разнообразили семантическую подсветку кода в цветовых схемах Default и Darcula.
Изменение помогает быстрее разобраться в коде и вникнуть в его логику. Теперь легче отличать имена пакетов от переменных, встроенные конструкции кода — от ваших собственных, а преобразования типов — от вызовов функций.
Кроме того, ресиверы методов и вызовы функций получили отдельные цвета. Как обычно, вы можете настроить схемы на свой вкус в меню Settings/Preferences | Editor | Color Scheme.
Обновления отладчика
Больше информации о переменных с методом String(), Error() и DebugString()
Результаты реализаций методов String(), Error() и DebugString() можно посмотреть в панели Variables. Поддерживаются методы, состоящие из одной инструкции return, без сложной логики.
Удобный формат отображения специальных типов
В GoLand 2019.2 значения выражений типа time.Time, time.Duration и net.IP отображаются в удобном для чтения формате на панели Variables.
Формат целочисленных переменных по умолчанию
Вы можете выбрать формат отображения в отладчике целочисленных переменных по умолчанию: двоичный, десятичный или шестнадцатеричный. Установите нужный формат в разделе Settings/Preferences | Build, Execution, Deployment | Debugger | Data Views | Go.
Поддержка функциональности Go 1.13
GoLand 2019.2 поддерживает двоичные целочисленные литералы и битовые сдвиги на знаковое целое, которые появятся в версии Go 1.13.
Подробности читайте в официальном блоге Go (на английском).
GoLand подсвечивает ошибки в коде и корректно отображает вывод в консоли.
О новых возможностях Go 1.13 и об их поддержке в GoLand 2019.2 читайте в этой статье (на английском).
Пользовательские шаблоны постфиксного автодополнения
GoLand 2019.2 позволяет создавать собственные шаблоны постфиксного автодополнения.
Перейдите в раздел Settings/Preferences | Editor | General | Postfix Completion, нажмите «+», выберите Go, создайте шаблон и укажите область его применения. Подробнее о создании шаблонов читайте в этой статье (на английском).
Кроме того, вы можете использовать новый предопределенный шаблон постфиксного автодополнения — .aappend. С его помощью к началу выражения добавляется встроенный вызов функции append и выражению присваивается его результат.
Быстрые исправления на основе рефакторинга Change Signature
Мы добавили быстрые исправления на основе рефакторинга Change Signature. Например, чтобы автоматически вывести и добавить параметр в вызов функции или добавить недостающие возвращаемые параметры в сигнатуру функций и методов, достаточно нажать Alt+Enter.
Поддержка return-выражений в Extract Method
Рефакторинг Extract Method теперь умеет извлекать код с return-выражениями.
Если код всегда заканчивается на return, он будет извлечен без изменений. В противном случае извлеченный метод будет иметь дополнительное логическое значение в качестве возвращаемого значения. Оно будет использовано для преждевременного выхода из функции на стороне вызова.
Улучшения автодополнения кода
Автодополнение предлагает варианты для полей и методов структуры, даже если ресивер явно не указан.
Усовершенствованные интеграции Go Modules и dep
В GoLand 2019.2 интеграции Go Modules и dep включаются автоматически при обнаружении проекта соответствующего типа. В предыдущих версиях GoLand отключал индексацию GOPATH и отображал уведомление о возможности включения интеграции Go Modules или dep. Мы заметили, что этого было недостаточно, поскольку уведомление можно случайно пропустить или проигнорировать и в результате получить проект, сконфигурированный только наполовину.
Если вам такое поведение не подходит, вы можете в любой момент вручную отключить интеграцию в разделе Settings/Preferences | Go | Go Modules (vgo).
Инспекции кода
Избыточные преобразования типов
Инспекция кода Redundant type conversions предупреждает об избыточных преобразованиях типов, которые можно опустить.
Валидация индексов слайсов в литералах
Мы добавили валидацию индексов слайсов в составных литералах. Теперь IDE предупредит вас о том, что индекс должен быть неотрицательной целочисленной константой, прежде чем вы скомпилируете проект.
Редактирование кода
Поддержка escape-последовательностей
Поддержка escape-последовательностей в строковых литералах включает в себя:
- Подсветку кода.
- Инспекцию, которая предупредит о потенциальных проблемах.
- Умное редактирование, распознающее местонахождение escape-последовательностей.
- Более точную проверку орфографии.
Кроме того, специальные символы в форматной строке (%s, %d, и т.п.) теперь выделяются другим цветом, чтобы их было проще разглядеть в длинной строке. Цвет можно настроить в разделе Settings/Preferences | Editor | Color Scheme | Language Defaults | String | Escape Sequence | Valid. Отдельно для Go — в Settings/Preferences | Editor | Color Scheme | Go | String | Valid escape.
Действие Fill Fields
В GoLand стало проще заполнять поля структур. Во-первых, в специальном окне вы можете выбрать, какие поля следует заполнить. Во-вторых, сгенерированные значения теперь можно редактировать. Наконец, это действие теперь доступно через автодополнение.
Усовершенствованная функция Extend Selection
Действие Extend Selection теперь корректно расширяет область выделения кода в соответствии с семантикой — от строки до блока кода, разделенного пустыми строками (вместо выделения всего тела метода).
Улучшения интерфейса
Обновленный диалог New | File
Мы обновили диалог New | File: теперь это всплывающее окно со списком всех возможных параметров для создания файла определенного типа. Раньше приходилось раскрывать список, чтобы выбрать альтернативную опцию, а теперь все доступные параметры видны сразу.
Улучшенная страница плагинов
Теперь GoLand сразу показывает всю информацию о плагинах — больше не нужно открывать страницы с описанием каждого плагина по отдельности. Новые команды в раскрывающемся меню позволяют включить или отключить все скачанные плагины разом. Кнопка Update теперь располагается рядом с названием плагина во вкладке Installed. Вкладку Updates мы удалили: она больше не нужна.
Обновленное окно Find
В окне Find мы сгруппировали некоторые редко используемые значки, а другие и вовсе удалили.
Общие изменения
Новые области для Scope
В раскрывающемся списке Scope появились новые области доступа: Recently Changed Files, Recently Viewed Files, Files in Previous Search Result и Selection. Вы также можете выбрать области источников данных: Data Sources. Кроме того, теперь можно указать область применения для рефакторинга Rename. Дважды нажмите Shift+F6 для вызова окна рефакторинга Rename и выберите, где будет выполняться переименование.
Новая опция для перемещения курсора
В GoLand 2019.2 изменился механизм действия Move Caret to Next Word: теперь IDE по умолчанию перемещает курсор в конец текущего слова. Однако вы можете настроить поведение, как считаете нужным. Перейдите в раздел Settings/Preferences/Settings | Editor | General и выберите, куда следует перемещать курсор: в конец текущего слова, в начало следующего слова или между словами.
Больше информации на панели Project
Включите опцию In-place Descriptions в меню View для отображения на панели Project информации о размере файла, а также дате и времени его изменения.
Улучшения в поддержке VCS
Коммит из вкладки Local Changes
GoLand 2019.2 предоставляет возможность сделать коммит прямо из вкладки Local Changes.
Теперь, работая над коммитом, вы можете просматривать исходный код, историю изменений отдельного файла и diff для файла в той же области, что и коммит, а также использовать другие функции IDE.
Чтобы включить эту функцию и делать коммиты из вкладки Local Changes, не используя отдельное диалоговое окно, перейдите в раздел Settings/Preferences | Version Control | Commit Dialog и установите флажок Commit from the Local Changes without showing a dialog.
Улучшенная поддержка файлов .gitignore
GoLand корректно подсвечивает все игнорируемые файлы и предлагает варианты автодополнения для имен файлов и папок. Также теперь можно быстро добавить файл в .gitignore из контекстного меню на вкладке Local Changes: щелкните правой кнопкой мыши нужный файл в группе Unversioned files и выберите действие Add to .gitignore.
Возможность отмены операции merge
Мы добавили опцию Abort Merge, которая будет доступна во всплывающем окне Branches во время выполнения операции merge. Это то, о чем многие из нас мечтали: больше не нужно переключаться в терминал, чтобы что-то отменить.
Выбор отображаемых столбцов во вкладке Log
Для выбора отображаемых столбцов во вкладке Log нажмите значок Presentation Settings, выберите команду Show Columns в контекстном меню, а затем столбцы, которые вы хотите видеть: Author, Date или Hash.
Инструменты
Поддержка Shell Script
GoLand 2019.2 предоставляет автодополнение, быстрый доступ к документации и переименование идентификаторов в тексте для shell script.
Кроме того, мы добавили интеграцию с Shellcheck и shfmt.
Поддержка Kustomize для Kubernetes
Через плагин Kubernetes GoLand 2019.2 поддерживает автодополнение, инспекции кода и рефакторинг Rename. Вы также сможете переходить по пути, объявленному в файле ресурсов Kustomize, к связанным с ним пакетам или файлам в окне Projects.
Просмотр файловой системы Docker-контейнера
Теперь вы можете просматривать файловую систему запущенного Docker-контейнера. Файловая система отображается на вкладке File в окне Services.
Идеи для улучшений мы зачастую берем из ваших отзывов и предложений. Пишите нам здесь в комментариях, в наш баг-трекер или Twitter.
По традиции напоминаю, что если вы уже используете IntelliJ IDEA Ultimate, то все возможности GoLand доступны прямо там, нужно просто установить этот плагин.
Спасибо за внимание!
Автор: katezharova