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 (Настроить задачу).

../../../_images/vscode_configure_task.png
  • Выберите опцию Create tasks.json file from template (Создать файл tasks.json из шаблона).

../../../_images/vscode_create_tasksjson.png
  • Затем выберите Others.

../../../_images/vscode_create_tasksjson_others.png
  • Если опция 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"
    }
    
../../../_images/vscode_3_tasks.json.png

Пример заполненного tasks.json.

Аргументы могут отличаться в зависимости от ваших настроек и потребностей. Полный список аргументов см. в документе Введение в систему сборки.

Отладка проекта

Для запуска и отладки проекта необходимо создать новую конфигурацию в файле launch.json.

  • Нажмите Ctrl + Shift + D, чтобы открыть панель "Run " (Выполнить).

  • Если файл launch.json отсутствует, вам будет предложено создать новый.

../../../_images/vscode_1_create_launch.json.png
  • Выберите 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"
}
../../../_images/vscode_2_launch.json.png

Пример заполненного 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++ с помощью пользовательского интерфейса или текста:

../../../_images/vscode_edit_configurations.webp
  • Добавьте путь включения для вашей платформы, например, ${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.