Thanks for your interest in contributing!
- Read the architecture overview:
doc/ARCHITECTURE.md
- Skim the README:
README.md
- Make changes in
lua/andpython/.
lua/— Lua plugin implementationpython/— Python bridge + inspectorstree-sitter-ipynb/— treesitter grammartests/— headless Neovim test suite
- Neovim 0.10+
nvim-treesitterfor tree-sitter supportsnacks.nvimfor image rendering and colorized inspect
- a language server (e.g. basedpyright/pyright, julials, r_language_server)
- Python 3.x (for kernel bridge + tests that touch Python)
jupyter_client,nbformat(we recommend installing viauvand the project'spyproject.toml)
From the repo root:
./tests/run_all.shNotes:
- The test runner bootstraps a minimal Neovim + plugins into a temp XDG dir.
- It will create a small Python venv for LSP tests (basedpyright + ruff) if available.
- Set
IPYNB_TEST_SKIP_BOOTSTRAP=1to skip lazy.nvim bootstrapping. - Set
IPYNB_TEST_SKIP_LSP_BOOTSTRAP=1to skip Python venv/LSP setup.
- Favor incremental, well-tested changes over big refactors.
- Add/extend tests in
tests/when behavior changes.
When opening a PR, please include:
- A short description of the change and motivation
- How you tested (command + platform)
- Screenshots or GIFs if the change is visual
PRs will only be reviewed after all tests pass.