В GoLand 2023.1 вас ждет инструмент проверки на уязвимости, улучшенная навигация по gRPC-коду и рефакторинг Rename для общих ресиверов.
Теперь вы можете запускать скретч-файлы с пакетами из нестандартных библиотек, использовать регулярные выражения для создания собственных инспекций поиска и замены, а также быстро преобразовывать необработанные строковые литералы в литералы с двойными кавычками и наоборот. Действие Implement interface теперь работает для неэкспортированных интерфейсов.
Кроме того, мы усовершенствовали новый интерфейс, добавили обновления для Docker и Kubernetes и улучшения для веб-разработки.
Если вы предпочитаете узнавать о новой функциональности в интерактивной форме, пройдите урок What's New in GoLand 2023.1 на начальном экране в разделе Learn.
GoLand теперь подсвечивает пакеты с известными уязвимостями в go.mod
. Наведите курсор на подсвеченный код или нажмите Alt+Enter, выберите опцию Show vulnerability info for ..., и GoLand покажет список уязвимостей со ссылками на подробное описание. Данные об уязвимостях предоставлены компанией Checkmarx, специализирующейся на безопасности программного обеспечения.
Чтобы обновить зависимость до версии, не содержащей уязвимостей, поместите курсор на подсвеченный пакет в go.mod
, нажмите Alt+Enter и выберите быстрое исправление Change package-name version to v0.x.x.
GoLand также подсвечивает вызовы методов из пакетов с известными уязвимостями прямо в редакторе. Вы можете навести курсор на подсвеченный код и увидеть всплывающее окно с информацией об уязвимости и ссылкой на подробное описание.
В него можно попасть через меню: Code | Analyze Code | Show Vulnerable Dependencies.
HTTP-клиент GoLand поддерживает выполнение запросов gRPC. Вы также можете их выполнять из окна Endpoints.
В этой версии вас ждет еще одно полезное дополнение к набору функций gRPC. Теперь можно переходить к объявлениям сообщений, сервисов и методов из кода Go и их реализации в Go из файлов .proto
.
Для этого нажмите на специальный значок рядом с объявлением сообщения, сервиса, метода или их реализации.
Теперь вы можете запускать скретч-файлы с нестандартными библиотечными зависимостями Go. Когда вы копируете код из файла проекта в скретч-файл и нажимаете кнопку Run, GoLand создает конфигурацию запуска с флагом -overlay
. Этот флаг используется с файлом JSON, который сопоставляет пути к файлам go.mod
и go.sum
в исходном проекте.
Когда вы переименовываете параметр типа в структуре, рефакторинг Rename теперь предлагает соответствующим образом изменить ресиверы.
Мы исправили несколько проблем, влияющих на навигацию между интерфейсами, реализациями и спецификациями методов в общем коде. Мы также добавили исправления, чтобы избавиться от ложноположительных и ложноотрицательных срабатываний, связанных с дженериками.
Теперь есть специальное действие для быстрого преобразования необработанных строковых литералов (строк, заключенных в одинарные обратные кавычки) в строки с двойными кавычками и наоборот.
Раньше, если нужно было преобразовать целое число в строку, IDE сначала предлагала быстрое исправление Convert to 'string'. Чтобы правильно завершить преобразование, требовалось еще одно быстрое исправление — Convert integer to string using strconv.Itoa() call.
Мы упростили этот процесс, и теперь GoLand сразу же предлагает быстрое исправление Convert integer to string using strconv.Itoa() call.
Действие Implement interface теперь работает для неэкспортированных интерфейсов.
В GoLand теперь есть инспекция и быстрое исправление, которые помогут вам обнаружить и удалить начальные пробелы в директивах Go, например в //go:embed
.
Начиная с предыдущей версии, превью результатов intention-действий включено по умолчанию.
Эта функция позволяет заранее увидеть, как изменится ваш код, если применить предложение IDE.
Теперь она доступна для более широкого набора действий и быстрых исправлений: Introduce local variable, Create variable/global variable, Create constant/global constant, Create field, Merge declaration up, Delete all unused parameters, Create function, Create method, Fill all fields.
Мы улучшили работу IDE при запуске, переведя процесс Scanning files to index... в интеллектуальный режим. В результате вы получаете доступ ко всей функциональности GoLand гораздо быстрее. Теперь при открытии проекта GoLand использует существующие кэши проекта из предыдущей сессии и параллельно ищет новые файлы для индексации. Если при сканировании никаких изменений не обнаружится, IDE будет готова к работе сразу же — без задержек, связанных с ожиданием завершения процесса индексации.
GoLand покажет новое уведомление, если у вас включен Microsoft Defender с функцией Real-Time Protection. Поскольку антивирусные проверки могут значительно снизить скорость работы IDE, GoLand предлагает добавить отдельные папки в список исключений Defender. Параметры можно изменить автоматически или сначала проверить инструкции по настройке Defender и сделать это вручную.
Мы обновили функцию Code Vision. Теперь GoLand показывает количество реализаций интерфейса и спецификации его методов.
В предыдущей версии мы ввели отображение использований рядом со всеми функциями и типами, показывающее, как часто на функцию или тип ссылаются в текущем проекте. Кроме того, если включена интеграция с системой контроля версий, вы увидите, кто является автором кода.
Теперь можно использовать регулярные выражения для создания собственных инспекций поиска и замены. Такие инспекции могут быть особенно полезны для обнаружения проблем, связанных со стилем и форматированием.
Перейдите в раздел Settings | Editor | Inspections и нажмите значок +. Выберите в списке Add RegExp Search Inspection, чтобы открыть диалог, в котором можно настроить новую инспекцию. Выберите нужный язык, используйте подсказки из панели слева для построения регулярного выражения и укажите желаемую замену. Вы также можете указать, как следует подсвечивать их в проекте.
В версии 2022.3 мы интегрировали в GoLand функциональность Go Playground.
В этом релизе мы улучшили эту функцию. Прежде всего, общие URL теперь включают параметр версии, если вы выбрали версию dev или предыдущую версию.
Мы также добавили возможность отключить всплывающее окно, которое запрашивает разрешение на обмен кодом в Playground. Для этого перейдите в настройки: Settings | Go | Ask before sharing in Go Playground.
Мы улучшили поведение IDE при вставке строки, которая была вырезана или скопирована без выделения. Теперь есть специальная настройка, позволяющая выбрать, как именно выполнять вставку.
В меню Settings | Advanced Settings найдите раздел Editor и выберите желаемое поведение для действия Paste из выпадающего списка.
В разделе Settings | Editor | General | Appearance | Show Whitespace появился новый флажок Selection, который позволяет настроить IDE так, чтобы пробелы отображались в виде маленьких точек только при выделении кода.
Инспекция Typo больше не применяется к хешам и специальным значениям, и IDE не сообщает об их неправильном написании. Это обновление распространяется на следующие значения:
В Find Usages появилась новая группа Call для вызовов функций.
Мы также внесли некоторые изменения в то, как в окне отображаются использования других элементов кода.
Теперь в GoLand можно увеличивать и уменьшать размер всех элементов интерфейса одновременно. Для этого выберите View | Appearance | Switch Zoom IDE в главном меню и настройте нужный масштаб.
Мы добавили новую опцию, которая позволяет зафиксировать ширину боковых окон инструментов или сохранить возможность их менять. В разделе Settings | Appearance | Appearance & Behavior | Tool Windows вы найдете новую опцию Remember size for each tool window.
В новом интерфейсе эта опция по умолчанию выключена, то есть все окна имеют одинаковую ширину, и при переключении между ними их размеры неизменны. В старом интерфейсе опция включена, поэтому окна разной ширины, но вы можете в любой момент выровнять их, просто отключив ее.
Теперь в GoLand можно сохранять варианты расположения окон инструментов и переключаться между ними по необходимости.
Чтобы сохранить макет, разместите окна, как вам нравится, и перейдите в Window | Layouts | Save Current Layout as New. Если вы захотите поменять что-то еще, можно обновить текущий вариант с помощью опции Save Changes in Current Layout или сохранить изменения как новый отдельный макет. Для активации сохраненного варианта размещения окон найдите его в списке Window | Layouts, наведите на него курсор и нажмите Apply.
В этой версии можно задать поведение Actions on Save для новых проектов.
Для этого перейдите в раздел File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save и выберите, какие действия должны выполняться при сохранении изменений в проектах.
В прошлом году мы представили новый, более минималистичный интерфейс GoLand и других наших IDE. Мы дорабатываем его с учетом ваших отзывов и пожеланий. Читайте об основных изменениях, вошедших в этот релиз. Чтобы попробовать новый интерфейс, поставьте галочку напротив New UI в разделе Settings | Appearance & Behavior.
Подробнее о новом интерфейсе читайте на этой странице.
Для удобства работы на небольших экранах мы добавили компактный режим (Compact Mode), в котором интерфейс GoLand выглядит более аккуратно и лаконично: мы сузили панели инструментов и заголовки окон, сократили отступы и интервалы, а также уменьшили кнопки и значки.
Чтобы включить компактный режим, войдите в меню View и выберите Appearance | Compact Mode.
Кроме того, в режимах Zen и Distraction Free теперь скрыта верхняя панель инструментов.
В новом интерфейсе появилась возможность разделить область с окнами инструментов, чтобы вы могли их расположить, как вам удобно.
Чтобы добавить окно в эту область и разместить его в нижней части, перетащите значок окна вниз по боковой панели и опустите под разделитель. Можно сделать и по-другому: кликните правой кнопкой по значку и в открывшемся меню выберите новое положение окна с помощью действия Move to.
Если у вас открыто несколько проектов, теперь можно легко переключаться между ними с помощью вкладок, расположенных под главной панелью инструментов. Для этого перейдите в Window | Merge All Project Windows.
Мы добавили в новый интерфейс опцию Show Hidden Tabs. На панели вкладок теперь есть выпадающий список: в нем перечислены открытые вкладки, которые были скрыты.
Мы усовершенствовали новый интерфейс: теперь когда вкладки редактора скрыты, вы можете видеть имя открытого файла.
Мы изменили дизайн виджета Run в верхней части окна IDE. Значки теперь зеленые, а область вокруг них не выделяется цветом — так виджет не бросается в глаза.
В этой версии мы добавили автодополнение для имен контейнеров при использовании пакета testcontainers-go
.
После ввода имени контейнера можно использовать действие Pull Docker image, которое мы реализовали ранее.
Журналы всех контейнеров Docker Compose теперь собраны в одном месте — на вкладке Dashboard в узле Docker-сompose, где они обновляются в реальном времени.
Теперь можно легко подключиться к реестру контейнеров Azure. Для этого перейдите в Settings | Build, Execution, Deployment | Docker | Docker Registry и выберите опцию Docker V2 в поле Registry.
Теперь у вас есть возможность добавлять флаги конфигурации :z при монтировании каталога с хоста, что позволяет подключать тома к Docker-контейнерам на устройствах SELinux. Чтобы включить эту функцию, перейдите в раздел Settings | Advanced Settings | Docker.
Чтобы вам было проще создавать файлы Kubernetes, мы добавили новое действие Kubernetes Resource в меню New, которое открывается при нажатии правой кнопкой мыши в окне Project.
Когда вы выбираете опцию Kubernetes Resource, открывается список наиболее популярных типов ресурсов, таких как Pod, Deployment, ConfigMap и т. п.
В GoLand появился новый диалог для создания секретов Kubernetes.
Чтобы определить новый секрет, можно вручную ввести данные для Key и Value или указать файл, содержимое которого следует использовать.
Теперь, когда вы применяете действие View YAML для ресурсов из кластера и вносите изменения в открытый файл, IDE отмечает все ваши правки цветными маркерами на полях редактора. Таким образом, вы можете быть уверены, что изменения внесены в нужные части ресурса, прежде чем применить их к кластеру.
Кроме того, если нажать на значок Compare with Cluster, откроется окно, в котором можно сравнить текущую версию ресурса из кластера с локальной версией.
Теперь вы можете легко получить доступ к файлу kubeconfig из представления Services и открыть его в редакторе. Если вы измените файл kubeconfig за пределами IDE, GoLand это обнаружит и автоматически обновит конфигурацию в окне Services. Кроме того, для файлов kubeconfig теперь работает подсветка и автодополнение.
Теперь можно назначить сочетания клавиш для большинства Kubernetes-действий в окне Services, например: Forward Ports, Delete Resource, Describe Resource и других. Для этого перейдите в раздел Settings | Keymap | Plugins | Kubernetes.
Мы добавили новое действие, которое позволяет исправить форматирование таблиц в Markdown-файлах. К быстрому исправлению можно перейти через контекстные действия (Alt+Enter) или нажав на значок желтой лампочки и выбрав опцию Reformat table в открывшемся списке.
Действие Fill Paragraph теперь поддерживается для Markdown-файлов, позволяя разбивать длинные тексты на несколько строк одинаковой длины. Установите курсор внутри абзаца, который нужно отредактировать, и вызовите действие Fill Paragraph через меню Edit или найдите его с помощью Search everywhere (двойное нажатие Shift).
Мы добавили специальную страницу для изменения настроек Markdown в разделе Settings | Editor | General | Smart Keys. Так вам будет проще настроить IDE согласно своим предпочтениям, поскольку на этой странице есть отдельные флажки для разных функций редактора (раньше был всего один флажок в разделе Settings | Languages & Frameworks).
Всплывающее окно Branches стало более удобным. В частности, вам будет проще перемещаться между ветками, потому что теперь они сгруппированы и хранятся в раскрываемых списках.
Во всплывающем окне Create New Branch теперь работает автодополнение. Нажмите Ctrl+Space, и IDE предложит соответствующие префиксы на основе имен существующих локальных веток.
Чтобы вам было удобнее следить за изменениями в файлах, мы добавили на панель Structure цветовую индикацию. Имена измененных объектов теперь отображаются синим цветом, а имена вновь добавленных объектов — зеленым.
Мы изменили процедуру проверки коммитов в Git и Mercurial, чтобы в целом ускорить выполнение коммита. Теперь проверки производятся в фоновом режиме после коммита, но до отправки изменений в репозиторий.
Мы переработали окно Pull Request. Теперь для каждого открытого пул-реквеста в нем есть отдельная вкладка. На ней вы сразу увидите список измененных файлов, но теперь там меньше информации, чем раньше, чтобы вы могли лучше сосредоточиться на текущей задаче. Новая специальная кнопка позволяет быстро выполнить действие, которое считается наиболее подходящим исходя из текущего состояния пул-реквеста.
В GoLand появилась долгожданная поддержка Astro. Чтобы ею воспользоваться, установите Astro-плагин через меню Settings | Plugins. Плагин предоставляет базовую функциональность, включая подсветку синтаксиса, автодополнение кода с автоматическими импортами, рефакторинги, навигацию, правильное форматирование и многое другое.
GoLand теперь автоматически преобразовывает строки с одинарными или двойными кавычками в шаблонные литералы всякий раз, когда вы вводите ${
. Это работает как для простых строк, так и для свойств JSX.
Мы добавили поддержку TypeScript в Vue-шаблоны, когда вы устанавливаете для атрибута lang
в теге script
значение ts
. Раньше, независимо от атрибута lang
в теге script
, использовался JavaScript.
Обо всех улучшениях для веб-разработки, вошедших в версию 2023.1, читайте на странице WebStorm.