Revision Difference
Setting_up_VSCode#543868
<cat>Code.Intro</cat>⤶
<title>Setting up Visual Studio Code</title>⤶
⤶
While s&box addon development is currently mainly targeting Visual Studio, you can still use Visual Studio Code with full support for intellisense and debugging too.⤶
⤶
# Installation and setup ⤶
Download and install Visual Studio Code from [here](https://code.visualstudio.com/).⤶
⤶
## Required Visual Studio Code extensions⤶
The following Visual Studio Code extensions will be required to write and debug s&box addons in Visual Studio Code:⤶
- [C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)⤶
⤶
## Creating the workspace⤶
After staring Visual Studio Code, press `File -> Open Folder...`: ⤶
![](https://i.imgur.com/kFKTFel.png)⤶
⤶
Select the `sbox\addons` folder. After that go to `File -> Save Workspace As...` and save it as `addons.code-workspace` inside the addons folder.⤶
⤶
## Enabling Roslyn analyzers⤶
The C# extension has Roslyn analyzers disabled by default. These are required for s&box code generation so that we won't get errors in auto generated code like ClientCmd and ServerCmds calls. This will also allow you to get automatic suggestions for your code.⤶
⤶
To enable Roslyn analyzers, create a file called `omnisharp.json` in your addons folder with the following content:⤶
```cs⤶
{⤶
"RoslynExtensionsOptions": {⤶
"enableAnalyzersSupport": true⤶
}⤶
}⤶
```⤶
⤶
## Adding debugger configuration⤶
We need to add a debugging configuration to debug addons. Create the following file in `addons\.vscode\launch.json`:⤶
⤶
```cs⤶
{⤶
"version": "0.2.0",⤶
"configurations": [⤶
{⤶
"name": ".NET Core Attach",⤶
"type": "coreclr",⤶
"request": "attach",⤶
"processName": "sbox.exe"⤶
}⤶
]⤶
}⤶
```⤶
⤶
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 mnually 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 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.⤶
⤶
[Discord Presence](https://marketplace.visualstudio.com/items?itemName=icrawl.discord-vscode): Show people in Discord what you are working on.⤶
⤶
[GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens): A useful extension when working with git.⤶
⤶
# Themes⤶
Visual Studio Code has first-class support for themes. You can browse and install themes from [here](https://vscodethemes.com/).