LINUX.ORG.RU

Не могу понять логику работы VSCode

 


0

1

Делаю так:

  1. Хочу настроить выбор компилятора (g++ и clang)

  2. В tasks.json указываю две задачи, а одной: «label»: «C/C++: g++ build active file», «command»: «/usr/bin/g++», в другой: «label»: «C/C++: clang build active file», «command»: «/usr/bin/clang++»

  3. В launch.json тоже указываю две задачи: «preLaunchTask»: «C/C++: g++ build active file» и «preLaunchTask»: «C/C++: clang build active file»

  4. Что непонятно:

а) Зачем нужна кнопка «Add configuration», причем она появляется только при редактировании launch.json? И она же вынесена в правый верхний угол программы под иконкой шестеренки. Это что настолько важный функционал? Я что скопировать несколько строк не смогу? А если не смогу то почему она только в одном файле, а нет например в tasks.json?

б) В правом верхнем углу кнопка с выбором Debug или Run. При выборе любой из кнопок иногда возникает список из нескольких пунктов (обычно 7) но никогда не 2 как я предполагаю причем некоторые выглядят дубликатами, а один пункт «cpp build» заведомо нерабочий. Иногда действие выполняется сразу не спрашивая. Как программа вообще заполняет этот список? Зачем разделять debug и run? А если разделять то почему тогда нет отдельных build и compile?

в) Почему F5 не предлагает выбор компилятора? Какой она использует в качестве умолчания? В то же время ctrl + shift + b вызывает компиляцию с выбором компилятора. Почему такое разное поведение?



Последнее исправление: Hunter1972 (всего исправлений: 3)

Это не ide, там не настраивается компилятор. Тебе нужно иметь свой, например, Makefile или CMakeLists.txt и соответствующее расширение для работы с ними.

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

grem ★★★★★
()
Ответ на: комментарий от grem

Это я все понимаю, реально все работает как IDE, обошелся пока без симейка, в VSC есть опция какие файлы компилировать, куда складывать исполняемые файлы, разные конфигурации можно настроить типа дебага и релиза. Мне все это нравится и удобно, но не пойму как он иногда работает, а это напрягает.

Hunter1972
() автор топика
Ответ на: комментарий от ox55ff

Да, дебаггинг, интеллисенс, все работает отлично, мне после лазаруса все кажется очень удобным. Но вопросы в топике меня интересуют.

Hunter1972
() автор топика
Ответ на: комментарий от ox55ff

Тогда это первая ide на моей памяти, которая не умеет сама строить зависимости между файлами проекта.

Поддержка синтаксиса - это не поддержка языков. А автодополнение и переходы у меня и в kate работают. Для этого достаточно наличия внешнего lsp сервера.

grem ★★★★★
()
Ответ на: комментарий от grem

В vs code поддержка сборочных систем сделана через плагины. Там будут твои зависимости.

ox55ff ★★★★★
()
Ответ на: комментарий от Hunter1972

Всё же лучше хотя бы на базовом уровне освоить какую-нибудь поддерживаемую систему сборки. Иначе без vscode с аналогичными настройками ты проект не соберёшь.

Сейчас ms даже плагин для make сделали, но он для простых проектов и с него можно начать, но зависимости самому прибётся расписывать.

grem ★★★★★
()
Ответ на: комментарий от grem

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

Hunter1972
() автор топика
Ответ на: комментарий от Hunter1972

Все народ проблема решена, надо просто забыть про эти кнопки в правом верхнем углу и использовать выбор конфигурации из дебаг тулбара слева, там как раз всего два конфига, F5 использует выбранный.

Hunter1972
() автор топика
Ответ на: комментарий от Hunter1972

Есть поиск по всем командам что бы кнопки не искать Ctrl+Shift+P

MOPKOBKA ★★★★
()
21 сентября 2024 г.

а) Зачем нужна кнопка «Add configuration», причем она появляется только при редактировании launch.json? И она же вынесена в правый верхний угол программы под иконкой шестеренки. Это что настолько важный функционал? Я что скопировать несколько строк не смогу? А если не смогу то почему она только в одном файле, а нет например в tasks.json?

Видимо, эта кнопка добавляет шаблон-болванку именно в формате, предназначенном для launch.json.

Xintrea ★★★★★
()
Ответ на: комментарий от ox55ff

Хотел зайти написать, что vs code это не IDE и что лучше взять CLion.

Каково было моё удивление когда я обнаружил здесь свой прошлогодний комментарий, что vs code является IDE. И что теперь делать. Я в растеренности и не понимаю как я мог такое заявить.

ox55ff ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.