S&box Wiki

Revision Difference

Setting_up_VSCode#544790

<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. <warning>Additional configuration is required for Visual Studio Code to work fully, make sure you read the entire article.</warning> # 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 First, generate the solution by running your game **at least once**. **[Please note you will have to do this every time you add an addon to your game before you are able to edit.]** # After that start Visual Studio Code and 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. ## Install C# extension You will require the [C# Extension](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) in order to work properly with C# in VSCode, simply download this and make sure to reload VSCode. ### Enabling Roslyn analyzers It is incredibly important to enable Roslyn analyzers, you will get errors on generated code if you do not enable them. 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...`. <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`: 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", "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. # Themes Visual Studio Code has first-class support for themes. You can browse and install themes from [here](https://vscodethemes.com/).