В GoLand 2020.1 вы найдете улучшенную поддержку Go Modules, множество новых видов автодополнения и редактирования кода на лету, расширенное семейство Smart Code Completion и Basic Code Completion.
Мы также подготовили для вас новые инспекции кода, быстрые исправления и много других улучшений. Среди них: режим LightEdit, который позволяет открыть файл в текстовом редакторе без создания или загрузки проекта, интеллектуальная проверка орфографии и грамматики, новые возможности для работы с базами данных и веб-разработки.
Предпочитаете узнавать о новой функциональности в интерактивной форме? Пройдите урок Features of GoLand 2020.1 прямо в IDE.
Мы поддержали переменные окружения GOPROXY
, GOPRIVATE
, GOSUMDB
, GONOPROXY
и GONOSUMB
из версии Go 1.13.
Вы можете устанавливать значения для них в шаблоне проекта Go Modules. Кликните на иконку Browse в поле Environment, чтобы открыть новое окно Environment Variables.
Автодополнение для операторов go
, module
, require
, replace
, exclude
, имен зависимостей и локальных путей в 'replace' директивах для файла go.mod
.
Рефакторинги Rename и Move теперь тоже в деле. Когда вы переименовываете или перемещаете директории, указанные внутри операторов replace
, GoLand автоматически изменит их путь в файле go.mod.
Теперь вы также можете вызвать Find Usages в Project View, чтобы исследовать, где используется путь к конкретной директории в файле go.mod
.
Загружайте недостающие зависимости и удаляйте неиспользуемые на лету с помощью Alt-Enter.
Последнее, но не менее важное, новая версия предупредит вас перед коммитом go.mod файла с локальными путями в replace директиве.
GoLand 2020.1 предлагает if err != nil { ... }
, если видит, что вы пишете код обработки ошибки. Просто напишите if
внутри выражения.
Определяйте структуры и типы интерфейсов, просто указав ключевое слово type
или struct
и interface
.
Действие Fill Fields добавляет пробелы после двоеточия, когда этого требуют правила форматирования. Действие также автоматически поставит запятую в конце выражения с объявлением составных литералов.
При создании словарей автодополнение переместит курсор за закрывающую скобку после того, как вы укажите тип ключа.
Для типа возвращаемого значения функции автодополнение кода теперь предлагает локальные переменные и нулевые значения, которые соответствуют типу возвращаемого значения.
Умное автодополнение кода предлагает указатель для структур с инициализаторами полей.
Также теперь автодополнение в первую очередь предложит совместимые типы для утверждения типа и переключателя типа.
Для утверждения типа автодополнение предлагает тип присваиваемой переменной.
Наконец, GoLand 2020.1 предложит варианты автодополнения для указателей в выражении.
Basic Code Completion для комментариев значительно упрощает написание документации. Автодополнение предлагает имена для текущих объявлений пакета и имена параметров для функций и методов.
Кроме того, Basic Code Completion предлагает литералы и преобразования.
При написании сигнатуры функции возвращающей несколько значений, GoLand 2020.1 добавит скобки вокруг типов возвращаемого значения, если после первого типа вы поставите запятую.
Когда вы вставляете текст в строковый литерал, IDE экранирует текст.
Чтобы узнать больше о функциях редактирования кода, которые работают без необходимости что-либо делать, прочтите статью GoLand Editing Features You Didn’t Know About.
В Go 1.14 добавлена поддержка встраивания перекрывающих интерфейсов, и мы сразу же их поддержали. Когда вы описываете различные аспекты типа, использующего перекрывающие интерфейсы, GoLand не будет предупреждать о дублировании методов.
Вендоринг включается автоматически в версии Go 1.14, если корень модуля содержит директорию vendor. Для GoLand 2020.1 мы решили реализовать аналогичное поведение для версии 1.13 и более ранних. IDE будет автоматически разрешать импорт в директорию vendor, если она присутствует в модуле.
Поддержка ярлыков профилировщика помогает быстрее ориентироваться в горутинах и анализировать дампы памяти.
Подробнее читайте в этой статье: How to Find Goroutines During Debugging.
Теперь можно использовать макросы в качестве параметров для запуска или отладки приложения. В диалоге Run/Debug Configurations нажмите + в поле Go Tool или Program arguments, чтобы открыть новый диалог Macros со списком доступных макросов.
Кроме того, теперь вы можете хранить файлы с конфигурациями в проекте. Выберите опцию Store в верхней части диалога Run/Debug Configurations.
Шаблон .else
добавляет оператор if
, чтобы проверить, не является ли выражение ложным.
Измените вызов без форматирования на вызов с форматированием с помощью Alt+Enter.
Быстрое исправление Create variable теперь предлагает подсказку ожидаемого типа, чтобы ускорить ввод правильного значения.
Эта новая инспекция предупреждает о недопустимых вызовах методов с получателем-указателем на значениях, которые не являются указателями. Для обнаруженной проблемы предлагается быстрое исправление.
Проверка Invalid conversions of uintptr to unsafe.Pointer о потенциально опасном преобразовании между uintptr
и unsafe.Pointer
для преобразования целых чисел в указатели.
Проверка Unmarshal is called with incorrect argument анализирует вызовы json.Unmarshal
и похожих функций из encoding/json
, encoding/xml
и encoding/gob
пакетов.
Инспекция Locks mistakenly passed by value помогает избежать случайного копирования значений типа sync.Locker.
Мы добавили новые шаблоны, которые помогут вам быстро создавать группы объявлений. К ним относятся consts
, vars
, types
и imports
. При использовании одного из этих шаблонов GoLand добавит скобки вокруг имени объявления.
Шаблон fori
вставляет код для классического for-loop.
Рефакторинг Extract Method теперь сохраняет исходный порядок родительской функции и параметры метода.
Rename теперь автоматически определяет переименование объявления. Когда вы переименовываете объявление вручную, IDE покажет иконку в поле редактора. Кликнув на иконку, вы переименуете все использования разом.
Navigate to implementations (Ctrl+Alt+B) и Navigate to Declaration или Usages (Ctrl+B) теперь в первую очередь показывают результаты текущего проекта.
Кроме того, действие Find Usages (Alt+F7) теперь всегда ищет использования методов интерфейса по умолчанию. Для поиска использований текущего метода нажимайте Alt+Shift+Ctrl+F7.
Новое окно коммитов теперь включает вкладки Local Changes и Shelf. В нем можно выполнять все задачи, связанные с коммитами: просматривать различия, выбирать файлы и фрагменты кода для включения в коммит и писать сообщения к коммиту. Окно Commit вертикальное и располагается в левой части экрана — так все пространство редактора используется для визуализации изменений перед коммитом.
Мы добавили в окно Branches несколько изменений:
Мы существенно переработали Interactively Rebase from Here. Чтобы сделать историю коммитов более линейной и понятной, теперь вы можете редактировать, объединять и удалять ваши предыдущие коммиты.
Чтобы вызвать этот диалог, перейдите на вкладку Log окна Git, выберите старый коммит, который вы хотите отредактировать, щелкните по нему правой кнопкой мыши и выберите Interactively Rebase from Here.
Новые действия и инспекции (Alt+Enter) сэкономят ваше время. Например, можно быстро преобразовать код в optional chaining и/или nullish coalescing — синтаксис, появившийся в последних версиях JavaScript и TypeScript.
Документация для JavaScript и TypeScript теперь содержит информацию о типе и видимости символа, а также о том, где этот символ определен.