S&box Wiki

Revision Difference


<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...`: First create the solution by running `GenerateProjects.bat` in your addons folder. 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. 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. [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/).