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.

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.

../../../_images/vscode_configure_task.png
  • Selezionare l'opzione Create tasks.json file from template.

../../../_images/vscode_create_tasksjson.png
  • Quindi seleziona Altri.

../../../_images/vscode_create_tasksjson_others.png
  • 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.json cercare 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"
    }
    
../../../_images/vscode_3_tasks.json.png

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.json manca, verrà chiesto di crearne uno nuovo.

../../../_images/vscode_1_create_launch.json.png
  • 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.json cercare 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"
}
../../../_images/vscode_2_launch.json.png

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:

../../../_images/vscode_edit_configurations.webp
  • Aggiungere un percorso di inclusione per la propria piattaforma, ad esempio ${workspaceFolder}/platform/windows.

  • Aggiungere definizioni TOOLS_ENABLED per l'editor, DEBUG_ENABLED per le build di debug e TESTS_ENABLED per 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.json dovrebbe 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=yes e impostare i comandi di compilazione compileCommands su compile_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.json poiché 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.