This page discusses things you should have configured in your environment for core development. Before you begin writing Obsidian code you will want to configure your development environment. Many things will be enforced by ESLint once it is enabled, but a few things you will want to configure in your editor. Visual Studio Code VS Code provides a rich development experience for Obsidian. While you can't work with the entire Rock solution in Visual Studio Code, you can work with the two Obsidian projects there. This does provide some additional benefits as you can have the VS 2022 debugger running and still be able to build the Obsidian projects over in VS Code. In the root folder of the repository is a file called Rock.code-workspace. This is roughly the equivalent of a solution file. When you open it for the first time it will recommend some extensions be installed. You will want those extensions. You'll also want to You don't need to configure any custom settings in VS Code for formatting, such as spacing. All recommended settings will be placed in the workspace file so they automatically get applied when you open the workspace. Building While there are full-build tasks, the normal way to handle building in VS Code is with the watch tasks. To get to these you can use the command pallet (CTRL+SHIFT+P) and the "Tasks: Run Task" command. You can then pick which build task you want. In this case, you probably want the "Watch All Obsidian" task. This will build Obsidian Controls and Obsidian Blocks and then watch for changes. Whenever a change is detected it will automatically start recompiling everything that depends on what you changed. Visual Studio 2019/2022 WarningVisual Studio IDE should not be used for editing .obs files. This is older documentation from when both were supported. Only VS Code is supported now. The following options should be enabled under Tools > Options. Enable ESLint under Text Editor > JavaScript/TypeScript > Linting. Set your Module Specifier Preference under Text Editor > JavaScript/TypeScript > Formatting > General to the value "Prefers using a non-relative import only if the relative import path would leave the package or project directory". Configure Spacing to match what is in the picture below under Text Editor > JavaScript/TypeScript > Formatting > Spacing: Additionally, you may want to turn a setting off. Though not required, it makes it much easier to fix and continue with TypeScript projects. Under Projects and Solutions > Web Projects turn off "Stop debugger when browser window is closed, close browser when debugging stops". This allows you to stop debugging and build the TypeScript projects after making changes without having to perform a full restart of Rock.