Thank you for your interest in contributing to Hum!
- Clone the repository
- Set up your development environment:
# Install Lua using asdf asdf plugin add lua asdf install lua 5.4.7 asdf set lua 5.4.7 # Set up the project (installs git hooks and dependencies) make setup # Alternatively, install dependencies separately make deps # Installs luacheck, busted, luacov, etc.
- Set up your API key environment variable:
export CLAUDE_API_KEY=your_api_key_here - Open the project in Neovim
- Source the plugin for testing:
:lua package.loaded['hum'] = nil :lua package.loaded['hum.claude'] = nil :lua package.loaded['hum.git'] = nil :lua package.loaded['hum.prompts'] = nil :lua require('hum').setup()
The project uses luacheck for linting Lua files:
# Run linting manually
make lint
# Run linting script to fix common issues
lua scripts/fix-lint.luaA pre-commit Git hook is installed with make setup to run linting automatically before each commit.
You can test the plugin commands after setting up:
:HumCommit
:HumPR- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request
- Follow Lua best practices
- Use 2 spaces for indentation
- Add comments for complex logic