cp.nvim
The definitive competitive programming environment for Neovim
Scrape problems, run tests, and debug solutions across multiple platforms with
zero configuration.
https://github.com/user-attachments/assets/2b9e6c63-8750-451f-87ea-8909cef83762
Features
- Multi-platform support: AtCoder, CodeChef, Codeforces, USACO, CSES, Kattis
- Online Judge Integration: Submit problems and view contest standings
- Live Contest Support: Participate in real-time contests
- Automatic setup: Scrape test cases and metadata in seconds
- Streamlined Editing: Configure coding view, edit test cases, stress-test
solutions, run interactive problems, and more
- Rich output: 256 color ANSI support for compiler errors and program output
- Language agnosticism: Configure with any language
- Security: Passwords go untampered
Installation
Install using your package manager of choice or via
luarocks:
luarocks install cp.nvim
Dependencies
Quick Start
- Find a contest:
:CP pick
- View the problem:
:CP open
- Code and test
:CP run
- Navigate between problems
:CP next
:CP prev
:CP e1
- Debug and edit test cases
:CP edit
:CP panel --debug
- Submit:
:CP submit
- View contest standings:
:CP open standings
Documentation
:help cp.nvim
See
my config
for the setup in the video shown above.
Motivation
I could not find a neovim-centric, efficient, dependency-free, flexible, and
easily customizable competitive programming workflow that "just works"--so I
made it myself. I conferenced with top competitive programmers at Carnegie
Mellon Univerity and the University of Virginia and covered their (and my) pain
points:
- Scraping: contests are automatically loaded asynchronously
- Test Case Management: test case editor (
:CP edit)
- UI: both
run and panel layouts cover common formats
- Extensibility: snippet plugins, compilation, etc. are left to the programmer
Similar Projects