Pull to refresh
0
JetBrains
Делаем эффективные инструменты для разработчиков

CLion 1.0 — мощный инструмент для мощного языка

Reading time 6 min
Views 58K
В сентябре прошлого года мы порадовали вас новостью о начале программы публичного превью (Public Early Access Program) нашей новой кросс-платформенной IDE для разработки на C и C++ — CLion. А уже сегодня мы готовы сказать — релиз CLion 1.0 состоялся! За два года от первого (полушутливого) объявления о начале разработки C++ IDE мы прошли огромный путь — переосмыслили свои навыки и умения по работе с кодом на C++, дружно освоили CMake, расширили команду, протестировали CLion на десятках больших проектов на C и C++.

Но самое главное — это каждодневная поддержка C++ коммьюнити, которое (спасибо вам!) приняло нас очень благосклонно. Спасибо за слова поддержки, репорты багов, предложения новых фич, сотни ретвитов и репостов наших новостей и анонсов! Сегодня мы готовы показать вам и рассказать, что же вошло в CLion 1.0.



Языки, платформы, инструменты


Кто-то из вас уже знает, что поддержку разработки на C и C++ предлагают сразу три наших продукта — ReSharper C++, AppCode и собственно CLion. CLion ориентирован на кросс-платформенную разработку, с использованием GCC или Clang (в случае Windows вам для этого потребуется Cygwin или MinGW). В качестве проектной модели используется CMake, для отладки — GDB. Этот набор будет, наверняка, меняться в дальнейшем — мы планируем и поддержку других билд-систем (Makefiles, qmake и др.), и использование LLDB для отладки. Для вашего удобства в сборку CLion входят CMake 3.1.3 и GDB 7.8 (исключение составляет случай использования Cygwin — там GDB не входит в сборку CLion). Если эти версии вам не подходят, легко можно поменять на любые другие версии соответствующих инструментов — в настройках надо открыть Build, Execution, Deployment | Toolchains и указать пути до нужных версий. Тут же находится небольшой тест для указанного набора тулов — если все в порядке, то вы увидите:



Поддержка CMake


Как уже сказано выше, CLion использует CMake в качестве проектной модели. Всю информацию о том, какие файлы входят в проект, какой стандарт C++ стоит использовать, какие библиотеки и флаги компиляции будут использоваться, и т. д. CLion берет именно из CMake. Пока что немногое из этого вынесено в отдельный UI:



Также есть специальное окно для редактирования настроек CMakeCache.

Если у вас уже есть проект на основе CMake, для начала работы с CLion просто откройте в IDE CMakeLists.txt верхнего уровня. Если же нет, то можно попробовать заимпортировать проект в CMake с помощью File | Import Project… CLion поможет создать простейший CMakeLists.txt.

Для удобства редактирования файлов CMake работает автодополенение команд CMake:



Здесь же пригодится и однострочное (с помощью Ctrl+/ на Windows/Linux, ⌘/ на OS X) или блочное комментирование (Ctrl+Shift+/ на Windows/Linux, ⌥⌘/ на OS X) в файлах CMake. Все изменения можно применить тут же автоматически, разрешив CLion перегружать проект автоматом после изменений.

Для каждого таргета CMake CLion создает конфигурацию, которую можно собирать и запускать (в случае, если указан исполняемый файл). Исполняемый файл можно сменить в настройках конфигурации в Run | Edit Configurations… Это может быть полезно, если вы захотите указать исполняемый файл для конфигурации all, доступной по умолчанию. При добавлении новых файлов и классов C++ в проект через контекстное меню New, CLion предлагает автоматически обновить таргеты CMake — вам будет показан список для выбора нужного (нужных).

Умные возможности


Построенный на нашей открытой платформе IntelliJ, CLion включает множество традиционных умных возможностей, которые помогают разработчикам быть более продуктивными:
  • умное автодополнение с фильтрацией по типу и использованием Camel Case/Snake case/Middle matching;
  • автоформатирование кода, настройки стилей;
  • быстрые сочетания клавиш практически для всех действий и команд. Стандартные раскладки IntelliJ IDEA, Emacs, Visual Studio, Eclipse, NetBeans, Xcode, ReSharper, а также возможности настройки раскладок;
  • поиск использования символа, причем не текстовый, а с использованием текущего контекста, также можно искать символ в строках и комментариях;
  • навигация по имени символа/класса/файла, переход вверх/вниз по иерархии, переход на определение/декларацию;
  • различные режимы просмотра-навигации по структуре кода — по структуре текущего файла, по иерархии типов/вызовов/include-ов;
  • система закладок по коду, TODO (CLion даже предупредит вас, если вы вдруг забудете закончить какую-то задачу в коде, отмеченную как TODO, перед коммитом кода в систему версионного контроля);
  • генерация кода: забытые или еще не реализованные функции, члены родительских классов, конструкторы, функции get/set для полей класса — CLion поможет сгенерировать все это в один клик;
  • surround with и live templates помогут быстро обернуть выделенные строки кода в if, while, for, #ifdef и др. или сгенерировать итератор по коллекции;

Рефакторинги


Конечно же, в CLion множество рефакторингов, которые автоматически обновят все необходимые места в вашем коде:



  • Rename — при переименовании CLion сможет учесть не только контекст символа, но и использования в строках и комментариях;
  • Change Signature — с помощью этого рефакторинга можно добавлять/удалять параметры, менять их порядок (порядок аргументов в вызовах функции также будет обновлен автоматически), менять тип результата;
  • Move, Copy, Safe Delete — незаменимы для безопасной работы с файлами проекта;
  • Inline — уберет лишнюю переменную или вызов функции, заменив их на непосредственное значение/код функции;
  • Extract Variable/Constant/Parameter/Typedef/Define — не просто добавят новую переменную, тип, константу или макроопределение с новым именем, но и дадут возможность вынести определение в заголовочный файл и объявить новую константу статической. При нахождении аналогичных значений в других местах кода, CLion предложит подставить новую переменную/тип/константу/макрос не только в данном месте, но и в аналогичных использованиях:

  • Extract Function — CLion автоматически определит, какие параметры надо передать на вход новой функции, а какое значение надо отдавать на выход, подставив нужные значения при использовании;
  • Extract Superclass/Subclass и Pull Members Up/Push Members Down — эти две пары рефакторингов помогут с реорганизацией иерархии классов в вашем проекте; для удобства в соответствующем диалоге работает автодополнение для поиска нужного класса по имени.

Анализ кода


CLion не просто дает вам возможность писать код, но и пытается буквально понять, что же вы написали, и нет ли в этом коде проблем. За счет анализа кода на лету не только подсвечиваются потенциальные проблемы, но и сразу предлагаются способы их исправить (quick-fixes). CLion предоставляет более 40 инспекций по коду на C и C++, включая поиск неиспользуемого кода; пропущенные случаи в switch-case операторе; создание переменных, перекрывающих другие переменные, доступные в этом же контексте, с таким же именем; поиск бесконечной рекурсии и бесконечных циклов (здесь CLion использует полноценный Data Flow Analysis); несоответствия типов и др.:



Отладка


Встроенный отладчик (с использованием GDB) поможет досконально разобраться в коде. В CLion доступны несколько типов точек останова (breakpoints):
  • Line breakpoints — самый простой и часто используемый, легко ставится и снимается простым кликом в левый вертикальной панели маркеров рядом с окном редактора;
  • Symbolic breakpoints — необходимы, когда хочется остановиться в какой-то библиотечной функции или вызове, код которых не доступен или сложно определить строчку для точки останова первого типа;
  • Exception breakpoints — как видно из названия, предназначены для перехвата и остановки в момент бросания исключений.


В редакторе во время отладки появятся непосредственные значения переменных (прямо напротив их объявления), а окно отладчика даст возможность просматривать значения переменных, добавлять watches, запускать любую команду в консоли GDB. Также можно посчитать значение любого выражения во время отладки, а автодополнение поможет в написании непосредственно интересующего вас выражения:



И напоследок


CLion, как и другие наши IDE, включает интеграцию с разнообразными системами контроля версий (Subversion, Git, GitHub, Mercurial, CVS, Perforce, TFS) и баг-трекерами (Jira, YouTrack, PivotalTracker, Bugzilla и многими другими), хранит локальную историю. Множество дополнительных функций доступно через систему плагинов: для CLion их уже около сотни.

А для тех, кто привык к простой консоли и vi, есть встроенный терминал и плагин IdeaVim для эмуляции Vim-режима.

И небольшое демо в завершение:



Заходите на наш сайт, читайте подробнее про возможности CLion, смотрите видео, интересуйтесь ценами и вариантами лицензий.

А 6 мая 2015 года мы проведем бесплатный вебинар, на котором покажем самые интересные возможности CLion. Зарегистрируйтесь уже сегодня! В процессе вебинара можно будет задавать вопросы. Мы постараемся ответить на них в эфире, а на что не успеем — ответим в почте и блоге.

Программируйте с удовольствием!
Ваша команда JetBrains CLion
Tags:
Hubs:
+79
Comments 157
Comments Comments 157

Articles

Information

Website
jetbrains.com
Registered
Founded
Employees
1,001–5,000 employees
Location
Чехия