Thank you for your interest in contributing to our TypeScript and VS Code projects. This guide covers everything you need to know to open a high-quality pull request.
Be respectful, constructive, and direct. Fynes Forge projects follow a simple standard: treat contributors the way you'd want to be treated on a professional engineering team.
- Search existing issues to avoid duplicates.
- Open a new issue using the Bug Report template.
- Include: what you expected, what happened, steps to reproduce, and your environment (VS Code version, OS, and Extension version).
- Open an issue using the Feature Request template.
- Describe the problem you're solving, not just the solution.
- Wait for a maintainer to approve the direction before opening a PR.
- Fork the repository and create a branch from
main. - Name your branch descriptively:
fix/webview-memory-leakorfeat/add-lsp-support. - Make your changes — keep commits small and focused.
- Ensure all checks pass locally before pushing (see Code Standards below).
- Open a PR using the provided template.
- A maintainer will review within a reasonable timeframe.
| Type | Pattern | Example |
|---|---|---|
| Feature | feat/<description> |
feat/explorer-view-provider |
| Bug fix | fix/<description> |
fix/syntax-highlighting-edge-case |
| Documentation | docs/<description> |
docs/update-extension-api-usage |
| Chore | chore/<description> |
chore/update-vscode-engine |
| Release | release/<version> |
release/1.2.0 |
Follow Conventional Commits:
<type>(<scope>): <short description>
[optional body]
[optional footer]
- Types: feat, fix, docs, style, refactor, test, chore
feat(ui): add sidebar icon for Forge dashboard
fix(parser): resolve infinite loop in TS configuration loading
docs(readme): add troubleshooting section for Linux users
chore(deps): bump @types/vscode to 1.85.0
npm install # Install dependencies
npm run compile # Initial TypeScript compilation-
Open the project folder in VS Code.
-
Press F5 to open a new Extension Development Host window.
Your changes will be active in that new window.
Use the Debug Console in the primary window to view logs and errors.
All contributions must pass the following checks before a PR can be merged:
npm run lint # ESLint check (Linting)
npm run format # Prettier check (Formatting)
npm run check-types # TypeScript compiler check (Type Checking)
npm test -
Strict Typing: Avoid using any. Use interfaces and types to define data structures.
-
Async/Await: Prefer async/await over raw Promises or callbacks.
-
Disposables: Ensure any listeners or timers are added to context.subscriptions to prevent memory leaks.
-
UI Consistency: Follow the VS Code UX Guidelines.
-
Tests: Unit tests are required for logic; integration tests are required for VS Code API interactions.
PRs should be small and focused — one logical change per PR.
Reference the issue your PR closes: Closes #42.
Fill in the PR template completely.
Visuals: For UI changes, a GIF or screenshot of the change in the Extension Development Host is highly appreciated.
Versioning This project follows Semantic Versioning:
MAJOR — breaking changes or significant engine bumps.
MINOR — new features or API additions.
PATCH — bug fixes and dependency updates.
Changes are documented in CHANGELOG.md.
Licence By contributing, you agree that your contributions will be licensed under the same MIT Licence as the project.