Contributing
Contributions are welcome. This guide covers setting up the development environment, the build system, and how to submit changes.
Prerequisites
- Node.js 20+
- VS Code 1.85+
- SoX (optional, for testing audio recording): see Installation
Setup
git clone https://github.com/tenacioustechie/vscode-serial-monitor-pro.git
cd vscode-serial-monitor-pro
npm install
Development Commands
npm run build # Production build (minified, no sourcemaps)
npm run watch # Development watch mode (sourcemaps enabled)
npm run lint # ESLint on TypeScript source
npm test # Jest tests
Debug in VS Code: Press F5 to launch the Extension Development Host. This auto-runs npm: watch as a pre-launch task and opens a new VS Code window with the extension loaded.
Project Structure
src/ ← TypeScript extension host source
├── extension.ts ← Entry point, command registration
├── serialPort/ ← Port listing and serial communication
├── monitor/ ← Live monitor webview panel
├── recording/ ← Audio + serial event recording stack
├── playback/ ← Session replay webview panel
└── storage/ ← Session persistence and tree provider
media/ ← Webview JS/CSS (not bundled via esbuild)
docs-site/ ← This documentation site (Docusaurus)
Submitting Changes
- Fork the repository and create a branch from
main. - Make your changes. Add tests for any new logic.
- Run
npm run lintandnpm test— both must pass. - Open a pull request against
mainwith a clear description.
Docs Changes
The docs site source lives in docs-site/. To preview locally:
cd docs-site
npm install
npm start
This opens a local dev server at http://localhost:3000 with hot reload.