Skip to content

unneon/icie

Repository files navigation

ICIE

ICIE is intended to be a VS Code plugin which turns it into an IDE focused on competitive programming. It aims to cover every aspect of participating in programming competitions, from downloading statements and setting up template code, through building solutions and running the example tests to submitting the solution and tracking its status. Both efficiency and convenience are priorities, with automated behavior and keyboard shortcuts making coding hassle-free and achieving otherwise impossible time penalties. Currently, it works on Windows, Linux and macOS, with support for Codeforces, AtCoder, CodeChef and SPOJ. If you have any questions, just create a GitHub issue!

Quick start

  • Launch Visual Studio Code, go to Extensions, search for ICIE and click Install.
  • To participate in a contest, press AltF9 before it starts and select it from the list.
  • Use AltF12 to automatically build, run example tests and submit if tests pass.
  • Use AltBackspace to quickly switch between tasks.
  • To open a single task or an old contest, press AltF11 and copy-paste its URL.
  • Check out all the other features below!

More features

  • Hover over the test input or output and press CtrlC to copy it
  • Click "Edit" icon on test input or output to edit it
  • Click "Accept" icon on a failing test output to mark it as correct
  • Click "Reverse" icon on a failing test output to launch it in GDB debugger
  • Click "Reverse 2x" icon on a failing test output to launch it in RR debugger
  • Alt- to add a new test
  • Altt to launch a terminal
  • Alt0 to run tests without submitting
  • Alt9 to run stress tests (test your solution on thousands of random tests)
  • Alt8 to reopen task statement
  • Alti to generate a simple struct and an input operator>>
  • Alt[ to automatically copy-paste parts of your library
  • Alt= to create a new file from a template
  • Alt; to manually compile a file
  • Alt\ and Alt0 to run tests on currently open file instead of the solution
  • Alt+ and select "C++ Checker" to use custom code for checking output correctness
  • Alt+ and select something else to create more .cpp files from templates
  • CtrlShiftP and select "ICIE Web" to open contest or task page in a web browser
  • CtrlShiftP and select "ICIE Password reset" to log out or reset a password
  • Ctrl, and select Extensions > ICIE to easily configure ICIE's behavior.
  • To alter settings only for the current task, use the "Workspace" tab in the settings view.

Supported sites

Contests Statement Examples Submit Track
Codeforces Yes Yes Yes Yes Yes
AtCoder Yes Yes Yes Yes Yes
CodeChef Yes Yes Yes Yes
SPOJ Yes Yes Yes
sio2 sites Yes Yes Yes

Development & Building from source

The instructions can be found in CONTRIBUTING.md. The project is still in development, the Rust language does not have an official VS Code API, there is a custom build system, it uses WebAssembly which is still in heavy development, and it also patches the compiler output with regexes to remove some type checks, but nevertheless I have tried to make it as streamlined as possible. If you have any trouble, just create a GitHub issue!