Поддержка Visual Studio и Visual Studio Code для Godot

В прошлом отчёте о проделанной работе говорили о расширении Godot для Visual Studio Mac и MonoDevelop. Это был первый шаг к поддержке C# для Godot в IDE. Вчера же представили два новых расширения для других редакторов: Visual Studio и Visual Studio Code.​ Эта работа была любезно проспонсирована Microsoft (¬‿¬ )

Отладка

Оба расширения поддерживают отладку игр. Они позволяют легко запускать и отлаживать игры из IDE без необходимости что-то настраивать для Godot.

На момент написания статьи расширения предоставляют 3 цели отладки: Launch, Attach и Play in Editor.

Вероятно, Play in Editor будет наиболее используемой во время разработки, поскольку запускает игру из запущенного экземпляра редактора Godot. Это похоже на нажатие кнопки воспроизведения в редакторе, за исключением того, что делается из среды IDE, а параметры отладчика настраиваются автоматически.

Примечание

Расширение для Visual Studio использует компоненты отладки из «Mobile development with .NET» Visual Studio. Эта штука устанавливается автоматически при установке расширения. Зависимость очень крупная, но разработчики не смогли найти лучшей альтернативы, которая бы не включала в себя написание и поддержку огромного количества кода самостоятельно.

Адаптер отладчика, используемый расширением VSCode, является форком расширения vscode-mono-debug.

Автодополнение

При написании кода в Godot разработчикам очень часто приходится писать путь нод, сцен и ресурсов, а также названия сигналов и действий ввода. Большинство GDScript разработчиков привыкли к автодополнению для таких вещей во встроенном редакторе кода Godot (или в другом редакторе, который поддерживает GDScript LSP). При написание кода C# было всё иначе, поэтому пришлось пройти через бремя ввода всех этих строк вручную…до сего момента.

Новые расширения для IDE добавляют автокомплит для этих значений в C# редактор. Эта функция требует наличия работающего редактора Godot, который может предоставлять необходимую информация.

Версия для Visual Studio реализована как провайдер автокомплита на Roslyn. В случае путей к узлам завершение кода запускается везде, где ожидаемый тип может быть выведён как NodePath. Это означает, что он будет срабатывать не только при вызове GetNode, но и при установке значения полю/свойству NodePath.

Расширение для VSCode более ограничено, когда дело доходит до автодополнения. В настоящее время Roslyn не используется. Вместо этого используются шаблоны регулярных выражений, чтобы определить, должно ли инициироваться завершение кода. Это может измениться в будущем, но по большей части результаты хороши даже сейчас.

ПРИМЕЧАНИЕ. Текущая версия расширений требует наличия работающего экземпляра редактора Godot для предоставления необходимой информации. Планируется сделать так, чтобы будущая версия могла работать без запуска редактора.

Visual Studio под Mac

В качестве бонуса, расширение для VS Mac и MonoDevelop также было обновлено для поддержки автокомплита. Используется тот же провайдер на Roslyn, что и расширение для Visual Studio.

Где скачать

Visual Studio

Расширение для Visual Studio можно скачать здесь.

Минимальная требуемая версия Godot — 3.2.3, которая ещё не выпущена на момент написания этой статьи. Хотя расширение может частично работать и в Godot 3.2.2, могут возникнуть проблемы.

Visual Studio Code

Расширение для VSCode можно загрузить тут.

Работает с версией Godot 3.2.2 и выше. В старые версиях Godot работать не будет.

Visual Studio for Mac

Mac версия VS можно установить из Extension Manager или вручную.

Работает с версией Godot 3.2.2 и выше. В старые версиях Godot работать не будет.

Что дальше?

Остаются ещё две важные задачи:

  • Разделить и организовать C# Godot API по разным пространства имён.
  • Обеспечить дружественный API ввода-вывода к .NET для виртуальной файловой системы Godot.

После этого планируется полностью посвятить месяц исправлению ошибок и планированию родмепа для Godot 4.0.