Как стать автором
Обновить

Релиз CLion 2021.1: глобальный анализ потоков данных, улучшения для удаленной работы, постфиксное автодополнение

Время на прочтение8 мин
Количество просмотров4.5K
Всего голосов 12: ↑10 и ↓2+8
Комментарии73

Комментарии 73

Обновил DataGrip, Idea… Зачем такие вырвиглазные заставки теперь? :((((

В IntelliJ IDEA и CLion сплеши на темном фоне. Сделали чуть менее контрастными как раз по просьбам пользователей. Но вообще передадим ваш фидбек команде дизайна. Спасибо!

Обновил PHPStorm и RubyMine — тоже не понял зачем такие отвратительные заставки. Наверное градиенты уже не в моде
Поддерживаю предыдущих комментаторов, стиль новых заставок тоже не нравится. Старые с градиентами смотрелись ИМО гораздо лучше.
«Напоминаем, что при покупке годовой подписки на любой продукт предоставляется резервная бессрочная лицензия.» Ага, только забыли напомнить, что обновления на бессрочную лицензию будут доступны только внутри 2021.1 релиза, а не всего 2021 мажорного релиза. Что делает покупку IDE вначале года не выгодной т.к. содержит в себе еще кучу свежих багов. И есть еще стойкое чувство при покупке, что тебя жестко наегрели, т.к. другой весь софт дает бесплатно обновления в течении мажорного релиза, и дает все обновления бесплатно на следующий мажорный релиз если он был выпущен в течении срока подписки, поэтому пожалуй стоит отказаться от покупки. Лучшие заставки были в 2019 году, последние два года, это просто вырви глаз уродство! А еще просто блевать охота от анимации при закрытии окна, когда приложение вытягивает в один из углов рандомно. Не понятно зачем суете свою кривую анимацию при закрытии и используете ее вместо системной!

У нас нет понятия 2021 мажорного релиза. Мажорных релизов — 3 в год (2021.1, 2021.2, 2021.3). Минорные апдейты (со второй точкой) с баг-фиксами доступны по "вечной лицензии" на ту версию, с которой начался годовой период оплаты.

Про то и речь, что обман и все не как у нормальных компаний. Даже баги которые были отправлены вам 3 года назад в вашем софте были не поксены, и мне до сих пор приходят очень часто уведомления по ним! Не говоря про то, что некоторого важного функционала нет ни в rider ни в clion, и даже не предвидится, баги не фиксятся и приходится использовать visual studio, которая хотя бы дает возможность нормально программировать, а не ждать погоды от разработчиков Jetbrains.

А можете сказать конкретнее, какие именно баги особенно мешают и какой важный функционал отсутствует?

Вас что на youtrack.jetbrains.com/issues забанили за плохую работу и отключили сортировку по дате, чтобы открыть старые открытые баги? Кучу багов WSL, mingw-w64 с WSL не поддерживался, даже QT поддерживается криво, кучу ошибок сыпет по синтаксису, часть видимо пофиксили в 2021.1. Нет профилировщика GPU, графических элементов. Cамое интересное до сих пор нет в отладчике смены отображения данных для базовых типов, мне например надо не редко смотреть к пример int в бинарном формате и 16 ричном, сейчас только можно смотреть в 10чном. При этом дамп можно смотреть в 16ричном. Не возможно заниматься системным программированием и отлаживать ядро, за исключением linux. Embedded поддержка тоже не полноценная, ни xilinx ни stm32, нормально не поддерживаются, даже нет базовой подсветки синтаксиса VHDL, все плагины для поддержки VHDL кривые, нет поддержки HLS. Самое главное IDE очень медленная, когда для embedded ide на основе eclipse просто летают. Частые баги с кэшем, часто IDEs от Jetbrains взбешиваются и пытаются сделать рехэш всего проекта. К примеру IDEA каждый раз пытается индексировать openjdk… Зачем? Расширенные индексы грузятся долго, и почему-то загружаются по новой при каждой загрузке проекта! Видимо нет хэш таблиц контрольных сумм файлов?! В Rider кучу проблем с XAML, кривая поддержка графических элементов, даже просмотр не всегда работает, не говоря про отладку и профилировку их. Xcode и Visual Studio давно все это умеют и на голову полноценнее, стабильнее. Не понятно зачем покупать ради QT Clion если есть нормальная native поддержка в Qt Creator. Нет там автодополнения, ну и х с ним… Вон KDE написан без вашей чудо IDE и ничего, развиваются, никто из разработчиков не умер. Автодополнение, рефакторинг и некоторые фишечки единственные плюсы продуктов от Jetbrains. И все это рассчитано на опенсорс, на веб или околовеб. Самый стабильный продукт из всех это IDEA, который полноценное можно использовать. Остальное работает криво, и приходится изобретать костыли, на которые уходит большем времени чем экономит автодополнение. Про серьезную разработку чего-то графического или системного можно забыть…

Тикеты в YouTrack я, безусловно, смотрю, как и читаю весь фидбек по всем соц. каналам наших продуктов. Комментарий не очень вежливый с вашей стороны.


Но если оставить ваш уровень токсичности в стороне, то давайте разбираться по пунктам. Соб-но, конкретные проблемы я спрашивала чтобы как-то посмотреть, какие у нас планы и можем ли мы что-то приоритизировать из важного вам. Ведь бывает так, что задача лежит, но с низким приоритетом, потому что про нее особо никто не спрашивает.


  1. "Кучу багов WSL, mingw-w64 с WSL не поддерживался" — на WSL много всяких задачек, но наверное самое критичное это определение самого WSL. Вообще вся технология довольно молодая, и MS часто и много там всего меняет прямо в основании, да и багов там тоже много. WSL и WSL2, например, совсем разные системы. Поэтому определение, к сожалению, пока не очень стабильно. Остальное из мне известного — этого какие-то штуки, которые иногда не стабильно работают в случае с WSL из-за особенностей маппинга данных или чего-то такого. Если что-то из такого особо мешает, скажите, мы посмотрим, что можно сделать. Про mingw-w64 я, к сожалению, не поняла, потому что на WSL же линуксовый тулчейн.


  2. "даже QT поддерживается криво, кучу ошибок сыпет по синтаксису, часть видимо пофиксили в 2021.1" — вообще подсчетка кода и показ ошибок через Clangd гарантирует, что корректно компилирующийся код мы подсветим без ошибок. Какая-то специфика Qt может не учитываться при автогенерации кода, но это другая история. По трекеру есть вот такая задача CPP-14377, но автор ее нам так и не ответил, а у нас не воспроизвелось. Если у вас воспроизводится проблема, пожалуйста, отпишитесь в задаче.


  3. "Нет профилировщика GPU, графических элементов." — было бы наверное и вправду интересно что-то такое добавить. Надо изучать существующие инструменты для начала, конечно. Создала реквест к нам CPP-24788.


  4. "нет в отладчике смены отображения данных для базовых типов" — вообще hex-view есть (вот тут написано, как его включать). Мы его называем "экспериментальным" только потому, что нам не очень нравится, как именно он работает. Хочется переписать и это даже есть в планах у подкоманды отладчика, но пока отвлекают более приоритетные задачи.


  5. "даже нет базовой подсветки синтаксиса VHDL" — не самый популярный запрос к нам, признаюсь често, но некоторый экспериментальный плагин у нас есть. Узнаю, что там с публичным доступом к нему.


  6. "Embedded поддержка тоже не полноценная, ни xilinx ни stm32, нормально не поддерживаются" — а что все же такое "нормальная поддержка"? Текущая поддержка описана вот тут. Она, конечно, сильно не полная — мы только недавно начали двигаться в эту сторону. Думаю, Elmot будет очень интересно послушать ваши идеи.


  7. реиндексирование — это явная проблема, ее стоит заводить в трекер.


  8. Про Rider отвечу позже, обсужу с командой.



Не понятно зачем покупать ради QT Clion если есть нормальная native поддержка в Qt Creator.

Конечно, незачем. Но тем, кто для Qt разработки использует CLion, это может быть полезно. Соб-но, запрос пришел от таких пользователей.

1. mingw генерирует более быстрый код. Когда я писал быстрый аналог protobuf, то версия на mingw генерировала значительно более быстрый асинхронный многопоточный код чем MSVC. Но под виндовс сборки mingw кривоватые, устаревшие и генерировали файл в 2 раза больше. Самая последняя сборка есть в Arch Linux и с ней полноценно можно компилировать виндовые приложения. Arch Linux можно поставить в WSL, но проблема в clion была, что он вроде кроме как с убунтой нормально ни с кем не дружил, и не стандартные диструбитвы не видит. WSL приложения можно выполнять как консольные команды, если прописать пути к файлам mingw то тоже какой-то глюк был, уже не помню. Если с помощью хака запускать в WSL SSH сервер, то так же не возможна отладка на виндов и сборка в WSL. Если запускать clion под Arch Linux, то в arch linux cmake опережает поддерживаемую вами версию, у меня выходит данная версия CMAKE не поддерживается. cmake version 3.20.1 В Arch есть специальный пакет aur.archlinux.org/packages/mingw-w64-cmake который устанавливает пути и окружения для сборки в mingw, но этот cmake нельзя указать, он не поддерживается. Можно сделать хак и создать toolchain файл и загрузить его с помощью -DCMAKE_TOOLCHAIN_FILE во встроенный в clion cmake pastebin.com/qiUPnhm6, тогда можно успешно компилировать. Так как путь к toolchain файлу длинный, его не удобно вписывать в параметры, он мешает их редактировать и смотреть, поэтому есть предложение добавить соответствующее поле где можно указать путь к тулчаин, так как например указывается путь к cmake, gdb, gcc, g++ и т.д. Про путь к тулчаин вроде еще много лет писал на вашем YouTrack.

2. Сыровата поддержка, хоть вас просили добавить поддержку QT, она еще сырая.

5. VHDL если бы поддерживался и с ним было бы удобно работать, то было бы хорошо это плюс к Embedded. И было бы хорошо, если можно было бы заменить Xilinx Vitis. Как видится мне Embedded это направление, где CLion может взять себе долю рынка, особено с поддержкой MISRA. Для десктоп приложений есть QT, Visual Studio, Embarcadero, XCode с визуальным редактором и набором компонентов, к пример Embarcadero стоит значительно дороже, но там релизы более стабильные и поддержка лучше. Плагин VHDL не очень интересен, так как банально нет даже симуляции, например даже в matlab она есть.

6. Были большие надежды, что ошибался, но вот достал свою плату на h745zi-q от ST, пол дня промучался пытался открыть и создать проект проекты по разному, посмотрел документацию, но пропустил один момент, что там есть приписка 745 не поддерживается, видимо все многоядерные чипы не поддерживаются, а судя по ссылки plugins.jetbrains.com/plugin/10115-openocd--stm32cubemx-support-for-arm-embedded-development/versions/stable на модуль поддержка только в альфа режиме и не особо он развивается, ссылка с вашей документации. А ведь так хотелось, что бы можно было заменить stm32ide. В первую очередь загрузка прошивки, и удаленная отладка. Еще одним пунктом было бы хорошо иметь возможность собирать загрузочные образы, как в Xilinx Vitis. Вообще пока очень сырая поддержка.

В Rider была отписка, что все это проприетарное и макрософт не делится, поэтому поддержка проблемная. Сейчас не знаю как обстоят дела, у меня сейчас основная система для программирования Arch Linux, и под виндовс ставить тулчеин не очень охото проверерять.

Простите за резкость, я всегда прямолинеен, нравится вам или нет, но вот я нигде не слукавил и написал главные недостатки продуктов jetbtains. Надо много дорабатывать, чтобы IDE стали более самостоятельными и полноценными, а то получается поддержка Embedded в Clion хуже чем в arduion ide.

Про MinGW.


  • лучше использовать mingw-w64, чем просто mingw
  • то, что вы описываете про WSL, это поддержка кастомных дистрибутивов, не из маркетплейса виндового — это сейчас в работе как раз, будет видимо в 2021.2
  • cmake version 3.20.1 использовать можно. Мы пишем, что поддерживаем официально версии до 3.19, так как мы с ними протестировались, поддержали какие-то фичи, проверили, что точно все гладко работает. Но для 3.20 мы вроже критичные баги тоже в этом релизе поправили и пока других не видим — так что можно брать.

Про Qt: "сыровата" это, к сожалению, не очень критерий. Говорите, что плохо, мы посмотрим. Так иначе не понятно, что улучшать.

Речь была про mingw-w64. Под виндовс сборки сильно отстают.
У меня на arch linux уже gcc 10.3 в mingw-w64. Вообще в идеале добавить кроме пути к toolchain файлу еще возможность указать .sh или .bat файл, который может устанавливать переменные среды компиляции.
Хорошо
Передайте разработчикам JetBrains Toolbox.
После обновления Clion на Linux у меня не тригернулось обновление ярлыков, даже после перезагрузки. Вероятно они после обновления ярлыков, не тригерят обновление кэша ярлыков. Пусть проверят и если такого функционала нет, пусть добавят выполнение строчки ниже после обновления desktop файлов. Тут заметил, что не понятная тормозящая анимация в KDE при закрытия и вытягивание окна в угол при закрытии у меня во всех JAVA приложениях, в обычных приложениях такого нет. Видимо это делает java swing т.к. в настройках KDE не такой анимации.
update-desktop-database ~/.local/share/applications

Спасибо, закинула коллегам.

> 745 не поддерживается
Во-первых, вы нашли старую версию плагина, который 2 года как включен в сам CLion и развивается как интегрированная часть. На первой странице это явным образом написано.

2-х ядерные чипы, как и чипы с включенной TrustZone действительно на данный момент напрямую не поддерживаются, но есть тикет, в нем же приведен workaround.

Хорошо, тогда ждем полной поддержки stm32.

Коллеги говорят, что превью плагина для VHDL можем выдать приватно на потестить, если интересно.

По поводу


В Rider кучу проблем с XAML, кривая поддержка графических элементов, даже просмотр не всегда работает, не говоря про отладку и профилировку их.

Мы переработали его в 211 и он не должен уступать в чем-то студийному
Про дебаг и профилирование, если честно, проблем не знаем, подскажете о чем речь?

У меня, после апдейта, когда закрываешь и потом открываешь ide, перестает работать навигация по коду: все модули, классы, методы, константы и т.п. становятся неизвестными для ide. Лечится инвалидацией кешей и индексов. Так что плевать как выглядит новый сплеш.

Интересно. А после инвалидации кешей больше не проявляется? Только один раз было?

Сегодня уже два раза такое было. Оба раза ide закрывалась системой при перезагрузке.

Пришлите, пожалуйста, лог файл из IDE в наш саппорт clion-support@jetbrains.com. Изучим проблему.

anastasiak2512 вы багрепоты не читаете? С подобной проблемой столкнулись так же пользователи IDEA. В соседней теме про idea, там несколько человек отписалось с этой проблемой.

Во-первых, проблемы в разных IDE могут оказаться не связанным, во-вторых, даже в idea сейчас идет инвестигация и они просят логи, чтобы понять, в чем проблема. Нам бы очень помогло больше данных о проблеме.

Нам все еще был бы полезен лог файл из IDE. У нас есть несколько связанных (кажется) проблем сейчас в трекере (IDEA-266391, IDEA-265506), но ясности там пока нет. Будем благодарны за любую информацию.

Эх, а нормальной интеграции с Docker / WSL как не было, так и нет. В связке ssh / sftp / rsync нереально работать с разными ветками, вечно нужно какие то танцы с бубном делать чтоб файлы в контейнере поменялись.

Ветки, это скорее про поддержку VCS в ремоут режиме. Ее пока нет, но мы планируем ей заняться, не уверена правда про ближайший релиз.

У меня анализатор перестал понимать constexpr, пишет в подсказке, давайте создадим класс constexpr. И всё красное из за этого.
Закладка, С++-> Clang зависла и не открывается.
Вернулся обратно к 2020.3.3

А можете пример в трекер засабмитить, чтобы мы посморели? И какая ОС/тулчейн?

Ссылка потерялась?

Вроде норм все.

Да, теперь вижу все вложения. Будем разбираться, отпишемся, как станет понятно или появятся еще вопросы.

А для чего выключены ошибки из Clang? На последнем скрине — Show errors and warnings from Clangd.
Подвисание похоже на CPP-24742, но у нас оно не воспроизвелось. Сможете добавить idea.log в эту задачу?

Ошибки выключил потому что ругается на auto в шаблоне, что типа это фича C++17, и как этот ворнинг отключить я не понял. Вот как тут описано.
https://youtrack.jetbrains.com/issue/CPP-18323
Все перерыл. Отключаешь Галку и все хорошо.
Лог скину как на работу пойду.

Вы отключаете подсветку ошибок через Clangd-движок целиком, поэтому показывается некорректная подсветка из старого движка — там это фиксить сложнее. А вот CPP-18323 вроде как поправлена в 2020.1.1, который мы скоро выпустим — проверьте, пожалуйста, как появится.

А проект и тулчейн как выше писали?

Да.

Сейчас попытаемся разобраться… У нас перестало воспроизводится, но может, мы что-то из окружения/тулчейна упускаем.

Еще и CTEST у нас отвалился, на версии 2021.1.1 пишет
Warning: No CTest information found. The CTest version in the selected build configuration must be at least 3.14 to debug tests.
https://youtrack.jetbrains.com/issue/CPP-22195


А на 2020.3.4 все нормально, все работает

А какая версия ctest у вас? Версии 3.13 и менее не особо поддержаны изначально.

А я не знаю, просто апгрейдился до 2021.1.1 с 2020.3.4

Я не про версию CLion, а про версию CTest. Или вы используете бандленный CMake и CTest оттуда?

Бандленный просто выше версией. Нужно смотреть логи запуска ctest, чтобы убедиться какая версия запускается.
Мы пока воспроизвели вот такую проблему CPP-25096 — возможно ваша вызвана ей. Можно нам в саппорт или в этот тикет закинуть логи запуска и ошибку, которая у вас.

Я тут потыкался. Заново создал конфигурацию, сделал CMake clear cash и ребилд, и заработало все.

А auto в шаблонах так и не понимает.

Пример? А то так не очень понятно.

Дакивыше, CPP-18323 не поправлена

Да, там проблема, что компилятор (iccarm) не отдает нам компиляторную информацию, например, значение CXX standard.


Как ворэраунд, можно опции напрямую указать в кланговских опциях для языкового движка, в настройках Clang, под Show errors and warnings from clangd. Что-то типа --target=<arch>-<vendor>-<sys>-<abi> (например: --target=arm64-unknown-darwin-unknown), C++ standard (-std=C++17) и -isystem, -I, -iquote

не помогает, указал везде. Все равно не понимает.

А можете в тикете написать, какую команду указали? И пример, на котором не понимает auto.

Доброго дня! Я занимаюсь поддержкой CTest в CLion.
Хотел бы уточнить, как именно CTest не работает.
Нельзя создать новую CTest конфигурацию или запустить ранее созданную?
Появляются ли баннеры с сообщениями об ошибках и предупреждения об ошибках в логе приложения?

Он пишет, билдит тесты, а при запуске пишет Warning: No CTest information found. The CTest version in the selected build configuration must be at least 3.14 to debug tests

И тесты не запускаются.

Потом делаешь что то, закономерность не понял, он начинает их запускать, потом через некоторое время снова сообщение выдает при запуске...

Закономерность не нашел, на 2020.3.4 все нормально было всегда.

Пожалуйста, проверьте следующее:

Внутри корневой папки проекта есть директория `.idea`, в ней есть файл `workspace.xml`, а в нем секция
`<component name=«RunManager» ...`

В этой секции есть сохраненные run-configuration.
Убедитесь, что ВСЕ сохраненные конфигурации CTest (начинаются с
`<configuration name=«XXXX» type=«CTestRunConfiguration» `
)
Имеют значением атрибутов
`WORKING_DIR=«file://$CMakeCurrentLocalGenerationDir$»`
и
`RUN_PATH="$CTestCurrentExecutableName$"`

При совместном использовании проекта двумя версиями CLion (2020.3.4 и 2021.1.1) могут возникнуть сложности.
Спасибо!

Да все так и есть

Поставили 2021.1.2 — что-то поменялось. Теперь так:
Если апдейтиться с 2020.3.4 — то CTest работает, правда очень редко слетает (типа версия не та), но потом перезапускаешь, все норм.


если апдейтиться с 2021.1.1 — то не работает никак вообще, пишет постоянно, что "Warning: No CTest information found. The CTest version in the selected build configuration must be at least 3.14 to debug tests"

Попробовал на тестовом проекте - апдейт проходит без ошибок.
Можно проверитьworkspace.xml по ранее предложенному мной сценарию.
Могу посоветовать пересоздать CLion проект, удалив каталог.idea.
Как вариант - попробовать явно выбрать заново файл c CMake в настройке тулчена. Тогда перевыбирается и CTest, который ищется в том же каталоге.
Пожалуйста, убедитесь, что подкаталоги cmake-build-XXXX-YYYY доcтупны для чтения и записи.
Если ничего не помогает - присылайте логи CLion в багу
CPP-25586 CTest: `Warning: No CTest information found` after upgrade
Спасибо!

Лог пока прислать не могу, так как рабочий проект содержит конфиденциальную информацию. Нужно сделать тестовый проект, но пока, к сожалению времени нет.
А так 2020.1.2 после всех махиниций теперь тоже всегда говорит Warning: No CTest information found. The CTest version in the selected build configuration must be at least 3.14 to debug tests
И не могу никак вернуть тесты :) Поэтому запускаем их пока просто и командной строки через мейк.

Похоже мы нашли ошибку. Она в реализации самого CTest но попробуем замазать с нашей стороны. CLion 2021.2 EAP лучше справляется с проблемой, но пока не идеально. Работаем:

CPP-25827 Wrong notification`Warning: No CTest information found. The CTest version in the selected build configuration must be at least 3.14 to debug tests.`

НЛО прилетело и опубликовало эту надпись здесь

А вы level какой при этом выставили в настройках? У меня на анимации, например, не дефолтовые настройки. Level-ы конфигурируются в настройках Clazy в Inspections | C/C++

НЛО прилетело и опубликовало эту надпись здесь

А это все на какой платформе и с каким тулчейном происходит, подскажете?

НЛО прилетело и опубликовало эту надпись здесь

А вообще в Clazy то есть этот квик-фикс в данном конкретном случае? Ну или поделитесь примером для воспроизведения, мы у себя попробуем проверить, где бага — у нас или в Clazy самом.

НЛО прилетело и опубликовало эту надпись здесь
Добрый день! Я занимался интеграцией clazy. Там правда довольно много случаев, когда он не решается предлагать автоматические фиксы, поскольку в чем-то не уверен. Хотя случай с не найденным методом может быть и ошибкой.
Для clazy-standalone (например на Windows) довольно нетривиально нужно подобрать агрументы, чтобы он работал без ошибок — например ему нужно сказать, где лежит папка с инклудами кланга, которыен подменяют некоторые инклуды MSVC. Можете попробовать такую коммандную строку — "<clion_path>\bin\clang\win\clazy-standalone.exe --extra-arg=-I<clion_path>\bin\clang\win\include --checks=level2 -p=<comp_db_path>\compile_commands.json <file_path>".
Если не получится, то в идеале хорошо бы иметь репродюсер, чтобы мы могли посмотреть и понять ошибка ли это.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий