Skip to content

agrawal-d/cph

Repository files navigation

Competitive Programming Helper (cph)

Build Status Downloads

Quickly compile, run and judge competitive programming problems in VS Code. Automatically download testcases , or write & test your own problems. Once you are done, easily your solutions directly with the click of a button!

Cph supports a large number of popular platforms like Codeforces, Codechef, TopCoder etc. with the help of competitive companion browser extension

Screenshot

Quick start

  1. Install cph in VS Code and open any folder.
  2. Install competitive companion in your browser.
  3. Use Companion by pressing the green plus (+) circle from the browser toolbar when visiting any problem page.
  4. The file opens in VS Code with testcases preloaded. Press Ctrl+Alt+B to run them.
  • (Optional) Install the cph-submit browser extension to enable submitting directly on CodeForces.
  • (Optional) Install submit client and config file from the Kattis help page after logging in.

You can also use this extension locally, just open any supported file and press 'Run Testcases' (or Ctrl+Alt+B) to manually enter testcases.

See detailed user guide

Features

  • Automatic compilation with display for compilation errors.
  • Intelligent judge with support for signals, timeouts and runtime errors.
  • Works with Competitive Companion.
  • Codeforces auto-submit integration.
  • Kattis auto-submit integration.
  • Works locally for your own problems.
  • Support for several languages.

Supported Languages

  • C++
  • C
  • Rust
  • Go
  • Haskell
  • Python
  • Java
  • JavaScript (Node.js)

Contributing

You can contribute to this extension in many ways:

  • File bug reports by creating issues.
  • Develop this extension further - see developer guide.
  • Spreading the word about this extension.

Before creating a Pull Request, please create an issue to discuss the approach. It makes reviewing and accepting the PR much easier.

Telemetry

The extension collects basic events defined in src/telmetry.ts. To disable, modify the setting telemetry.telemetryLevel (applies to all VSCode extensions).

License

Copyright (C) 2023 Divyanshu Agrawal

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.