Skip to content

Latest commit

 

History

History
77 lines (56 loc) · 2.2 KB

CONTRIBUTING.md

File metadata and controls

77 lines (56 loc) · 2.2 KB

Contributing

Project Structure

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

Convention

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.

Commits

See conventional commits

Develop

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}"
		},
}

Packaging

Packaging docs

$ vsce package

Releasing and Publishing

You can skip this section if your contribution comes via PR from a forked repository.

Publishing docs

$ vsce publish