/vscode-fastolympiccoding

Competitive programming in VSCode made easy

Primary LanguageTypeScriptMIT LicenseMIT

⚡ Fast Olympic Coding ⚡

Testcases Gif

Fast Olympic Coding is an extension to assist with various tasks in competitive programming. It is a ported and enhanced version of the corresponding Sublime Text plugin that also leverages the power of VSCode.

⚡ Overview

  • 📜 Concurrently run, edit, and delete multiple testcases
  • 👨🏻‍💻 Stress tester to find counterexamples
  • 👜 Insert pre-written code from another file with automatic folding
  • 🛜 Reads testcases and outputs from Competitive Companion onto the current file
  • 🏃 BLAZINGLY FAST! Asynchronous design + optimizations = 99% spam proof!

💻 Keybinds

  • Compile (if file has compile command and file had changed) and run all testcases: Ctrl+Alt+B
  • Run stress test: Ctrl+Alt+G
  • Delete all testcases: Ctrl+Alt+D
  • Insert file template: Ctrl+Alt+I

📥 Installation: Visual Studio Marketplace


</> Setting Up

Provide run settings for the languages you use in settings.json. Here are some examples for C++, Python, and Java:

{
  "fastolympiccoding.runSettings": {
    ".cpp": {
      "compileCommand": "g++ -std=gnu++20 -D_GLIBCXX_DEBUG ${file} -o ${fileDirname}/${fileBasenameNoExtension}${exeExtname} -fdiagnostics-color=always",
      "runCommand": "${fileDirname}/${fileBasenameNoExtension}${exeExtname}"
    },
    ".py": {
      "runCommand": "python ${file}"
    },
    ".java": {
      "compileCommand": "javac ${file}",
      "runCommand": "java -cp ${fileDirname} ${fileBasenameNoExtension}"
    }
  }
}
  • Make sure the directory for your compiled file exists!
  • We can use VSCode's built-in variables as well as ${exeExtname} that resolves into .exe for Windows and an empty string for other platforms.
  • Forward/backward slashes are automatically normalized when being executed.

📜 Testcase Window

LeetCode Gif


👨🏻‍💻 Stress Tester

Required files (naming scheme configurable in settings):

  • <name>.[ext]: the solution to bruteforce against
  • <name>__Good.[ext]: the solution that outputs the correct answer
  • <name>__Generator.[ext]: to generate inputs for the other 2 files

Gif is recorded at 15FPS but the tester runs as low as 5ms between testcases!

Stress Tester Gif


👜 Inserting Prewritten Code

  • Specify your library directory in settings to enable this functionality. Otherwise, nothing happens!

File Template Gif


🛜 Competitive Companion

Competitive Companion Gif


© Attributions

  • FastOlympicCoding: The original Sublime Text package that inspired this extension 💖
  • Flaticon: Icon for this extension 💖