Братство macOS или Дружим VSCode с Docker

Братство macOS или Дружим VSCode с Docker

Антон

Этот ебанутый заголовок я придумал в качестве продолжения предыдущего поста, короче, развиваем эпопею, начавшуюся как хорошая законченная история.

TLDR: на винде было неудобно разрабатывать на C++ под линукс, я пересел на нативный линукс, но устал от его багов, сделал докер контейнер с QtCreator для разработки независимо от ОС, перешел снова на винду и 9 месяцев горя не знал.

Никому не нужная вода

Но никто не мешает перейти сразу к делу.

За эти 9 месяцев мои задачи несколько поменялись, потребовалась большая производительность и, кроме того, докер на виндовс со временем необратимо деградирует в производительности. Деградирует не в 2, не в 5, а в 20 раз. Я пробовал разные способы монтирования, работать вообще без монтирования, чистил всё что можно всеми способами и в итоге в недрах гитхаба нашел ветку, где люди приходят к выводу, что единственный способ решения проблемы - переустановить виндовс.

Меня такой расклад не устраивал, я уже лет 8 как отвык переустанавливать виндовс каждые полгода. И я решил на пробу взять макбук, тем более что почти все в команде сидят на макбуках и давно мне рекомендовали. Так и случилось, взял на 3 дня старый макбук, с ним и хожу, очень хочу новый.

Сразу о главном: производительность в докере ровно в 2 раза меньше, чем в нативном линуксе, однако макбук в 2 раза мощнее - то на то и выходит.

И тут, вроде бы, конец истории, ведь мне осталось только сделать git pull и docker-compose run.

Однако, нет. Прекрасная компания эпл, если вы не знали, очень любит замыкать все на себе и не любит когда в это кольцо кто-то внедряется. Если виндовс - мы всё сделаем за тебя, линукс - ты можешь сделать всё, то макос - ебись как хочешь. И вот этот момент застигает некоторых изощренных пользователей макос, которым нужен X11. Последняя сборка которая хоть как-то поддерживалась эпл датируется 2016 годом и работает по принципу "хорошо, что работает". В целом, довольно неплохо, однако на экране самого макбука и на экранах с высокой плотностью пикселей текст дико разваливается, причем чем больше PPI, тем сильнее. Работать с таким нельзя, это попросту вредно для глаз. Можете попробовать рассмотреть разницу на скриншотах, но вам потребуется 2 монитора с разной плотностью пикселей и скриншот все равно не передает всего масштаба проблемы. Скриншот с FullHD монитора и скриншот с экрана макбука.

А с даунскейлом вообще заебись!

Дружим VSCode с Docker

Мои глаза мне дороги и я решился на страшное, как мне тогда казалось - писать на C++ с помощью VSCode.

А на самом деле вам потребуется 3 расширения:
C++ Tools, CMake Tools и Remote Containers. Еще 2, чтобы облегчить жизнь и позволить делать тоже самое по SSH: C++ IntelliSence и Remote SSH. И еще одно, если вы очень привыкли в VS IDE и вам нужны ИКОНОЧКИ.

Все чудо делает расширение Remote, которое запускает локально нативный VSCode, а на удаленке - сервер. Работает быстро и качественно. Как говорится, моё почтение.

Использование

Пользоваться просто - находим свой контейнер и жмем Attach - папочка с плюсиком.

Дальше нужно выбрать директорию с корневым CMakeLists.txt и ответить на очень простые вопросы про компилятор и режим сборки.

И даже доступна практически человеческая отладка, вот конфиг для launch.json.

Отладочка

Заключение

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

В целом получается полноценная IDE, а не её достойная замена. Лично мне по сравнению с полноценной Visual Studio не хватает только встроенного профайлера. Тут вам и автодополнение кода, и тесты, и git, и всё, на что хватит расширений или желания написать их самому на тайпскрипте. Но всё нужно собирать по частям, хотя сделано это с приятным лицом в отличие от vim или emacs.

И да, выкиньте уже свой Sublime Text, переезжайте на VSCode, если еще не. А для тех, кто будет скучать по саблайму есть специальное расширение.

Подписывайтесь https://t.me/ithueti

Для связи https://t.me/antonso


Report Page