Комментарии 22
marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools
Позволяет ходить по кластеру прямо из VScode. Enjoy!
Для CMake-based проектов https://marketplace.visualstudio.com/items?itemName=vector-of-bool.cmake-tools
— Вот например, тот же официальный плагин от Microsoft на больших проектах любит подвисать или вообще падать в произвольные моменты времени. Раньше он ещё и не умел в семантическую подсветку, может её и до сих пор нет. И совсем убивает отсутствие семантической Find All References
— cquery на больших проектах жрёт как не в себя, приходится держать отдельную конфигурацию запуска VSCode без него, если хочется просто подредактировать конфиг. Он очень гибко подсвечивает всё что захочешь, замечательно предоставляет подсказки для автодополнения — но совершенно бесполезен при отладке, приходится держать его параллельно с официальным (слава Б-гу, опции официального позволяют выключить все функции, кроме, собственно, отладки).
— Опять же, если хочется по-быстрому отредактировать файл, есть два полезнейших быстрых плагина, которые позволяют работать с плюсами без включения вышеупомянутых монстров:Toggle Header/Source, который делает именно то, что вынесено в название (в отличие от встроенной в официальный плагин функции, которая может вообще не отработать или открыть совершенно не тот файл) и Reloaded Themes/C++ (на самом деле это два плагина), который обеспечивает что-то вроде семантической подсветки чисто за счёт регулярных выражений. Но и у них есть особенности — например, Toggle H/S не умеет переключаться, если исходники лежат в папке src, а хидеры в include. Reloaded Themes прекрасен во всём, но в связи с отсутствием плагинов для подсветки макросов/функций/методов Qt (розовеньким как в QtCreator), пришлось допилить напильником, вставив ещё несколько найденных на просторах интернетов регэкспов. (При этом QML файлы худо-бедно подсвечиваются соответствующим плагином.)
— А ещё есть такая прекрасная штука как GTest, для которого у VSCode есть как минимум три плагина. Один из них, Catch2 and Google Test Explorer добавляет очень удобную и гибкую поддержку запуска тестов из боковой панели
— CMakeTools — незаменимая вещь при работе с CMake. Ну как незаменимая, в принципе всё можно прописать ручками в tasks.json, но через плагин оно удобнее.
— А ещё хочется упомянуть Bookmarks + indent-rainbow + Bracket Pair Colorizer 2, очень помогают ориентироваться в раздутых исходниках.
Можно было бы упомянуть расширения для:
- CMake (vector-of-bool.cmake-tools) и других систем сборки;
- различных анализаторов (jbenden.c-cpp-flylint, alesiong.clang-tidy-linter);
- прочих утилит от clang (xaver.clang-format, denniskempin.vscode-include-fixer);
- быстрой компиляции (bdznh.c-cpp-compile-run-windows);
Простой поиск слов c++, cpp, clang на вкладке расширений поможет добавить несколько пунктов в этот список.
Интересно, сколько в среднем потребляет VS Code (который на Electron), да ещё и обвешанный всеми этими плагинами.
Но в современном мире, тем более в Linux оперативная память редко заканчивается.
Это только если ничего не течёт. У меня уже прямо ритуал есть — что переоткрыть, чтобы вернуть в систему +10 GiB Memory. Причём текут приложения всех видов. Начиная от С++, завершая разного рода python-js-… Текут прямо безобразно. Хоть на крон вешай их перезапуск.
c/c++ for visual studio code
До сих пор преследует проблема "Class <A> has no member <b>" в среднем проекте и на пустом месте. В issues отвечают, что мол парсер у нас без AST, только со строками работаем. А вообще большая проблема сопоставить .h и .cpp файлы. Не знаю почему так, но видно архитектура и в правду добавляет сложностей. Visual Studio даже намека на такую проблему не имеет. Естественно все замечательно компилируется. Автодополнения вроде как работают, но назвать надежными их ну ни как не получается.
cquery
Проект вроде как умер потихоньку. Люди предлагают альтернативу, но ее на качество я не проверял, подробнее: https://github.com/cquery-project/cquery/issues/867
Очень не хватает надежного intellisence для c++.
Почему нету сравнения с qtcreator? Пробовали ли его до vs code? Там парсер кода на основе clang, а как у vs code? В сложных выражениях с темплейтами умеет в авто дополнение?
Есть еще CLion, кстати.
Но, блин, кто реально пробовал это в бою?
Конфиги очень хрупкие, постоянно всё отваливается, крашится, баги годами не фиксятся в дополнениях.
Сколько ни пытался заставить хотя бы пару расширений работать без крашей, ну не работают они… что я делаю не так? Я конкретно про C\C++.
Удавалось запустить элементарные фичи на тестовых Hello World проектах, а если что-то более серьёзное, то лог консоли начинает пухнуть от ворнингов, ошибок, потихоньку фичи начинают отваливаться в течение часа, в конечном результате всё крашится.
Упомянутое расширение для CMake пытался настроить. Оно постоянно то тулчейны не видело, то флаги какие-то не поддерживало или трактовало по-своему. А уж какой-нибудь clang-tidy запустить без боли — вообще из разряда фантастики. Заходил в issues на гитхабе, а там они висят по полтора года…
Кто этим реально пользуется, можете прокомментировать, как удалось добиться стабильной работы? Я имею в виду, не Hello World, а хотя бы Boost, парсинг темплейтов без крашей и отвала фич.
Отличная задумка изначально у редактора, но конкретные реализации расширений портят всё. Единицы работают стабильно.
PS
VS Code также использую для golang, markdown. Всё работает сносно. Не без багов, конечно. Но тот же golang умеет как-то рестартить себя при крашах, что не сильно мешает в работе.
Не знаю как в с++ оно себя ведёт, но в питоне каждый раз ввел символ все варнинги убрались, потом через какое то время pylint отработал и опять разместил подчеркивания по файлу. Аналогично и с rust тоже прямо видно что все перезапускается после каждого нажатия. В PyCharm и idea-rust оно как то всё динамично добавляется убирается и так же в QtCreator в случае c++.
Must-have плагины и несколько полезностей для С\С++ разработки в VS Code