elycode is a one-stop VS Code extension for competitive programming practice. It enables code management, testing, and submission in a single workflow.
Key Features
- Import: Import problems from contest URLs without login and without a browser plugin
- Test: Support sample testing and comparison with sample answers, and add custom test cases
- Submit: Support jumping to the problem submission website and viewing historical submission records
- Display: Present problem information, samples, contests, and submission statistics clearly in the sidebar
- Code: Automatically generate corresponding C++ source files (
.cpp), auto-detect GCC, and support automatic GCC download/configuration on Windows (more programming languages will be supported in future releases) - Theme: Support VS Code light and dark themes
Quick Start
-
Open VS Code and install the
elycodeextension from the Extensions Marketplace. -
Open the
elycodesidebar view and you can click the button to add the contest you need.
-
In the pop-up input box, enter the URL of the contest you want to add. The URL must contain the ID of the contest.

-
You can use the sidebar view provided by
elycodeto manage and view contest problems, and you can also submit solutions for them.
-
By clicking the problem name, you can open the coding interface. The left side is the code area where you can implement your algorithm, and the right side is the view area that displays all problem information.

The view area also supports adding test cases and running sample cases and custom cases.

-
Optional: If you want to display related data such as submission history, you should configure the usernames for the corresponding platforms. See the Configuration section for
elycode.platform.codeforces.UserNameandelycode.platform.luogu.UserName.elycodewill also update the data everyelycode.platform.updateContestInfoInterval(seconds)seconds, and you can manually refresh it by using the button.
Supported System (Test Environment)
- Linux: Ubuntu 22.04 with kernel
5.15.0-181-generic - Windows: Windows 11 Pro for Workstations, version
25H2, OS build26200.7840
Supported Platforms
- Codeforces
- Luogu
- AtCoder
- Other common contest platforms
Supported Code Languages
- C/Cpp
- Java
- Rust
- Python
- Go
- JavaScript
Configuration
The extension provides the following VS Code settings:
elycode.compiler.detectMode:auto detect(gcc)orcustom(gcc).elycode.compiler.customPath: Custom GCC path, used only whencustom(gcc)is selected.elycode.compiler.extraParams: Additional compiler parameters, default is-std=c++17.elycode.running.timeLimit(seconds): Execution time limit per submission, default is2seconds.elycode.running.memoryLimit(MB): Memory limit per submission, default is256MB.elycode.code.templateMode: Code template mode, eitherautoorcustom.elycode.code.customTemplate: Custom code template, used only whencustommode is selected.elycode.platform.codeforces.UserName: Codeforces user name for fetching submission statistics.elycode.platform.luogu.UserName: Luogu user name for fetching submission statistics.elycode.platform.updateContestInfoInterval(seconds): Interval in seconds for auto refreshing contest statistics, default is60.
Development and Build
This project is built with TypeScript.
npm install
npm run compile
npm run watch
npm run compile: Compile the TypeScript source.npm run watch: Start TypeScript watch mode.
Since the VS Code extension development environment is configured, you can also test and develop the extension in the integrated development environment through the VS Code launch configuration.
Todo List
- Support more platform and code languages
- Fix error when quickly switching problems
License
MIT License
Note
This extension was developed by an individual in their spare time. It may still contain various issues or bugs, and feedback as well as pull requests are warmly welcome.
⭐ Wishing everyone great success in their ACM or OI journey. ⭐