Комментарии 70
Ссылка на групповой issue по теме: youtrack.jetbrains.com/issue/CPP-988
Спасибо.
У меня тоже на некоторых файлах тормоза такие что проще в vim редактировать:
https://youtrack.jetbrains.com/issue/CPP-16887
Да, есть тикет CPP-13493, добавил дамп для последней версии.
Ещё интересно автодополнение как в clangd для членов, методов и подтипов.
Ну и, конечно, всё ещё есть не критичный, но существенный процент ошибок вообще, а в выражениях с концептами этот процент значительно выше.
Производительность Resharper C++ удалось подтянуть, по сравнению с ранними версиями. Сейчас, на мой взгляд, она на удовлетворительном уровне.
#include <string>
#include <concepts>
template <typename T>
concept int_addable =
std::integral<T> &&
requires (T const &t) { { t + t } -> T; }
;
template <int_addable T>
void foo(T &t) {}
int main()
{
foo(std::string{});
}
хотелось бы сообщения:
concept int_addable isn't satisfied for function foo() // это есть
because the clause std::integral<T> isn't satisfied for type std::basic_string<char, std::char_traits<char>> // а этого нет
Давно хотел попробовать CLion, но так как основное моё занятие — embedded, то повода как-то не было.
Недавно начал ковырять современные плюсы(сейчас хочется врезать себе за многолетнее сидение на чистом Си) и начал пытаться участвовать в opensource.
Я правильно понимаю, что если проект использует Cmake — я смогу его запускать и отлаживать?
Да можно, единственное, нормально поддерживается только GCC, причём не все версии, остальные немного кривовато поддерживаются или вообще не поддерживаются. Жду поддержку IAR нормальную.
Отладка через GDB работает не плохо, но если отладчик какой то китайский, то будьте готовы много и долго настраивать конфигурацию для него.
Ну т. е. если только CMake хотите для какого-то неизвестного тулчейна, то не все так просто. Работать будет, но не все.
Используем разные gcc с 4 по 9, свои тулчейны, расскажите пожалуйста, что не должно работать?
Вчера попробовал — указал путь к проекту, завелось с полпинка.
В общем, пока очень нравится. Проект большой(Kicad), но работает довольно шустро.
И такой вопрос — изучил варианты лицензирования, как понимаю, после 30 дней — только покупать? Так как, вроде, я не core developer и, увы, уже не студент.
Сижу ещё с eap, стало намного лучше. Хотелось бы, чтобы при rename запоминались места поиска, вроде last opened files.
И еще из Ctrl+Tab селектора.
Пример:
1. В двух вертикальных вкладках открыты два разных файла.
2. Я переключаюсь из одной вкладки на другую и один раз выполняю Ctrl+Tab
3. Результат — в обоих табах открыт один и тот же файл.
После обновления вместо открытия одного и того же файла в двух вкладках я получаю автоматическое переключение фокуса на предыдущую вкладку.
Если вы видите какую-то конкретную проблему, то включите memory indicator в IDE и последите за ним, если слишком много или кажется, что память слишком быстро заканчивается, то пишите нам в саппорт — будем разбираться.
Под нормальной возможностью подразумевалось что-то подобное существующим проектам (Arduino IDE, Platform IO), когда нужные библиотеки и платы можно подгружать на ходу. Выбирать компиляторы, отправлять на устройства и т.д.
Существующие решения уж очень неприятны. В ArduinoIDE вообще отвратительно с кодом работать, а PlatformIO уж очень сырая, настолько, что ее порой перезапускать приходится, чтоб она восстановилась.
Например в проекте есть переменная с именем «calc» когда я начинаю печатать, то сначала IDE предлагает calloc(), clock(), еще много чего, что я даже не инклюдил(calc будет где-то в середине списка), и только ближе к концу ввода имя нужной переменной/ класса. Кстати недавно использованные имена теперь в этом списке вверх не поднимаются.
Проблема появилась после обновления.
Ссылка на тикет по улучшению приоритетов элементов — youtrack.jetbrains.com/issue/CPP-18448
Браво! Действительно крутые фичи.
Но когда ждать ждать поддержку дебага под MSVC?
Мы с командой ужасно недовольно быстродействием отладчика. К 10-секундным ожиданиям подгрузки переменной я как-то привык (шучу — не привык, бесит ужасно), но то, что дебаг сессия иногда вообще отваливается из-за доолгого ожидания, это уже перебор. Вы делаете что-нибудь в этом направлении?
1) Подскажите как включить подсветку синтаксиса (просто базовую) Groovy (ну или чего похожего). У меня в корне проекта Jenkinsfile и править его хочется прям в Clion. Пробовал указать что это например JavaScript, но он ошибками разукрашивает так что становиться не читабельно.
2) В CentOS 7 ( Mate) если переключить на другое окно (например браузер), а затем нажать мышкой на панели (чтоб переключить обратно в Clion) то не разворачивается, приходиться нажать свернуть браузер.
3) Deployment по SFTP: все настроил, коннектится. В Mappings добавил 2 папки, в них складываются готовые бинарники (bin и lib), установил галочку Automatic Upload. Так вот при перекомпиляции новые бинарники не заливаются автоматом на сервер, приходиться на каждом мышкой: Upload to . Если же удалить бинарник, то он автоматом удаляется и с сервера.
Либо со мной что не так, либо лыжи не едут.
И еще:
Планируется ли «настоящая» удаленная разработка? как бы по системе клиент-сервер, чтобы парсер исходников работал на удаленной машине (и ресурсы на это потреблялись только там), а на клиенте только отображение. Проект большой и если подмонтировать по ssh папку и канал не очень, то это ужасные тормоза. Собирать проект локально — нужно локальную машину хорошую с нужной архитектурой, что не всегда возможно (напр для POWER8+).
А про «настоящую удаленную разработку», когда-нибудь наверное планируем, но не в самое ближайшее время. Сейчас вариант удаленной разработки — это локальный парсинг, а сборка/запуск/отладка — на удаленной машине. Тонкий клиент, который только UI фактически, это возможно теоретически и в эту сторону будем обязательно думать.
В этом релизе также появились настройки CMake по умолчанию.
На скриншотах мы видим поле ввода "CMake options:". Сделайте настройки параметров как это реализовали Qt Creator и cmake-gui. Да, при таком подходе получится взять реестр настроек у CMake только после его первого прохода. Но, для грамотно составленных CMakeLists.txt вполне возможно для редактирования полей использовать делегаты, к примеру для типа FILEPATH использовать диалог открытия файла, для PATH — директории; для значений типа BOOL использовать чек-боксы; для трюка с перечислениями — предоставлять выпадающие списки; для остального — поле ввода значения. Причём, есть возможность выводить и подсказку, что это за свойство и для чего оно нужно (это всё выполняется соглашениями в CMake и будет работать как минимум в cmake-gui и QtC):
Примеры настроек (реальные имена удалил, NDA):
##
## Options set, to keep different settings for different build configurations at the same time
##
#set(BOARD_MODEL A1 CACHE STRING "Board model")
#set(LINUX_CONFIG a1_defconfig CACHE FILEPATH "Specify Linux building config for some projects")
#set(FACTORY_BUILD Off CACHE BOOL "Building factory firmware")
#set(USE_LINUX Off CACHE BOOL "Use Linux for project")
#set(BYPASS_TOOLCHAIN_CHECK Off CACHE BOOL "Do not check toolchain for give SOC/RELEASE")
#set(VERBOSE Off CACHE BOOL "Enable verbose building")
# Now, BOARD_MODEL is ENUM ;-)
# Possible values for BOARD_MODEL in more-less Human-readable form.
#set_property(CACHE BOARD_MODEL PROPERTY STRINGS
# A1
# A2
# B33
# B34)
Remote GDB Server.
GDB Remote Debug
Слушайте, а не хотите посмотреть как у конкурентов сделано? Я опять про QtC. Кастомными шагами деплоя и грамотным набором подстановочных значений можно многого добиться. На снимке ниже, загружается код драйвера на тестовую машину, в зависимости от выбранного таргета на запуск собирается или PCIe или USB драйвер и производится его загрузка:
Да в этом примере нет удалённого отладчика, но не вижу проблем и kdbg прикрутить (пока потребности не было). Плюс в пару (точнее — три) кликов можно переключить, на какой "сервер" грузить код:
Да, у меня деплой сейчас выполнен одним скриптом. Изначально всё было отдельными шагами в самом QtC. Но потом потребовалось переносить между машинами, плюс захотелось подобную процедуру из консоли выполнять… В общем — унифицированный скрипт оказался удобнее.
Настройки CMake Profiles сделаны сейчас в виде диалога, но их можно менять и в CMakeCache напрямую (раньше был некий UI, потом нас попросили вернуть редактирование кеша как файла). Диалог имеет приоритет над кешом. В принципе, есть план в будущем сделать и какой-то GUI редактор кеша.
Кастомные шаги в Run/Debug конфигурациях сделать можно и сейчас. Там можно любой external tool вызвать на таком шаге. Наверное, можно каких-то предконфигурированных шагов тоже туда забить. Наверное, можно завести реквест в трекере и делиться там своими такими хотелками, мы посмотрим, какие шаги самые популярные и сделаем pre-config для них.
Сейчас там такой список:
Вообще сейчас команда уже довольно давно обсуждает переделки в районе Toolchains / CMake profiles. Скоро должно стать более гибко и удобно.
CLion 2019.3 уже здесь! Повышенное быстродействие редактора и самые долгожданные новые возможности