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
Questa documentazione è pensata per i contributi al motore del gioco, e non all'utilizzo di Visual Studio Code come editor per C# o per GDScript. Per programmare in C# o in GDScript in un editor esterno, consultare la guida di C# per configurare un editor esterno o la guida di GDScript per configurare un editor esterno.
Visual Studio Code è un editor di codice multipiattaforma gratuito di Microsoft (da non confondere con Visual Studio).
Importare il progetto
Assicurarsi che l'estensione C/C++ sia installata. Si possono trovare le istruzioni nella documentazione ufficiale. Alternativamente, si può utilizzare clangd.
Quando si utilizza l'estensione clangd, eseguire
scons compiledb=yes.Dalla schermata principale di Visual Studio Code, aprire la cartella radice di Godot con File > Open Folder....
Premere Ctrl + Maiusc + P per aprire la finestra del prompt dei comandi e immettere Configure Task.
Selezionare l'opzione Create tasks.json file from template.
Quindi seleziona Altri.
Se l'opzione Create tasks.json file from template non è disponibile, eliminare il file se esiste già nella cartella oppure creare manualmente un file
.vscode/tasks.json. Consultare Task in Visual Studio Code per maggiori dettagli sui task.Dentro il file
tasks.jsoncercare l'array"tasks"e aggiungergli una nuova sezione:.vscode/tasks.json{ "label": "build", "group": "build", "type": "shell", "command": "scons", "args": [ // enable for debugging with breakpoints "dev_build=yes", ], "problemMatcher": "$msCompile" }
Un esempio di tasks.json riempito.
Gli argomenti possono essere diversi in base alla propria configurazione ed esigenze. Consultare Introduzione al sistema di compilazione per un elenco completo di argomenti.
Debugging the project
Per eseguire ed effettuare il debug del progetto è necessario creare una nuova configurazione nel file launch.json.
Premere Ctrl + Maiusc + D per aprire il pannello di secuzione (Run).
Se il file
launch.jsonmanca, verrà chiesto di crearne uno nuovo.
Selezionare C++ (GDB/LLDB). Potrebbe esserci un'altra opzione specifica per la piattaforma. Se selezionata, adattare pertanto l'esempio di configurazione fornito.
Dentro il file
launch.jsoncercare l'array"configurations"e aggiungergli una nuova sezione:
{
"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"
}
Un esempio di launch.json riempito.
Nota
A causa di sporadici problemi di prestazioni, si raccomanda di utilizzare LLDB invece di GDB su sistemi basati su Unix. Assicurarsi che sia installata l'estensione di CodeLLDB per le configurazioni che usano lldb.
Se si incontrano problemi con lldb, si può considerare l'uso di gdb (vedere la configurazione di LinuxBSD_gdb).
Si noti che lldb potrebbe funzionare meglio con le compilazioni basate su LLVM. Vedere Compilare per Linux, *BSD per ulteriori informazioni.
Il nome in program dipende dalla configurazione di compilazione, ad esempio godot.linuxbsd.editor.dev.x86_64 per la piattaforma LinuxBSD a 64 bit con target=editor e dev_build=yes.
Configurazione dell'Intellisense
Per l'estensione C/C++:
Per correggere eventuali errori di inclusione, è necessario configurare alcune impostazioni nel file c_cpp_properties.json.
Prima di tutto, assicurarsi di compilare il progetto poiché alcuni file devono essere generati.
Modificare il file di configurazione C/C++ tramite l'interfaccia utente o tramite testo:
Aggiungere un percorso di inclusione per la propria piattaforma, ad esempio
${workspaceFolder}/platform/windows.Aggiungere definizioni
TOOLS_ENABLEDper l'editor,DEBUG_ENABLEDper le build di debug eTESTS_ENABLEDper i test.Assicurarsi che il percorso del compilatore sia configurato correttamente per il compilatore in uso. Consultare Introduzione al sistema di compilazione per ulteriori informazioni sulla propria piattaforma.
Il file
c_cpp_properties.jsondovrebbe apparire simile a questo per 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 }
Alternativamente, è possibile utilizzare l'argomento scons
compiledb=yese impostare i comandi di compilazionecompileCommandssucompile_commands.json, che si trova nella sezione avanzata dell'interfaccia utente di configurazione C/C++.Questo argomento si può aggiungere al task di compilazione in
tasks.jsonpoiché sarà necessario eseguirlo ogni volta che vengono aggiunti o spostati file.
Linting dei file XML del riferimento alle classi
Per ottenere il linting sui file XML di riferimento alle classi, installare l'estensione vscode-xml.
Visualizzare la documentazione al passaggio del mouse
Installando l'estensione Godot Hover Docs, è possibile visualizzare la documentazione di riferimento delle classi al passaggio del mouse sui simboli nei file sorgente o di intestazione in C++. Le informazioni sono ricavate dai file XML locali, quindi funziona anche offline.
Nota
Ciò è efficace solo per i simboli documentati nel file XML di riferimento alle classi, ovvero quelli esposti all'API di scripting. I simboli interni del motore non mostreranno la documentazione al passaggio del mouse, a meno che non abbiano un commento immediatamente sopra la loro dichiarazione.
Risoluzione dei problemi
Se ci si imbatte in qualsiasi problema, chiedi aiuto in uno dei Canali della comunità di Godot.