chopsticks/CONTRIBUTING.md
m1ngsama 7b4b153f4b docs: GitHub polish — hero README, CI, templates, demo GIF
Add centered hero layout with demo GIF, 5 shields.io badges,
collapsible keybindings, performance table, and architecture tree.
Add GitHub Actions CI (startup test + shellcheck), issue/PR templates,
CONTRIBUTING.md, and VHS demo recording.
2026-04-22 00:58:56 +08:00

30 lines
1.1 KiB
Markdown

# Contributing
## Rules
1. **No Node.js dependencies.** The LSP engine is pure VimScript. Some language servers need Node — that's fine. The config itself must not.
2. **Startup matters.** Run `vim --startuptime /tmp/s.log -c qa!` before and after. If your change adds >1ms, it needs a good reason.
3. **Works on TTY.** Test over SSH. If it breaks in a terminal without true color, fix it or gate it behind `g:is_tty`.
4. **One module, one concern.** Don't put git config in lsp.vim.
## Adding a plugin
1. Add the `Plug` line to `modules/plugins.vim`
2. If it's not needed at startup, lazy-load it: `Plug 'foo/bar', { 'on': 'FooCommand' }`
3. Put config in the appropriate module
4. Update the cheat sheet in `modules/tools.vim` if you add keybindings
5. Test on both macOS and Linux
## Reporting bugs
Open an issue. Include:
- OS and Vim version
- Whether you're on SSH/TTY
- Steps to reproduce
## Code style
- Named augroups with `autocmd!`
- No comments explaining *what* — only *why*
- `exists('g:plugs["..."]')` guards for plugin-dependent config
- Test with `vim -u .vimrc --startuptime /tmp/s.log -c qa!`