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

в 8:50, , рубрики: C, c++, CLion, IDE, jetbrains, Блог компании JetBrains, Программирование, метки: ,

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

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

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

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

Кто-то из вас уже знает, что поддержку разработки на 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 и указать пути до нужных версий. Тут же находится небольшой тест для указанного набора тулов — если все в порядке, то вы увидите:

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

Поддержка CMake

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

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

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

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

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

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

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

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

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

CLion построен на нашей открытой платформе — IntelliJ — и включает множество традиционных умных возможностей, которые помогают разработчику быть более продуктивным:

  • умное автодополнение с фильтрацией по типу и использованием 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 множество рефакторингов, которые автоматически обновят все необходимые места в вашем коде:

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

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

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

Отладка

Встроенный отладчик (с использованием GDB) поможет досконально разобраться в коде. В CLion доступны несколько типов точек останова (breakpoints):

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

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

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

И напоследок

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

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

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

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

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

Программируйте с удовольствием!
Ваша команда JetBrains CLion

Автор: anastasiak2512

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js