We welcome contributions to CodeBRT! This document provides guidelines for contributing to the project.
Please be respectful, inclusive, and considerate of others. We aim to maintain a welcoming environment for all contributors.
- Check existing issues to ensure the issue hasn't been reported before.
- Use the issue templates provided:
- For bug reports, include:
- Detailed description
- Steps to reproduce
- Expected vs. actual behavior
- Environment details
- For feature requests, describe:
- The proposed feature
- Potential implementation approach
- Potential benefits
- For bug reports, include:
- Fork the repository
- Create a new branch for your feature or bugfix
- Use a clear, descriptive branch name
- Example:
feature/add-new-functionality
orbugfix/resolve-specific-issue
- Make your changes
- Ensure your code follows the project's coding standards
- Write or update tests as needed
- Ensure all tests pass
- Submit a pull request with:
- Clear title
- Detailed description of changes
- Reference to any related issues
- Navigate to the VSCode Extension directory
cd VSCodeExtension/code-brt
- Install dependencies
npm install
- Open the project in Visual Studio Code
- To run and debug the extension:
- Go to the "Run and Debug" view (Ctrl+Shift+D)
- Select "Run Extension" configuration
- Press F5 or click the green play button
- Navigate to the Documents directory
cd Documents
- Install dependencies
yarn
- Start the development server
yarn start
-
Code Formatting
- Use Prettier for consistent code formatting
- Run
prettier --write
before committing changes
-
Function Styles
- Prefer arrow functions throughout the project
// Preferred const myFunction = (param: string) => { // Function body };
-
Project Structure The project is organized into specific modules:
-
src/api/
: Handles registration and interface between frontend and backendindex.ts
: Export necessary classes and functions- Contains module-specific types, constants, and utilities
-
src/integrations/
: Manages IDE control and interactionsindex.ts
: Export necessary classes and functions- Contains module-specific types, constants, and utilities
-
src/services/
: Implements connectors and complex handling logicindex.ts
: Export necessary classes and functions- Contains module-specific types, constants, and utilities
-
-
Shared Resources
- Global types, constants, and utilities are located under
src/types/
,src/constants/
, andsrc/utils/
- Use these for resources that are used across multiple modules
- Global types, constants, and utilities are located under
-
Testing
- Write test cases for your implementations
- Tests are located in
tests/
under thesrc
directory - Ensure good test coverage to aid in debugging and maintaining code quality
Commit messages should follow a specific format that clearly describes the type of change:
-
Add:
For adding a new function or featureAdd: Add new XML parsing utility function
-
Feat:
For changing or enhancing existing functionalityFeat: Improve error handling in API module
-
Fix:
For resolving bugs or issuesFix: Resolve memory leak in service connector
-
Update:
For updating source code, documentation, or dependenciesUpdate: Refactor code structure for better readability
- Start with the type of change (
Add:
,Feat:
,Fix:
,Update:
) - Provide a clear, concise description
- Optionally add more detailed explanation in the commit body
- All pull requests require review from project maintainers
- Be open to feedback and constructive criticism
- Maintainers may request changes or provide suggestions
If you have any questions about contributing, please open an issue or reach out to the project maintainers.
By contributing, you agree that your contributions will be licensed under the project's existing license.
Thank you for your interest in contributing to CodeBRT! 🚀