Dragonado's blog

By Dragonado, 5 weeks ago, In English

Hello Codeforces!

We , aditya_chirania, niranjan.sy99, lomadapraveenreddy, janmansh and I (Dragonado) of IEEE-NITK, are extremely happy to release our VSCode Extension for CF called CodePal

CodePal is made to help Codeforces Users Code with Convenience. This extension is especially for people who want to save time in a live codeforces contest and upsolve problems comfortably. This extension responds quickly to users. It can swiftly filter through the problem list by specifying tags and ratings, create folders for contests and problems containing sample tests of each problem in them and compile and run tests automatically. For added convenience, we've created buttons to directly open problem statements and submission pages on the default browser.

Current Features of this Extension

  • View Complete ProblemSet List along with their associated tags and ratings.
  • Swiftly Filter through the ProblemSet by specifying Ratings and Tags.
  • View Currently running, Upcoming and all Past contests and also view the precise start date, time, and duration of upcoming contests.
  • Fast Folder Creation on a single click for Contests from the Codeforces contest list and Problems from the Codeforces problem list.
    • Folder for a contest contains a folder for each problem and also contains all sample test cases and program files for each problem.
    • Folder for a problem consists of all its sample test cases and a program file loaded with a template whose path may be specified in the settings.
  • Add additional tests to any problem.
  • Compile and run any program file against the test cases and get comprehensive results.
  • Open the problem statement or submission page with a single click, on your default browser. (You must be logged in to codeforces beforehand to open the submission page successfully)
  • Compiler may be selected and compilation flags can be set through the CodePal settings.
  • Perform Stress testing to find a counter test case for your code.
  • Get a personalized experience of viewing details of your Codeforces profile and the status of problem submissions made, by entering your Codeforces handle in the codepal settings.

Languages Supported

  • C++ (compiler: g++)
  • C (compiler: GCC)
  • Java (compiler: javac)
  • Python
  • Note: You may add additional compilation flags through the codepal settings (example: -std=c++14) and also choose between python, python2, or python3 depending upon the python command you use on your system to run.

Operating Systems Supported

  • Windows
  • Linux
  • Mac

Here is a snapshot of the extension

You can install our extension here: https://marketplace.visualstudio.com/items?itemName=IEEE-NITK.codepal

You can find the usage guide, developer docs, and demo GIFs here: https://github.com/IEEE-NITK/CodePal/blob/master/README.md

Please do try it and give us your feedback. If you face issues or bugs, please comment on this blog or here. We're planning some more features for our subsequent releases and wish to keep all subsequent releases as smooth functioning and responsive as this.

Thank you :)

UPD 1: MAC support for C++, C, Python and Java are there too now. The version has been updated to 0.0.2.

UPD 2: v1.0.0 Released : New features such as stress testing and keyboard shortcuts have been added. You can also get a personalized experience(User profile details and status of past attempted problems are shown) by entering just your CF handle in CodePal settings.

 
 
 
 
  • Vote: I like it
  • +127
  • Vote: I do not like it

»
5 weeks ago, # |
  Vote: I like it +9 Vote: I do not like it

Looks Great

»
5 weeks ago, # |
  Vote: I like it +9 Vote: I do not like it

Excited to try this out!! :D

»
5 weeks ago, # |
  Vote: I like it +6 Vote: I do not like it

awesome

»
5 weeks ago, # |
  Vote: I like it +2 Vote: I do not like it

Wow, This seems really cool.

»
5 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

Tried it and its awesome

»
5 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

This is really good! Please update the blog whenever the Mac support for c++ is released.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    Yes, In our next minor update to 0.0.2 we shall be including C++,C and Java support for MAC users as well.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    We now have MAC support for c++, c and Java as well

»
5 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

is there any way, this can help me read problems without having to leave vs-code? it would make it absolutely great!

»
5 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

Thanx for this. Its awesome.

»
5 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

This is really good! Thanks for this, please try to make an update that we can just directly upload/submit the file.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Thank you :). We will work on it. We will update the blog if we manage to provide the same speed and convenience as codeforces submit.

»
5 weeks ago, # |
  Vote: I like it +9 Vote: I do not like it

Used it and it really helped me in the contest. Thanks!

»
3 weeks ago, # |
  Vote: I like it +5 Vote: I do not like it

Do you Implement Caching for user Profile and Problems and stuff and just hot reload it then, or does it takes loads all this info everytime we open VSCode and use this extension?

  • »
    »
    3 weeks ago, # ^ |
    Rev. 4   Vote: I like it +6 Vote: I do not like it

    Since new problems get added every week and your submission status also changes, we load problems everytime you open VS Code. We initially did think of caching in a json file locally but we were faced with the following difficulties:

    • If we cache all problems till date D, the codeforces api doesnt let us request for problems added only after date D. It always returns the entire problemset. So if we anyway are returned all problems by the codeforces api , why cache locally.
    • We could try to do webscraping from the Problemset Page to get more recent problems after the last cached date D. But webscraping from one problemset html page and then parsing it and looking for the recent problems would turn out to be much slower than directly getting the problemset object as a json object from the cf api