Thank you for your interest in helping develop this extension. To get up and running, follow the guide below. If something doesn't work, feel free to open an issue or submit a PR fixing this documentation!
- Download the rust toolchain
- Install wasm-pack (
cargo install wasm-pack
) - Download node (preferably with
nvm
so you can easily install new versions later) and npm - From the top level folder, run
npm install
to get the (javascript) dependencies. - Open this folder in vscode.
- Make your changes
- You can manually test your changes by navigating to "Run and Debug" -> "Run Extension" -> green arrow. This opens a sandboxed version of vscode with your updated extension.
- You should add unit tests for your functionality as well. These go under
src/test/suite
, or insrc/lib.rs
if you are modifying the rust code. Your PR will likely not be merged without unit tests.
The following items are relevant if you are actively maintaining this extension. I wrote this documentation for myself, since I have to do these maintenance actions approximately once a year at this point.
You will need vsce
installed.
If needed, get a new access token. Follow the instructions here.
- The CHANGELOG has been updated.
git checkout main
git pull
- Tests pass locally (both rust and typescript):
npm run test
- Do NOT skip this step. It also compiles the wasm code which needs to happen before publishing.
- Smoke test (run extension through debugger, open
smoke_test.py
, pressenter
after each line and make sure it looks good). - CI has passed on the main branch.
vsce publish {patch,minor,major}
and optionally use the--pre-release
argumentvsvsce package
git push; git push --tags
- On GitHub, draft a release using the existing tag that was created by the
publish
command.- If you are not told that the tag already exists, then you have a typo, or you missed a step.
- Attach the
.vsix
artifact created by thepackage
command to the draft release. - Publish the release.
Follow the instructions here.
https://marketplace.visualstudio.com/manage/publishers/kevinrose/extensions/vsc-python-indent/hub (requries login)