Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Visual Studio Code
Nota
Esta documentação é para contribuições ao motor de jogo, e não para usar o Visual Studio Code como um editor de C# ou GDScript. Para codificar em C# ou GDScript em um editor externo, veja o guia de C# para configurar um editor externo ou o guia de GDScript para usar um editor de texto externo.
O Visual Studio Code é um editor de código multiplataforma gratuito da Microsoft (não deve ser confundido com o Visual Studio).
Importando o projeto
Certifique-se de que a extensão C/C++ esteja instalada. Você pode encontrar instruções na documentação oficial. Como alternativa, o clangd pode ser usado no lugar.
Ao usar a extensão clangd, execute
scons compiledb=yes.Na tela principal do Visual Studio Code, abra a pasta raiz do Godot com File > Open Folder....
Pressione Ctrl + Shift + P para abrir a janela do prompt de comando e digite Configure Task.
Selecione a opção Create tasks.json file from template.
Em seguida, selecione Outros.
Se não houver a opção Create tasks.json file from template disponível, exclua o arquivo se ele já existir na sua pasta ou crie um arquivo
.vscode/tasks.jsonmanualmente. Veja Tasks in Visual Studio Code para mais detalhes sobre tarefas.Dentro do arquivo
tasks.json, encontre a array\"tasks\"e adicione uma nova seção a ela:.vscode/tasks.json{ "label": "build", "group": "build", "type": "shell", "command": "scons", "args": [ // enable for debugging with breakpoints "dev_build=yes", ], "problemMatcher": "$msCompile" }
Um exemplo de um tasks.json preenchido.
Os parâmetros podem ser diferentes com base em sua própria configuração e necessidades. Veja Introdução ao sistema de compilação para uma lista completa de parâmetros.
Depurando o projeto
Para executar e depurar o projeto, você precisa criar uma nova configuração no arquivo launch.json.
Pressione Ctrl + Shift + D para abrir o painel Run.
Se o arquivo
launch.jsonestiver faltando, você será solicitado a criar um novo.
Selecione C++ (GDB/LLDB). Pode haver outra opção específica de plataforma aqui. Se selecionada, ajuste o exemplo de configuração fornecido de acordo.
Dentro do arquivo
launch.json, encontre a array\"configurations\"e adicione uma nova seção a ela:
{
"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.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"],
"cwd": "${workspaceFolder}",
"preLaunchTask": "build"
}
{
"name": "Launch Project",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/bin/godot.macos.editor.dev.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"
}
Um exemplo de um launch.json preenchido.
Nota
Due to sporadic performance issues, it is recommended to use LLDB over GDB on Unix-based systems.
Make sure that the CodeLLDB extension
is installed for configurations using lldb.
Se você encontrar problemas com o lldb, considere usar o gdb (veja a configuração LinuxBSD_gdb).
Note que o lldb pode funcionar melhor com compilações baseadas em LLVM. Veja Compilando para Linux, *BSD para mais informações.
O nome sob program depende da sua configuração de compilação, por exemplo, godot.linuxbsd.editor.dev.x86_64 para a plataforma LinuxBSD de 64 bits com target=editor e dev_build=yes.
Configurando IntelliSense
Para a extensão C/C++:
Para corrigir os erros de inclusão (include) que você possa estar tendo, você precisa definir algumas configurações no arquivo c_cpp_properties.json.
Primeiro, certifique-se de compilar o projeto, já que alguns arquivos precisam ser gerados.
Edite o arquivo de Configuração C/C++ por meio da interface gráfica ou com texto:
Adicione um caminho de inclusão (include path) para a sua plataforma, por exemplo,
${workspaceFolder}/platform/windows.Adicione definições para o editor
TOOLS_ENABLED, compilações de depuraçãoDEBUG_ENABLEDe testesTESTS_ENABLED.Certifique-se de que o caminho do compilador esteja configurado corretamente para o compilador que você está usando. Veja Introdução ao sistema de compilação para mais informações sobre a sua plataforma.
O arquivo
c_cpp_properties.jsondeve ser semelhante a isto para o 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 }
Como alternativa, você pode usar o argumento do scons
compiledb=yese definir a configuração de comandos de compilaçãocompileCommandsparacompile_commands.json, encontrada na seção avançada da interface gráfica de Configuração C/C++.Esse argumento pode ser adicionado à sua tarefa de compilação no
tasks.json, pois ele precisará ser executado sempre que arquivos forem adicionados ou movidos.
Linting de arquivos XML de referência de classe
Para obter linting em arquivos XML de referência de classe, instale a extensão vscode-xml.
Exibindo documentação ao passar o mouse
Ao instalar a extensão Godot Hover Docs, você pode fazer com que a documentação de referência das classes apareça ao passar o mouse sobre os símbolos nos arquivos de origem ou cabeçalhos em C++. As informações são extraídas de arquivos XML locais, portanto, funciona offline.
Nota
Isso só é eficaz para símbolos documentados no XML de referência de classes, ou seja, aqueles que são expostos à API de script. Símbolos internos da engine não mostrarão documentação ao passar o mouse, a menos que tenham um comentário logo acima de sua declaração.
Solução de problemas
Se você se deparar com qualquer problema, peça ajuda em um dos canais da comunidade do Godot.