Revision Difference
Setting_up_VSCode#550124
<cat>Code.Intro</cat>
<title>Setting up Visual Studio Code</title>
<warning>Additional configuration is required for Visual Studio Code to work fully, make sure you read the entire article.</warning>
# Installation and setup
* [Download & install Visual Studio Code](https://code.visualstudio.com/)
* [Download & install .NET 7 SDK](https://dotnet.microsoft.com/download/dotnet/7.0)
* [Download & install C# Extension](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)
## 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".
<upload src="a5727/8d96338ca87e4b8.png" size="12823" name="image.png" />
Be sure to save your settings.
# Opening projects
After [creating your addon folder structure](https://wiki.facepunch.com/sbox/Making_Gamemode) and running your game to generate the .csproj files you can open your addon folder in VSCode via `File -> Open Folder...`.
After [creating your addon folder structure](https://wiki.facepunch.com/sbox/Your_First_Project#creatingaproject), you can open your addon folder in VSCode via `File -> Open Folder...`.
<upload src="a5727/8d963395a10fc3e.png" size="8076" name="image.png" />
## Adding debugger configuration
We need to add a debugging configuration to debug addons. Create the following file in your addon directory `.vscode\launch.json`:
```cs
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processName": "sbox.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:
![](https://i.imgur.com/NqxzROM.gif)
Keep in mind that you need to manually start s&box first before debugging.
# Recommended extensions
[Visual Studio Keymap](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vs-keybindings): Adds Visual Studio keymaps in case you are used to Visual Studio shortcuts.
[JetBrains Keymap](https://marketplace.visualstudio.com/items?itemName=isudox.vscode-jetbrains-keybindings): Adds JetBrains keymaps in case you are used to JetBrains shortcuts.
[EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=editorconfig.editorconfig): Automatically format your code with the s&box coding style
[SCSS Formatter](https://marketplace.visualstudio.com/items?itemName=sibiraj-s.vscode-scss-formatter): Automatically format your scss files.
[vscode-solution-explorer](https://marketplace.visualstudio.com/items?itemName=fernandoescolar.vscode-solution-explorer): Visual Studio-like solution explorer for Visual Studio Code.
[C# Snippets](https://marketplace.visualstudio.com/items?itemName=jorgeserrano.vscode-csharp-snippets): C# code snippets.
[Auto-Using for C#](https://marketplace.visualstudio.com/items?itemName=fudge.auto-using): Auto import namespaces.
[C# Extensions](https://marketplace.visualstudio.com/items?itemName=tdallau-csharpextensions.csharpextensions): Quickly create new classes and generate constructors.
[C# Namespace Autocompletion](https://marketplace.visualstudio.com/items?itemName=adrianwilczynski.namespace): IntelliSense for writing namespaces.
[C# XML Documentation Comments](https://marketplace.visualstudio.com/items?itemName=k--kato.docomment): Easier code documentation.
[GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens): A useful extension when working with Git.