@@ -7,6 +7,12 @@ Quick guide for contributors to the claudecode.nvim project.
77``` none
88claudecode.nvim/
99├── .github/workflows/ # CI workflow definitions
10+ ├── fixtures/ # Test Neovim configurations for integration testing
11+ │ ├── bin/ # Helper scripts (vv, vve, list-configs)
12+ │ ├── netrw/ # Neovim config testing with built-in file explorer
13+ │ ├── nvim-tree/ # Neovim config testing with nvim-tree.lua
14+ │ ├── oil/ # Neovim config testing with oil.nvim
15+ │ └── nvim-aliases.sh # Shell aliases for fixture testing
1016├── lua/claudecode/ # Plugin implementation
1117│ ├── server/ # WebSocket server implementation
1218│ ├── tools/ # MCP tool implementations and schema management
@@ -118,7 +124,46 @@ make format
1181242 . Create a feature branch
1191253 . Implement your changes with tests
1201264 . Run the test suite to ensure all tests pass
121- 5 . Submit a pull request
127+ 5 . ** For integrations** : Create a fixture configuration for testing
128+ 6 . Submit a pull request
129+
130+ ### Integration Testing with Fixtures
131+
132+ When adding support for new integrations (file explorers, terminals, etc.), you ** must** provide a fixture configuration for testing:
133+
134+ ** Requirements** :
135+ - Complete Neovim configuration in ` fixtures/[integration-name]/ `
136+ - Include plugin dependencies and proper setup
137+ - Add ` dev-claudecode.lua ` with development keybindings
138+ - Test all relevant claudecode.nvim features with the integration
139+
140+ ** Usage** :
141+ ``` bash
142+ # Source fixture aliases
143+ source fixtures/nvim-aliases.sh
144+
145+ # Test with specific integration
146+ vv nvim-tree # Start Neovim with nvim-tree configuration
147+ vv oil # Start Neovim with oil.nvim configuration
148+ vv netrw # Start Neovim with built-in netrw configuration
149+
150+ # List available configurations
151+ list-configs
152+ ```
153+
154+ ** Example fixture structure** (` fixtures/my-integration/ ` ):
155+ ```
156+ my-integration/
157+ ├── init.lua # Main Neovim config
158+ ├── lua/
159+ │ ├── config/
160+ │ │ └── lazy.lua # Plugin manager setup
161+ │ └── plugins/
162+ │ ├── dev-claudecode.lua # claudecode.nvim development config
163+ │ ├── init.lua # Base plugins
164+ │ └── my-integration.lua # Integration-specific plugin config
165+ └── lazy-lock.json # Plugin lockfile (if using lazy.nvim)
166+ ```
122167
123168## Implementation Details
124169
0 commit comments