JetBrains corporate blog
Programming
C++
C
November 2015 5

CLion 1.2: еще больше возможностей и преимуществ

Сегодня мы хотим рассказать про новый релиз нашей кросс-платформенной IDE для C и C++ — CLion 1.2. Этот релиз вышел буквально на днях, в рамках апдейта всех десктопных продуктов JetBrains и запуска новой лицензионной модели.



Кстати, если у вас уже есть лицензия CLion (купленная до 2 ноября или после запуска новой лицензионной модели), этот апдейт Вы получаете абсолютно бесплатно. Итак, что же внутри?

Google Test


Одно из главных нововведений этого релиза — поддержка Google Test и возможность запускать тесты прямо из IDE. Для этого в CLion реализованы специальные конфигурации, которые создаются автоматически при запуске теста, файла с тестами, тестового класса или вручную в настройках. В настройках конфигурации указывается, какие тесты запускать, какой при этом таргет вызвать и пр.:



Непосредственно запустить тест можно через контекстное меню или по сочетанию клавиш (Ctrl+Shift+F10 на Windows/Linux, Ctrl-Shift-R на OS X). Результат запуска будет отображаться в специальном окне:



Интерфейс наверняка знаком тем, кто использовал/использует другие продукты на основе нашей платформы IntelliJ. Из этого окна можно:
  • перезапустить все тесты или только упавшие;
  • отсортировать тесты по имени или по длительности прохождения;
  • посмотреть/перейти на код конкретного теста;
  • посмотреть вывод каждого конкретного теста и сообщения об ошибках;
  • перенести результаты текущего запуска тестов в файл;
  • посмотреть предыдущие запуски тестов по истории, которая сохраняется автоматически.


Для облегчения же непосредственно написания тестов мы добавили кодогенерацию:



Меню появляется по нажатию на Alt+Insert на Windows/Linux, Cmd-N на OS X, и предлагает сгенерировать один тест, тестовый класс (fixture) и стандартную пару методов SetUp/TearDown. При этом генерация непосредственно тестового метода хитрая — сначала всегда создается макрос TEST(), а потом, в зависимости от контекста, он автоматически заменяется на более подходящий. Например, при указании имени существующей fixture, макрос автоматически заменяется на TEST_F():



Более детально прочитать и посмотреть про Google Test в CLion 1.2 можно в нашем англоязычном блоге и в соответствующем видео на канале YouTube.

Улучшения по поддержке C++


В данный релиз вошло более 50 исправлений, связанных с языком C++. Например, поддержка макроса __LINE__, необходимого для разработки под Unreal Engine 4 и не только. (Кстати, о получении CMake проекта для работы с UE4 в CLion читайте статью на английском от нашего коллеги).

Наши IDE известны тем, что умеют выводить типы, а с появлением C++11 это стало актуально и для C++. Дело в том, что определить тип у переменной, объявленной как auto, не всегда просто, нужно долго и внимательно изучать, какой же вызов присваивает значение в переменную. Здесь приходит на помощь IDE — всплывающее окно Quick Documentation покажет нужный тип. В новой версии CLion 1.2 поправлено несколько проблем с выводом таких типов:



Продолжая работу над шаблонами, мы реализовали поиск использований и рефакторинг переименования для шаблонных параметров. А на случай, если параметр никак не используется, в IDE добавили возможность умного удаления (quick-fix) параметра из определения и использований шаблона:



CMake


Для облегчения написания файлов CMake в CLion 1.2 появились две возможности:
  • готовые шаблоны (Live Templates) и
  • автодополнение переменных.

Мы добавили несколько готовых шаблонов: foreach, function, if, macro, while, incboost (который помогает подключить библиотеки Boost к проекту). Также вы можете создавать свои и использовать их в файлах CMake. Как и для других аналогичных шаблонов, для аббревиатур шаблонов есть автодополнение, а раскрывается шаблон по нажатию клавиши Tab (или другой сконфигурированной в настройках):



В предыдущих версиях уже присутствовало автодополнение команд CMake, а теперь мы реализовали автодополение переменных (пока только тех, у которых имена статические).

Также появилась опция в настройках форматирования, позволяющая использовать всегда только заглавные или всегда только строчные буквы для команд CMake (допустИм и вариант смешенного стиля).

Отладчик


Главные изменения во встроенном отладчике — это работа над производительностью. Мы внесли много изменений, которые заметно улучшили ситуацию (но нам еще есть, куда стремиться). Таких, например, как “ленивое” создание переменных для GDB.

Также было сделано несколько изменений в рендеринге переменных типа references и массивов символов Юникод:



Платформенные изменения


Как и другие IDE на платформе IntelliJ, CLion получил ряд общих улучшений:
  • Появился quick-fix, который позволяет поменять настроки форматирования, актуальные только для выделенного куска кода. Это работает во всех языках, поддерживаемых в CLion (C++, C, CMake, языки для WEB разработки).
  • При поиске по пути (Find in Path) в соответствующем диалоге добавлена вкладка предпросмотра, которая отображает первые 100 результатов поиска и существенно облегчает задачу.
  • При выполнении поиска и замены теперь можно использовать регулярные выражения.
  • Множество улучшений для разных систем контроля версий (добавился Perforce Shelve, работа с патчами Mercurial Queues, Git операции для бранча собраны теперь в одном меню).
  • Внешний вид также претерпел изменения, особенно это заметно будет пользователям HiDPI Linux/Windows, и пользователям дефолтной (“белой”) схемы на OS X. И, кстати, версия для OS X теперь по умолчанию собрана с кастомизированной JDK с исправлениями от JetBrains, но при этом в самой IDE можно выбрать любую JDK, установленную в системе.


В завершение небольшой деморолик (на английском):



Следите за постами в нашем англоязычном блоге и читайте подробнее про возможности новой версии CLion 1.2 на сайте. Как обычно, есть 30-дневная бесплатная пробная версия, а в разделе цен можно узнать о стоимости по новой модели и варианты лицензирования. Мы рады ответить на любые ваши вопросы в комментариях.

Программируйте с удовольствием!
Ваша команда JetBrains CLion
+18
15.9k 37
Comments 40
Top of the day