src
├── items :: vscode items (CompletionItem, QuickPickItem, TreeItem, etc.)
├── providers :: provider classes
├── test :: contains some boilerplate for testing
├── util :: utility functions used around the extension
├── config.ts :: list of extension configs
├── commands.ts :: list of extension commands
└── extension.ts :: main extension runner
vscode-tendr
abides by the OO paradigm because the vscode plugin API encourages the use of Provider classes that oversee the interactions between vscode and plugins. That said, as much functionality as possible is modularized into other packages and follows the FP paradigm due to its benefits in reduced complexity.
So in the end, vscode-tendr
acts as an OO-style adapter between vscode provider classes and FP-style mini-services.
Clone repo:
$ git clone [email protected]:wikibonsai/vscode-tendr.git
Install deps:
$ yarn install
Run extension from the vscode debugger with the following configuration:
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "${defaultBuildTask}"
},
}
$ vsce package
You can skip this section if your contribution comes via PR from a forked repository.
$ vsce publish