vscode-boilerplate

Minimalistic boilerplate to quick-start VSCode Extension development ๐Ÿš€

MIT License

Stars
2

vscode-boilerplate ๐Ÿš€

This minimalistic boilerplate is designed to help you quickly start developing extensions for Visual Studio Code. It provides a solid and ready-to-use base structure, allowing you to focus on implementing your unique features without wasting time setting up the development environment.

IDE: You can install it by typing "My extension" in the extension tab of your IDE

Instant Value - All basic tools included and configured:

  • ๐Ÿง… Bun.js >= 1.0.26
  • ๐Ÿง… Use Bun as package manager
  • ๐ŸŒˆ ESM
  • ๐Ÿงช Biome for code formatting and linting
  • โœ… Jest or Bun test for fast unit testing and code coverage
  • โš™๏ธ EditorConfig for consistent coding style
  • ๐Ÿ“ฆ NPM scripts for common operations
  • ๐Ÿ“ Best package.json configuration for VSCode extension
  • ๐Ÿ“ Simple example of Snippet code and unit test
  • ๐Ÿ— Run tasks with Grunt (example for backup)
  • ๐Ÿš„ Build faster with a preconfigured file and VSCE tool
  • ๐Ÿ–ฅ๏ธ Ungit for version control (git) with a GUI

๐Ÿ“Œ Notes

Visual Studio Code supports a wide range of extensions that can enhance your development experience in various ways. While this boilerplate is specifically tailored for creating VSCode snippets, it's important to note that there are several other types of extensions you can develop, such as language support, debugging tools, extension pack and more ... If you're interested in creating a different type of extension, you might need to adjust the template provided in this boilerplate. This could involve changing the package.json file, modifying source code to implement the desired functionality, and potentially adding new dependencies or scripts to your project.

For more information, you can refer to the VSCode Extension API.


๐Ÿ“Œ Usage

To use this template, use the following commands:

bun create github.com/RajaRakoto/vscode-boilerplate <project-name>
cd <project-name>
bun run pkg-upgrade # to upgrade outdated dependencies in interactive mode

NOTE 1: I employ the MIT license for this starter kit, which includes my name and GitHub profile. Please remember to adjust or remove it if deemed unnecessary.

NOTE 2: In order to help you better understand the structure of this boilerplate, there is a README.md file in each subdirectory of src.

NOTE 3: For certain configurations in the package.json file, you need to modify them to tailor them to your project (e.g: name, description, author, keywords, main, repository, ...).


๐Ÿ“Œ NPM Scripts

Util

  • ๐Ÿ“œ es6 - To get all ES6 modules syntax from the source directory

Clean

  • ๐Ÿ“œ clean - Remove coverage data, prod, build.

Build

  • ๐Ÿ“œ build - Run the build.js script and utilize vsce to generate the vsix file for production

Testing

  • ๐Ÿ“œ test - Run unit testing with Bun.js.

Linting and Formatting

  • ๐Ÿ“œ biome:start - Starts the Biome daemon server. You can specify a custom configuration file path using the --config-path option.
  • ๐Ÿ“œ biome:stop - Stops the Biome daemon server.
  • ๐Ÿ“œ biome:fix - Runs a source code check and applies automatic fixes (linter & formatter) according to the defined rules.
  • ๐Ÿ“œ biome:unsafe - Works like biome:fix, but may apply more invasive or risky changes.

Backup and Dependency Management

  • ๐Ÿ“œ backup - Backup files with Grunt.
  • ๐Ÿ“œ pkg-check - Check useless dependencies with depcheck.
  • ๐Ÿ“œ pkg-upgrade - Upgrade outdated dependencies (interactive mode) with npm-check-updates.

Versioning

  • ๐Ÿ“œ versioning - Start ungit server.

NPM Commands

  • ๐Ÿ“œ npm-version:major - Increments the major version number of your project using npm.
  • ๐Ÿ“œ npm-version:minor - Increments the minor version number of your project using npm.
  • ๐Ÿ“œ npm-version:patch - Increments the version patch number of your project using npm.

NVM

  • ๐Ÿ“œ nvm - Manage multiple node.js versions. Easily switch between node versions per project to ensure compatibility.

๐Ÿ“Œ Similar

You can also check out my other starter projects: