Thank you for your interest in contributing to the official Visual Studio Code extension for TOON!
This project uses pnpm for dependency management and TypeScript for development.
# Clone the repository
git clone https://github.com/toon-format/vscode.git
cd toon-vscode
# Install dependencies
pnpm install
# Build the extension
pnpm build
# Development mode (watch)
pnpm dev
# Run linting
pnpm lint
# Type check
pnpm test:types- Fork the repository and create a feature branch
- Make your changes following the coding standards below
- Add tests for any new functionality
- Ensure all checks pass (lint, type check, build)
- Submit a pull request with a clear description
To test your changes in VS Code:
- Open the project in VS Code
- Press
F5to launch an Extension Development Host - Test your changes in the development instance
- Check the Debug Console for errors or logs
- All code must include TypeScript types
- Use strict mode (configured in
tsconfig.json) - Run type checking before committing:
pnpm test:types
- We use ESLint with
@antfu/eslint-config - Run before committing:
pnpm lint pnpm lint:fix # Auto-fix issues
We target Node.js 24+ to match the main toon repository.
All implementations must comply with the TOON specification.
Before submitting changes that affect TOON format handling:
- Verify against the official SPEC.md
- Test with examples from the specification
- Document any spec version requirements
- Title: Use a clear, descriptive title
- Description: Explain what changes you made and why
- Tests: Include tests or manual testing instructions for your changes
- Documentation: Update README or documentation if needed
- Commits: Use clear commit messages (Conventional Commits preferred)
Your pull request will use our standard template which guides you through the required information.
Publishing to the Visual Studio Marketplace is handled by the release workflow. Only maintainers can trigger releases.
To package the extension locally:
pnpm package # Creates a .vsix file- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For questions and general discussion
- Pull Requests: For code reviews and implementation discussion
This is a collaborative project. Current maintainers:
All maintainers have equal and consensual decision-making power. For major architectural decisions, please open a discussion issue first.
By contributing, you agree that your contributions will be licensed under the MIT License.