Visuаl Studio Code
Примечание
Эта документация предназначена для разработчиков игрового движка, а не для пользователей Visual Studio Code в качестве редактора C# или GDScript. Чтобы писать код на C# или GDScript во внешнем редакторе, см. the C# guide to configure an external editor или the GDScript guide to using an external text editor.
Visual Studio Code — бесплатный кроссплатформенный редактор кода от Microsoft (не путать с Visual Studio).
Импортирование проекта
Убедитесь, что установлено расширение C/C++. Инструкции можно найти в официальной документации. В качестве альтернативы можно использовать clangd.
При использовании расширения clangd выполните
scons compiledb=yes.На главном экране Visual Studio Code откройте корневую папку Godot с помощью File > Open Folder....
Нажмите Ctrl + Shift + P, чтобы открыть окно командной строки, и введите Configure Task (Настроить задачу).
Выберите опцию Create tasks.json file from template (Создать файл tasks.json из шаблона).
Затем выберите Others.
Если опция Create tasks.json file from template отсутствует, удалите файл, если он уже существует в вашей папке, или создайте файл
.vscode/tasks.jsonвручную. Подробнее о задачах см. в разделе Задачи в Visual Studio Code.В файле
tasks.jsonнайдите массив"tasks"и добавьте в него новый раздел:.vscode/tasks.json{ "label": "build", "group": "build", "type": "shell", "command": "scons", "args": [ // enable for debugging with breakpoints "dev_build=yes", ], "problemMatcher": "$msCompile" }
Пример заполненного tasks.json.
Аргументы могут отличаться в зависимости от ваших настроек и потребностей. Полный список аргументов см. в документе Введение в систему сборки.
Отладка проекта
Для запуска и отладки проекта необходимо создать новую конфигурацию в файле launch.json.
Нажмите Ctrl + Shift + D, чтобы открыть панель "Run " (Выполнить).
Если файл
launch.jsonотсутствует, вам будет предложено создать новый.
Выберите C++ (GDB/LLDB). Возможно, здесь есть другой вариант, зависящий от платформы. Если выбран этот вариант, скорректируйте предоставленный пример конфигурации соответствующим образом.
В файле
launch.jsonнайдите массив"configurations"и добавьте в него новый раздел:
{
"name": "Launch Project",
"type": "lldb",
"request": "launch",
// Change to godot.linuxbsd.editor.dev.x86_64.llvm for llvm-based builds.
"program": "${workspaceFolder}/bin/godot.linuxbsd.editor.dev.x86_64",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": [ "--editor", "--path", "path-to-your-godot-project-folder" ],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "cppdbg",
"request": "launch",
// Change to godot.linuxbsd.editor.dev.x86_64.llvm for llvm-based builds.
"program": "${workspaceFolder}/bin/godot.linuxbsd.editor.dev.x86_64",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": [ "--editor", "--path", "path-to-your-godot-project-folder" ],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"setupCommands":
[
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Load custom pretty-printers for Godot types.",
"text": "source ${workspaceRoot}/misc/utility/godot_gdb_pretty_print.py"
}
],
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/bin/godot.windows.editor.dev.x86_64.exe",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": [ "--editor", "--path", "path-to-your-godot-project-folder" ],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"console": "internalConsole",
"visualizerFile": "${workspaceFolder}/platform/windows/godot.natvis",
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/bin/godot.macos.editor.x86_64",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": ["--editor", "--path", "path-to-your-godot-project-folder"],
"cwd": "${workspaceFolder}",
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/bin/godot.macos.editor.arm64",
// Change the arguments below for the project you want to test with.
// To run the project instead of editing it, remove the "--editor" argument.
"args": ["--editor", "--path", "path-to-your-godot-project-folder"],
"cwd": "${workspaceFolder}",
"preLaunchTask": "build"
}
Пример заполненного launch.json.
Примечание
Из-за спорадических проблем с производительностью в системах Unix рекомендуется использовать LLDB вместо GDB. Убедитесь, что для конфигураций, использующих lldb, установлено расширение CodeLLDB.
Если у вас возникли проблемы с lldb, вы можете рассмотреть возможность использования gdb (см. конфигурацию LinuxBSD_gdb).
Обратите внимание, что lldb может работать лучше со сборками на основе LLVM. Подробнее см. в документе Компиляция для Linux, *BSD.
Имя в разделе program зависит от конфигурации вашей сборки, например, godot.linuxbsd.editor.dev.x86_64 для 64-битной платформы LinuxBSD с target=editor и dev_build=yes.
Configuring IntelliSense
Для расширения C/C++:
Чтобы исправить ошибки включения, которые могут у вас возникнуть, вам необходимо настроить некоторые параметры в файле c_cpp_properties.json.
Сначала обязательно скомпилируйте проект, поскольку необходимо сгенерировать некоторые файлы.
Отредактируйте файл Configuration C/C++ с помощью пользовательского интерфейса или текста:
Добавьте путь включения для вашей платформы, например,
${workspaceFolder}/platform/windows.Добавьте определения для редактора
TOOLS_ENABLED, отладочных сборокDEBUG_ENABLEDи тестовTESTS_ENABLED.Убедитесь, что путь к компилятору настроен правильно для используемого вами компилятора. Дополнительную информацию о вашей платформе см. в документе Введение в систему сборки.
Файл
c_cpp_properties.jsonдля Windows должен выглядеть примерно так:.vscode/c_cpp_properties.json{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "${workspaceFolder}/platform/windows" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE", "TOOLS_ENABLED", "DEBUG_ENABLED", "TESTS_ENABLED" ], "windowsSdkVersion": "10.0.22621.0", "compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/cl.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "windows-msvc-x64" } ], "version": 4 }
В качестве альтернативы можно использовать аргумент scons
compiledb=yesи задать для команд компиляцииcompileCommandsзначениеcompile_commands.json, которое находится в расширенном разделе пользовательского интерфейса конфигурации C/C++.Этот аргумент можно добавить в задачу сборки в
tasks.json, так как его необходимо будет запускать каждый раз при добавлении или перемещении файлов.
Linting class reference XML files
Чтобы выполнить линтинг XML-файлов ссылок на классы, установите расширение vscode-xml.
Displaying documentation on hover
By installing the Godot Hover Docs extension, you can make class reference documentation appear when hovering symbols in C++ source or header files. The information is sourced from local XML files, so it works offline.
Примечание
This is only effective for symbols that are documented in the class reference XML, i.e. those that are exposed to the scripting API. Internal engine symbols will not show documentation on hover, unless they have a comment right above their declaration.
Устранение неполадок
Если у вас возникнут какие-либо проблемы, обратитесь за помощью в один из каналов сообщества Godot.