- PVSM.RU - https://www.pvsm.ru -
Привет!
Вот и подоспел первый релиз CLion в этом году — 2018.1! В этом посте мы расскажем, что мы успели реализовать за эти месяцы и какие планы у нас на следующий релиз.
Cначала очень коротко о главном. В этот релиз вошли:
Можно прямо сейчас скачать бесплатную 30-дневную версию с нашего сайта [1] и попробовать новые возможности. Для этого мы даже подготовили специальный небольшой демо-проект [2]. А ниже поговорим об улучшениях более подробно.
Спойлеры! Мы смотрим на разные альтернативные варианты языкового движка (есть и наши наработки, и clang, и много чего еще интересного), проводим тесты, сравнения, измерения производительности, анализ возможностей по расширению. А пока все это в процессе, мы продолжаем улучшать текущий языковой движок.
Во-первых, мы исправили десятки различных проблем в парсере и анализаторе кода. Многие пользователи на стадии Early Access Program отмечали улучшения, так что верим, что все это было не зря. В частности, множество проблем и ложных ошибок в анализаторе кода исправлено для случая тернарного оператора.
Во-вторых, рефакторинги Rename и Change Signature теперь более надежно обновляют иерархии. Например, если переименовать функцию в классе-наследнике, то CLion не только предложит обновить базовый класс, но и пройдется по другим классам, унаследованным от этого базового:
Такие каскадные изменения просто необходимы, чтобы код после рефакторинга остался корректным.
И самое главное, добавлена поддержка двух больших возможностей C++17:
В прошлом году (в версии 2017.2) мы добавили в CLion интеграцию с инструментом для анализа кода Clang-Tidy. Он предоставляет десятки различных проверок, включая группы Clang Analyzer, C++ Core Guidelines, Modernize и Google. В этом релизе мы обновили забандленную версию инструмента, чуть изменили набор проверок [3], включенных по умолчанию, а самое главное:
Для начала, компилятор Microsoft Visual C++ теперь включен по умолчанию. То есть, если он у вас установлен, то можно сразу воспользоваться им в CLion (не надо, как раньше, идти и включать настройку в Registry).
Но самое заметное изменение — это поддержка Windows Subsystem for Linux (WSL). Это подсистема на Windows 10 предоставляет Linux-окружение, встроенное в Windows, и позволяет собирать, запускать и отлаживать Linux-приложения на Windows.
CLion теперь умеет работать с таким тулчейном и даже позволяет запускать приложение с Valgrind Memcheck — инструментом для поиска утечек памяти, некорректного доступа к памяти, использования неинициализированных переменных и пр.
Таким образом, WSL дает уникальную возможность запускать приложения, которые не доступны на Windows (как например, тот же Valgrind).
Кстати, если говорить про средства анализа ошибок работы с памятью, сейчас наша команда занимается интеграцией Google Sanitizers. Надеемся, что результаты будут доступны уже в 2018.2.
Стоит отметить, что интеграция WSL реализована по ssh, так как это первый шаг к полноценной поддержке удаленной разработки в CLion. Ее первый прототип мы надеемся показать уже в 2018.2. А пока можно попробовать WSL — ссылку на скрипт для быстрой настройки WSL, а также детали работы можно найти в блоге [5].
Мы начали процесс отделения проектной модели CMake от CLion. Первые результаты уже можно наблюдать в релизе 2018.1. А именно, CLion позволяет теперь открыть файл или целую папку, не имеющую CMake-файлов. Конечно, многие умные функции по работе с кодом окажутся отключены (так как все информацию о проекте CLion берет именно из проектной модели), но того, что останется, хватит для первичного ознакомления с кодом, чтения отдельных файлов и пр.
В CLion 2018.1 появилась возможность вызвать CMake Install. Соответствующее действие доступно из меню Run или в возможных шагах в Run/Debug-конфигурации (там Install можно добавить, например, сразу после сборки, но до запуска конфигурации). При вызове Install происходит запуск команды cmake install и, соответственно, устанавливаются все таргеры, для которых определена эта команда.
Кстати, теперь создавать файл CMakeLists.txt можно из меню создания нового файла (Create new file — Alt+Insert на Windows/Linux, ⌘N на macOS):
Преимущество в том, что файл будет создаваться по шаблону, который можно кастомизировать под свои нужды в настройках Editor | File and Code Templates.
Да, мы знаем, вы просили эту возможность очень давно, а embedded-разработка так вообще не представляет себе IDE без такой возможности… В CLion 2018.1 hex view экспериментальный и доступен под ключом в регистре:
Отображаться hex view будет как в окне отладчика:
так и в самом редакторе, в Inline Variables View:
Почему так сложно, почему экспериментальная поддержка? Скажем так, реализация пока вызывает у нас сомнения, и хочется сделать лучше. К тому же, доступен пока hex только для целочисленных типов, и нет binary view.
Хоть CLion и написан в основном на Java и Kotlin, как и вся платформа IntelliJ, у нас есть небольшая часть разработки на C++. А значит, мы, конечно, пробуем свой продукт для своих же задач. И пусть хочется, чтобы было больше dogfooding-а в нашей работе, но даже сейчас видны результаты. В этом релизе случилось сразу несколько улучшений редактора по мотивам нашего собственного использования продукта (это уже не говоря о разнообразных баг-фиксах).
“Хлебные крошки” (breadcrumbs) для C и C++ добавлены для пространств имен, классов, структур, функций и лямб. Это такой удобный способ чтения и навигации по коду — внизу редактора показываются небольшие маркеры того, где сейчас находится курсор, и можно кликать по этой иерархии маркеров, чтобы подниматься на уровень выше (например, из функции в класс, в котором она определена):
Платформенная возможность unwrap/remove теперь реализована и в CLion, для кода на C/C++. С помощью нее можно удалить те блоки кода, которые включают данный (где стоит курсор). Особенно это бывает полезно, чтобы убрать объемлющий тернарный оператор, вызов функции или, например, блок if..else, содержащий текущее выражение:
В этой версии также добавилось сворачивание управляющих конструкций if/else, do/while, for, switch (Shift+Ctrl+Period / Ctrl+= на Windows/Linux и ⇧⌘./⌘+ на macOS). И опции для настройки сворачивания окна сообщений при сборке проекта.
В CLion, помимо C/C++, уже некоторое время есть встроенная поддержка Python (аналог PyCharm Community Edition), поддержка JavaScript, XML, HTML, CSS и других веб-технологий, а также плагин для Swift. С конца прошлого года появилась поддержка Kotlin/Native (через плагин). А в версии 2018.1 мы добавили встроенную поддержку для Objective-C / Objective-C++ (список возможностей смотрите тут [6]), а также положили в репозиторий плагин для Fortran и обновили плагин для Rust. Про последнее поподробнее. Это тот же плагин, что доступен в IntelliJ IDEA, но:
Подробнее про плагины для Fortran и Rust смотрите тут [7].
И в заключение, демонстрация новых возможностей CLion 2018.1 на английском языке от нашего девелопер-адвоката:
Вот и все! Заинтересовались? Тогда качайте 30-дневную бесплатную пробную версию [8] с официального сайта компании, где в разделе цен [9] можно также узнать о стоимости подписки. Следите также за статьями и обновлениями в нашем англоязычном блоге [10]. Мы будем рады ответить на любые ваши вопросы в комментариях.
Ваша команда JetBrains CLion
The Drive to Develop
Автор: anastasiak2512
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/276560
Ссылки в тексте:
[1] нашего сайта: https://www.jetbrains.com/clion/download
[2] демо-проект: https://github.com/anastasiak2512/CLion2018_1Demo
[3] набор проверок: https://confluence.jetbrains.com/display/CLION/Clang-Tidy+in+CLion%3A+default+configuration
[4] modernize-use-nullptr: https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
[5] найти в блоге: https://blog.jetbrains.com/clion/2018/01/clion-and-linux-toolchain-on-windows-are-now-friends/
[6] тут: http://jbrcom-staging.labs.intellij.net/clion/whatsnew/#v2018-1-more-languages
[7] тут: https://blog.jetbrains.com/clion/2018/03/from-cpp-to-native-development-rust-and-fortran-plugins-in-clion/
[8] бесплатную пробную версию: https://www.jetbrains.com/clion/download/
[9] в разделе цен: http://www.jetbrains.com/clion/buy/
[10] англоязычном блоге: https://blog.jetbrains.com/clion/
[11] Источник: https://habrahabr.ru/post/352388/?utm_campaign=352388
Нажмите здесь для печати.