|
| 1 | +# Contributing to vim-openvox |
| 2 | + |
| 3 | +Thank you for your interest in contributing to vim-openvox! This plugin aims to be a high-quality, modern Vim experience for OpenVox and Puppet 8+ users, closely aligned with the official style guide and the battle-tested vim-puppet reference implementation. |
| 4 | + |
| 5 | +## Ways to Contribute |
| 6 | + |
| 7 | +We welcome contributions in many forms: |
| 8 | + |
| 9 | +- **Bug reports** — Especially around indentation, arrow alignment, and linting integration. |
| 10 | +- **Feature requests** — New completion sources, better navigation, LSP integration ideas, etc. |
| 11 | +- **Code contributions** — Fixes, improvements, and new features. |
| 12 | +- **Documentation** — Improvements to README, help text, or this guide. |
| 13 | +- **Testing** — Running the plugin on real-world Puppet/OpenVox codebases and reporting issues. |
| 14 | + |
| 15 | +## Development Setup |
| 16 | + |
| 17 | +1. Clone the repository: |
| 18 | + ```bash |
| 19 | + git clone https://github.com/cvquesty/vim-openvox.git |
| 20 | + cd vim-openvox |
| 21 | + ``` |
| 22 | + |
| 23 | +2. For Vim development, you can load the plugin directly from the directory using Pathogen, vim-plug (with a local path), or Vim 8+ packages. |
| 24 | + |
| 25 | +3. Useful tools: |
| 26 | + - `vint` (Vim script linter): `pip install vim-vint` |
| 27 | + - A recent Vim 8.1+ or Neovim for testing async features. |
| 28 | + |
| 29 | +## Code Style & Guidelines |
| 30 | + |
| 31 | +- Follow the existing code style (2-space indentation in Vim files). |
| 32 | +- Keep changes minimal and focused. |
| 33 | +- When porting or aligning logic with the vim-puppet reference, prefer clarity and style-guide fidelity over cleverness. |
| 34 | +- Add clear comments for non-obvious logic (especially in `indent/` and `align/`). |
| 35 | + |
| 36 | +## Submitting Changes |
| 37 | + |
| 38 | +1. Create a feature branch from `development`: |
| 39 | + ```bash |
| 40 | + git checkout development |
| 41 | + git checkout -b fix/some-issue |
| 42 | + ``` |
| 43 | + |
| 44 | +2. Make your changes, test them thoroughly (especially indentation and alignment on real manifests). |
| 45 | + |
| 46 | +3. Commit with a clear message following the style of recent commits (e.g., `fix(indent): ...`, `docs: ...`). |
| 47 | + |
| 48 | +4. Push your branch and open a Pull Request against the `development` branch. |
| 49 | + |
| 50 | +5. In the PR description, please include: |
| 51 | + - What problem it solves |
| 52 | + - How you tested it |
| 53 | + - Any related issues |
| 54 | + |
| 55 | +## Reporting Issues |
| 56 | + |
| 57 | +When reporting bugs, please include: |
| 58 | +- Vim or Neovim version (`:version`) |
| 59 | +- Output of `:PuppetLint` or `:OpenvoxLint` if relevant |
| 60 | +- A minimal reproducible example (a small `.pp` snippet) |
| 61 | +- Expected vs actual behavior |
| 62 | + |
| 63 | +## Recognition |
| 64 | + |
| 65 | +Contributors will be acknowledged in the README or release notes as the project matures. Every improvement helps make OpenVox development more pleasant in Vim. |
| 66 | + |
| 67 | +Thank you for helping make vim-openvox great! |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +*This document is part of the v1.0.0 release candidate effort.* |
0 commit comments