# Contributing to CargDev-Cyberpunk.nvim Thank you for your interest in contributing to CargDev-Cyberpunk.nvim! This document provides guidelines for contributing to the project. ## Getting Started ### Prerequisites - Neovim 0.8.0 or higher - Git - A GitHub account ### Fork and Clone 1. Fork the repository on GitHub 2. Clone your fork locally: ```bash git clone https://github.com/YOUR_USERNAME/cargdev-cyberpunk.nvim.git cd cargdev-cyberpunk.nvim ``` ## Development Setup ### Local Development 1. Create a new branch for your changes: ```bash git checkout -b feature/your-feature-name ``` 2. Make your changes to the codebase 3. Test your changes: ```bash # Test the color scheme in Neovim nvim --headless -c "lua dofile('test/test_colors.lua')" ``` ### Testing Your Changes 1. Open Neovim with your local version: ```bash nvim -u NONE -c "set runtimepath+=/path/to/your/cargdev-cyberpunk.nvim" ``` 2. Test with different file types: ```bash nvim examples/sample.ts ``` 3. Verify the colors are applied correctly ## Making Changes ### Code Style Guidelines - Follow Lua best practices - Use consistent indentation (2 spaces) - Keep functions focused and concise - Add comments for complex logic - Maintain the cyberpunk aesthetic in color choices ### File Structure ``` lua/cargdev-cyberpunk/ ├── init.lua # Main plugin entry point ├── colors.lua # Color palette definitions ├── config.lua # Configuration management ├── highlights.lua # Highlight group definitions └── plugin.lua # Plugin metadata colors/ └── cargdev-cyberpunk.lua # Colorscheme command file test/ └── test_colors.lua # Test suite ``` ### Color Guidelines When adding new colors or modifying existing ones: - Maintain high contrast for readability - Use vibrant, neon colors that fit the cyberpunk theme - Test colors in different lighting conditions - Ensure accessibility standards are met ## Submitting Your Changes ### Commit Guidelines 1. Make atomic commits (one logical change per commit) 2. Use clear, descriptive commit messages 3. Follow conventional commit format: ``` type(scope): description [optional body] [optional footer] ``` Examples: - `feat(colors): add new neon purple for decorators` - `fix(highlights): correct function highlighting in TypeScript` - `docs(readme): update installation instructions` ### Pull Request Process 1. **One Change Per PR**: Each pull request should contain only one logical change or feature 2. **Update Documentation**: If your change affects user experience, update the README.md 3. **Test Thoroughly**: Ensure your changes work across different file types and Neovim configurations 4. **Create Pull Request**: - Go to your fork on GitHub - Click "New Pull Request" - Select the `master` branch as the base - Provide a clear title and description ### Pull Request Template ```markdown ## Description Brief description of the changes made. ## Type of Change - [ ] Bug fix - [ ] New feature - [ ] Documentation update - [ ] Code refactoring ## Testing - [ ] Tested with TypeScript files - [ ] Tested with other file types - [ ] Verified colors are applied correctly - [ ] No breaking changes introduced ## Screenshots (if applicable) Add screenshots showing the visual changes. ## Checklist - [ ] My code follows the project's style guidelines - [ ] I have tested my changes thoroughly - [ ] I have updated documentation if needed - [ ] My changes generate no new warnings - [ ] I have added tests if applicable ``` ## Review Process 1. **Code Review**: All PRs will be reviewed by maintainers 2. **Testing**: Changes will be tested in different environments 3. **Feedback**: You may be asked to make adjustments 4. **Merge**: Once approved, your PR will be merged to master ## Getting Help If you need help or have questions: 1. Check existing issues and discussions 2. Create a new issue with detailed information 3. Join the project discussions ## Code of Conduct - Be respectful and inclusive - Focus on constructive feedback - Help others learn and grow - Follow the project's coding standards ## License By contributing to this project, you agree that your contributions will be licensed under the MIT License. --- Thank you for contributing to CargDev-Cyberpunk.nvim! Your help makes the project better for everyone.