CLion 2025.2 представляет новые улучшения языкового движка CLion Nova, в том числе переработанный форматер кода. Кроме того, мы добавили новые возможности для разработчиков встраиваемых систем, например отслеживание глобальных переменных в реальном времени без остановки программы. Наконец, мы обновили виджет статуса проекта и расширили возможности интеграции с GoogleTest.
Мы существенно переработали функциональность форматирования кода C и C++, соответствующий виджет строки состояния, а также интерфейс виджета и настроек. Главным результатом этого улучшения стало понятное соответствие размера отступа в редакторе, информации в виджете и настроек форматера. Кроме того, вы можете настроить другие варианты форматирования, например ClangFormat, Indents Detection или EditorConfig, прямо из виджета, не открывая меню настроек.
Мы повысили производительность и отзывчивость CLion Nova при удаленной разработке. Теперь умная помощь при написании кода запускается в тонком клиенте, а не на сервере. В результате в некоторых ситуациях вам не нужно ждать ответа бэкенда, то есть интернет-соединение не ограничивает отзывчивость IDE. Такие функции, как автоматическая вставка парных скобок <>, [] и () или умная расстановка отступов при нажатии клавиши Backspace, теперь работают так же быстро, как и при локальной разработке.
Обратите внимание: пока что не все функции помощи при написании кода перенесены в тонкий клиент, но мы работаем над этим.
Функция отслеживания переменных в реальном времени позволяет отслеживать глобальные переменные, не останавливая выполнение программы. Это особенно удобно при разработке встроенных систем, в которых используются чувствительные ко времени протоколы, например Bluetooth или Zigbee, или физические процессы, требующие непрерывной работы, такие как управление электродвигателем или преобразование сигналов датчиков в реальном времени.
Эта функция включена по умолчанию. Чтобы ее использовать, необходимо включить опцию Debug Servers в меню Settings | Advanced Settings | Debugger. Обратите внимание, что в настоящее время отслеживание переменных в реальном времени доступно только с серверами отладки SEGGER J-Link и ST-LINK или с универсальным сервером, если он подключен к отладочным зондам SEGGER J-Link или ST-LINK. О других ограничениях читайте в документации.
Помимо универсального сервера отладки, а также SEGGER J-Link и STM32, теперь можно использовать сервер, разработанный специально для проектов ESP-IDF. Он содержит только основные, самые важные настройки, а все остальные параметры заданы заранее для упрощения процесса настройки.
Откройте меню Settings | Build, Execution, Deployment | Debugger | Debug Servers, нажмите + и выберите шаблон ESP-IDF. Здесь можно настроить параметры сервера отладки, устройства и отладчика. Если вам нужно больше параметров конфигурации, можно преобразовать сервер отладки ESP-IDF в универсальный.
Ранее движок CLion Nova иногда пропускал возможные ошибки компиляции при анализе исходного кода и не показывал в редакторе соответствующие предупреждения. В результате ошибки появлялись только в терминале после завершения сборки. Теперь CLion Nova выявляет все ошибки до того, как вы нажмете Build, Run или Debug.
Мы расширили возможности интеграции с GoogleTest в CLion Nova: теперь этот движок предлагает все те же функции работы с GoogleTest, что и CLion Classic. Одна из главных возможностей — поддержка макроса TEST_P. Это удобно для параметризованных тестов, где нужно неоднократно использовать одну и ту же логику с разными исходными значениями. Теперь для запуска параметризованного теста достаточно нажать зеленую кнопку Run в левом поле редактора рядом с функцией TEST_P.
Мы улучшили функциональность и интерфейс виджета статуса проекта: теперь его предупреждения стали более заметными и интерактивными. Например, если ваш файл не входит в проект, проблему можно устранить, нажав на соответствующую ссылку. После этого вы сможете:
c_cpp_properties.json.Если предупреждение неактуально, баннер можно просто закрыть — опция, которой раньше не было. Это может пригодиться, например, когда вам нужно просто посмотреть код в файле, который не требуется добавлять в проект.
В новой версии можно во время отладки отключить низкоуровневые исключения, вызванные __debugbreak() или встроенным кодом ассемблера с использованием int3. Это особенно удобно при отладке сложных игровых проектов, поскольку позволяет пропустить низкоуровневые проверки игрового движка, которые активируют точки останова, выставленные вручную. Функция позволяет точнее управлять низкоуровневыми исключениями и сигналами. Вы можете выбрать, в каких случаях отладчик приостанавливает, а в каких — продолжает работу.
Эта функция — общая у CLion и Rider. Почитайте статью в блоге, подготовленную командой Rider, где подробно рассказывается, как функция работает и как ее настроить.
Подробнее о других нововведениях читайте в нашем блоге.