S&box Wiki

Revision Difference


<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 and install Visual Studio Code from [here](https://code.visualstudio.com/). ## 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". * [Download & install Visual Studio Code](https://code.visualstudio.com/) * [Download & install .NET 6 SDK](https://dotnet.microsoft.com/download/dotnet/6.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...`. <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. # Themes Visual Studio Code has first-class support for themes. You can browse and install themes from [here](https://vscodethemes.com/).