S&box Wiki

Setting up Visual Studio Code

Additional configuration is required for Visual Studio Code to work fully, make sure you read the entire article.

Installation and setup

Enable Roslyn analyzers

You need to enable Roslyn analyzers if they are not already, without this you will get reference errors.

The simplest way is File -> Preferences -> Settings, from there search for "roslyn" and tick the setting "Enable Roslyn Analyzers".

image.png

Be sure to save your settings.

Add a solution to the project directory

Because s&box generates a .sln file in the s&box app directory rather than your game project directory, VS Code will have no solution to load, and will instead load your game's .csproj on its own, which will prevent it from resolving references to classes from sbox/addons/base/code/Base Library.csproj. To fix this, configure the s&box editor to use VS rather than VS Code in Edit -> Preferences, generate and open the solution using Game -> Open in Visual Studio with your game project open in the editor, and save the solution to your project directory. You can then set your preferred code editor back to VS Code and develop as normal with fully working Intellisense.

Opening projects

After creating your game project, you can open your addon folder in VSCode via File -> Open Folder....

image.png

You can also open the project directly from the S&box Editor by clicking File -> Open Solution.

Adding debugger configuration

We need to add a debugging configuration to debug addons. Create the following file in your addon directory .vscode\launch.json:

{ "version": "0.2.0", "configurations": [ { "name": ".NET Core Attach", "type": "coreclr", "request": "attach", "processName": "sbox.exe", // or sbox-dev.exe "requireExactSource": false // makes sure you can debug stuff with codegen (e.g entities) } ] }

You can now start debugging your addons by setting breakpoints and pressing F5:

Keep in mind that you need to manually start s&box first before debugging.

Recommended extensions

Visual Studio Keymap: Adds Visual Studio keymaps in case you are used to Visual Studio shortcuts.

JetBrains Keymap: Adds JetBrains keymaps in case you are used to JetBrains shortcuts.

EditorConfig for VS Code: Automatically format your code with the s&box coding style

SCSS Formatter: Automatically format your scss files.

vscode-solution-explorer: Visual Studio-like solution explorer for Visual Studio Code.

C# Snippets: C# code snippets.

Auto-Using for C#: Auto import namespaces.

C# Extensions: Quickly create new classes and generate constructors.

C# Namespace Autocompletion: IntelliSense for writing namespaces.

C# XML Documentation Comments: Easier code documentation.

GitLens: A useful extension when working with Git.