S&box Wiki

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/).