Реліз CLion 2016.1: нові інструменти і нові мови

Привіт, Хабр!

У нас сьогодні чудові новини — вийшов черговий реліз нашої крос-платорфменной середовища для розробки на C і C++, CLion 2016.1.


Версія 2016.1
Ви, напевно, трохи здивовані номером версії. Найближчі релізи інших наших десктопних інструментів, до речі, має таку ж версію, починаючи з IntelliJ IDEA 2016.1. В чому ж сенс? Якщо коротко, то тепер всі продукти в рамках пакету JetBrains All Products (тобто усі десктопні інструменти) отримують оновлення приблизно в один і той же час кілька разів на рік. Таким чином, версія — це просто рік і послідовний номер «пачки» релізів. Основні можливості, реалізовані на платформі, потрапляють у всі IDE одночасно, й така уніфікація версій дозволяє легше орієнтуватись в платформних зміни.

Крім того, ми вирішили відмовитися від схеми випуску мажорних-мінорних релізів. Тепер кожен реліз націлений на те, щоб принести користь як новими можливостями, так і постійними баг-фиксами і поліпшеннями продуктивності. Докладно про причини переходу та новою схемою можна почитати в статье на англомовному блозі компанії.

А тепер — безпосередньо про нові можливості!


C++ парсер і поліпшення по роботі з кодом на C++
Довгий час CLion підтримував C++11 з обмеженнями: некоректно оброблялися variadic templates, constexpr, user-defined літерали. У цій версії ми взялися за те, що, як нам здалося, що «заважає» більшості наших користувачів — variadic templates. Код, підкреслений червоним, некоректні нотифікації від аналізатора коду, невірне автодоповнення і інші проблеми часто були пов'язані саме з цією можливістю C++11. Реалізація variadic templates дозволила закрити близько сотні багів в нашому трекері! Зокрема, поспішаємо порадувати користувачів бібліотеки Qt — виклики connect тепер обробляються коректно, а вбудований аналізатор коду не попереджає про некоректні типи:


Якісь проблеми все ще є, але їх вже значно менше. А якщо раптом ми ще про те не знаємо, обов'язково додаєте репорти в наш трекер.

Крім іншого, ми нарешті домоглися коректної роботи автоматичного імпорту для символів з STL (на жаль, ще залишаються проблеми при роботі з MinGW-w64). Тепер, якщо відповідний заголовковий файл не підключений, а символ вже використовується, CLion пропонує додати потрібну директиву
#include
:


Якщо в CLion поставити курсор на який-небудь символ і викликати вікно документації (
Ctrl+Q
для Linux/Windows,
F1
для OS X), можна подивитися визначення відповідного символу і місце, де він визначений. У новій версії вікно документації підтримує гіперпосилання на пов'язані топіки, що істотно полегшує процес читання та розуміння коду:


Окремо згадаємо нові можливості кодогенерации код на C++. Раніше для створення нових функцій було дві можливості — Override і Implement. Тепер з'явилася ще й Generate Definitions. Чим же вони відрізняються? По суті, ми виділили з Implement створення тіла функції, а в Implement залишили тільки можливість генерації визначення для чисто-віртуальних функцій базових класів. Нова функція доступна з меню генерації (
Alt+Insert
на Windows/Linux,
⌘N
на OS X), безпосередньо (
Shift+Ctrl+D
на Windows/Linux,
⇧⌘D
на OS X) і через intention actions (
Alt+Enter
):


Але головне навіть не це. Найважливішим поліпшення є можливість генерувати функції in-place (не важливо, через Override/Implement або через Generate Definitions), тобто там, де стоїть курсор. Хочете отримати тіло функції в заголовочном файлі — викликайте функцію у відповідному класі в цьому заголовочном файлі, хочете в .cpp файлі — ідіть туди і викликайте генерацію там. При наявності декількох варіантів CLion уточнить, де саме ви хочете отримати визначення функції:


Управління директоріями
CLion покладається на структуру проекту, яку задає CMake. Тобто включені або не включені файли в проект, де шукати файли з
#include
директив і т. д. А що, якщо серед файлів, які варто мати включеними в проект, знаходяться ще й файли логів або артифакты збірки? Як пояснити CLion, що не треба витрачати час на індексацію таких директорій? Або як виключити бібліотеку з контексту, в якому працюють рефакторинги (навряд чи вам хочеться, щоб рефакторинги вплинули на код бібліотеки, який, хоч і лежить всередині вашого проекту, але все ж є стороннім)?

Для всіх цих цілей і реалізована нова можливість Mark directory as:


Вона дає можливість вручну розмітити директорії відповідним чином. Вибір вплине на роботу:
  • автодоповнення і автоімпорту
  • кодогенерации
  • навігації на файл/клас/символ по його імені
  • пошуку по зазначеному шляху
  • рефакторингов


Так, наприклад, рефакторинги і кодогенерация не будуть працювати в виключених з проекту директоріях (Excluded) або до бібліотек (Library Files). А навігація і пошук мають спеціальні опції для відображення результатів пошуку по бібліотеках.
Трохи більш докладно це розписано в окремому пості в нашому англомовному блозі.

На додаток до цього, якщо ви розробляєте проект на одній машині, а збираєте/запускаєте на інший, CLion 2016.1 з'явилася можливість налаштувати автоматичну синхронізацію файлів по FTP, FTPS або SFTP.

Відладчик
Одна з найбільш довгоочікуваних можливостей — налагодження процесу, запущеного на локальній машині з IDE. Звичайно, багато запитають, а як же віддаленого налагодження? Поки ні, але до неї ми теж доберемося!

До процесу можна подконектиться, вказавши його ім'я, або ідентифікатор (pid). Після встановлення з'єднання і при наявності вихідного коду, відкритого в CLion, Вам будуть доступні всі можливості вбудованого налагоджувача — точки зупину, перегляди значень змінних, обчислення виразів тощо


Нові мови
У CLion 2016.1 з'явилася вбудована підтримка Python, а також доступний для установки плагін для підтримки Swift. Якщо у вас змішаний проект на Python/C/C++ чи вас цікавить Swift IDE на Linux, то милості просимо! В плагінах підтримані:
  • стандартні для наших IDE можливості редактора (підсвічування, автодоповнення, форматування)
  • навігація по коду та пошук
  • аналізатор коду (для Python)
  • рефакторинги
  • налагодження


Детальніше про можливості плагінів див. в нашому блозі: Python, Swift. А для короткого ознайомлення пропонуємо два відео:


І багато іншого
У цей реліз також увійшли такі зміни:
  • Нова команда для скидання CMake Cache. Дозволяє почистити CMake Cache і при цьому не скидати кеші і індекси самої IDE.
  • Підтримка multiple working trees для Git.
  • Автоматичне створення Google Test конфігурацій при завантаженні проекту при наявності в проекті CMake таргету, слинкованного gtest бібліотекою.
  • Кастомный білд JRE на Linux з виправленнями від команди JetBrains.


І, нарешті, невелике відео, що демонструє нові можливості CLion 2016.1:


Про ці та інші можливості нової версії можна почитати на сайті продукту. Слідкуйте також за статтями в нашому англомовному блозі. Як зазвичай, є 30-денна безкоштовна пробна версія, розділі цін можна дізнатися про вартість. Ми будемо раді відповісти на будь-які ваші питання в коментарях.

Ваша команда JetBrains CLion
The Drive to Develop


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.