Jatana's blog

By Jatana, 6 years ago, In English

TestManager

Hello, I would like to introduce the plugin FastOlympicCoding for Sublime Text.
It provides several useful features for competitive programming.

Test Manager
  • The main feature is test managing. You can effectively add, edit, and delete tests. See the screenshot above.
Debugger
  • Also for OSX, there is a debug functions.

Debugger

Class Completions
  • The next feature is class completions.
  • Write chars as classes for a template substitution.

ClassComplete

CppLint
  • C++ lint
  • Edit lint properties in settings.

CppLint

Stress Testing
  • You can stress test your program for finding test where it works incorrect.
  • This function requires a program that works correct and a test generator.
  • For further information see instructions on github

Stress


For the additional information and keybindings please visit the github page — https://github.com/Jatana/FastOlympicCoding

Installation
Contribution and Issues
  • Feel free to ask any question or express your ideas here or on github
  • Vote: I like it
  • +245
  • Vote: I do not like it

| Write comment?
»
6 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Great job! As a Sublime Text user, I have to say thanks :)

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Amazing work will be very helpful if you can also provide something for java like this

  • »
    »
    6 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Make sure, that you can add any language in the settings. For example, there is already defined python.

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Aren't autocompletion, linting and other IDE functions common plugins for many languages?

  • »
    »
    6 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Linting, debugging and completions are only for C++, other features are for all languages.

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      That's not what I'm talking about.

      I'm saying there were plugins doing these things long ago.

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

        Yes, I agree that some functions have already in use.
        But, there are also innovative functions too.

»
6 years ago, # |
  Vote: I like it +13 Vote: I do not like it

I think the "Compile and Run" should save the file first then compile, as default compile options in sublime does.
Btw, how to change key bindings?

  • »
    »
    6 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Preferences-Browse Packages-CppFastOlympicCoding-Default (your os).sublime-keymap

    But, it changes to default with every plugin update.

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      And what about the "Save + Compile + Run"?

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it +3 Vote: I do not like it

        you can add "save_on_focus_lost": true in sublime user setting, hope it will help.

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

It is not working for me on Ubuntu 18.04. When I compile (ctrl-alt-b) gives the following error:

Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 993, in run_
    return self.run(edit, **args)
  File "/home/daniel/.config/sublime-text-3/Packages/FastOlympicCoding/test_manager.py", line 1465, in run
    self.create_opd(clr_tests=clr_tests, sync_out=sync_out, use_debugger=use_debugger)
  File "/home/daniel/.config/sublime-text-3/Packages/FastOlympicCoding/test_manager.py", line 1307, in create_opd
    file_ext = path.splitext(file_name)[1][1:]
  File "./python3.3/posixpath.py", line 125, in splitext
  File "./python3.3/genericpath.py", line 92, in _splitext
AttributeError: 'NoneType' object has no attribute 'rfind'
»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

I have installed it from package control but unable to use it.Can somebody please tell what is the next step after installing the plugin?

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Can anybody help me. When I try to compile it just hung. Can any body give me there settings file. Thank you

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Hey, I have a feature request, can you automatically fetch test cases from cf problem page into sublime editor? Something like Hightail does?

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Is there any similar package for python I have switch from c++ to python and i miss it so much Thanks

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

please somebody help..how to use python in sublime text?

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

Can you add support for competitive companion so that we can automatically run the test cases. You could also add a submit soln button using cf tools.

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

    Would be awesome if competitive-companion is supported in the plugin by default. It bothers me a bit that there's not even a shortcut for clearing all tests for a file, so after solving a problem I have to clear all the tests manually for that file to recode in that same file (Since I always code in files named "A.cpp"...etc in a folder).

    Until competitive-companion is supported by default, here's a little workaround: FastOlympicCodingHook

    Setup

    • Make sure you have python3, FastOlympicCoding and Competitive Companion installed.
    • Add 12345 in the list of ports of competitive-companion browser extension.
    • Clone the repository inside your Sublime Text Packages folder and rename the cloned folder to FastOlympicCodingHook. You can do a quick google search to locate that folder for your particular OS or you can click the "Browse Packages" option in Sublime Text (if you find it) and the folder will open itself.

    Usage

    1. Navigate to the file that you'll solve the problem in. Then right click anywhere in the file. You should find an option named Listen to Competitive Companion. Click on it.
    2. In the browser, navigate to the problem page and click on the competitive-companion extension's green plus icon.

    The problem test cases and correct answer would be parsed now and stored in a file named your filename/tests. You might not immediately see the change in test cases inside sublime text. But if you run your code using FastOlympicCoding plugin (ctrl+B), then it'll you show those updated test cases and run your code against them.

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

      can you plz elaborate more plz?add 12345 port and clone it

      but can't find Listen to competitive Companion option?

      can you plz help me?

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

        I recorded a short walk-through here. Try to follow these steps exactly as shown. Let me know if the option still doesn't appear. And sorry for the horrible quality of the video. I don't have any access to a WiFi right now.

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

          Thanks, for your effort.but in windows there is no test file created like u, and may it can't be recognize accepted or declined .anything happened always so accepted.

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

            Windows issue has been resolved now. Many thanks to ABSTERGO for helping me out.

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

              where i get updated version?

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

                I updated the code in github repository, so you can just delete and re-clone the repository in your sublime packages folder. Alternatively, you can also open the repository folder in your command prompt and run the command git pull which will update your local copy with the updated codes in github.

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

              First, I would like to thank DrSwad Jatana for their support.

              I'm using FastOlympicCoding and FastOlympicCodingHook on windows and it's working fine.

              1. Install the latest version of the FastOlympicCoding plugin(simply remove it and install again) from here FastOlympicCoding.
              2. Add the following line in the FastOlympicCoding' settings file: "tests_file_suffix": "__tests",
              3. Clone the FastOlympicCodingHook in your sublime packages folder.

              • »
                »
                »
                »
                »
                »
                »
                »
                5 years ago, # ^ |
                Rev. 2   Vote: I like it 0 Vote: I do not like it

                brother, is there any way it automatically knows that this test case is wrong or right?

                where should we add the line

                anywhere in the settings file

                or specific after some line?

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

                  anywhere on the right blank side

              • »
                »
                »
                »
                »
                »
                »
                »
                4 years ago, # ^ |
                Rev. 2   Vote: I like it 0 Vote: I do not like it

                In settings where should I add this line, and when I press ctrl + b its just displaying output in command line

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  4 years ago, # ^ |
                    Vote: I like it 0 Vote: I do not like it

                  add it on the right hand side. try ctrl+alt+b

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  4 years ago, # ^ |
                  Rev. 3   Vote: I like it -8 Vote: I do not like it

                  Thanks,that worked, Is there a way to delete all test cases at once?

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Do we have anyway? so that we don't have to select Listen to Competitive Companion again and again for every new problem we try to phrase.

»
5 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

can someone tell me , how to modify this so that it will work as given below ..

mmll --> multimap<ll,ll>
msll --> multiset<ll,ll>
dql  --> deque<ll>
  • »
    »
    5 years ago, # ^ |
    Rev. 2   Vote: I like it -10 Vote: I do not like it

    You can use

    typedef multimap<ll, ll> mmll;
    typedef multiset<ll, ll> msll;
    typedef deque<ll> dql;
    

    or

    #define mmll multimap<ll, ll> 
    #define msll multiset<ll, ll> 
    #define dql deque<ll> 
    
  • »
    »
    5 years ago, # ^ |
    Rev. 2   Vote: I like it +13 Vote: I do not like it

    Sublime menubar -> Tools -> FastOlympicCoding -> (in the File opened) cpp_completion_setting. Add any more snippet in the fashion given below.

    "deque":{
    	"template_size": 1,
    	"bind": "d"
    },
    "unordered_map":{
    	"template_size":2,
    	"bind": "D"
    }
    

    Please note that you can only use one char as bind.

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

When I try to compile it only works the first time after I have started Sublime, then when I try to compile something it gets stuck at "compiling" and never finishes. I saw that there are people with similar issues but never found a solution to them.

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

    I have the same problem, but it gets stuck on "compiling" only after ctrl+shift+b (debugger)

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

      You just have to avoid using Ctrl+Shift+B, but if you can't there's a workaround.

      Make a new build system named "nobuild" and leave the file blank, then use it as your default build system. Now if you press ctrl+shift+b by mistake, it'll just do nothing, so problem solved!

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

    I have the same problem, and sometimes it gets stuck at "compiling" the first time after starting sublime.

  • »
    »
    3 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Facing the same issue, did anyone figure it out?

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

I have a problem where when you save the file the test case gets cleared, is there any ways to fix that.

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

    The following should work.

    1. Open FastOlympicCoding settings file (press ctrl+shift+p and type Open Settings)

    2. Add the following line there: "tests_file_suffix": "__tests"

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

    It's not happening with me. When I save the file, I have to recompile it with ctrl+alt+b.

»
5 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Is there a way to send the code from the Sublime Text?

»
5 years ago, # |
Rev. 3   Vote: I like it 0 Vote: I do not like it

deleted

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Hey .. just like ctrl+d, which deletes the current testcase, Is there a way to have a key Binding which deletes all the test cases present in the file. Thanks in advance !

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Recently I tried to use ST because my codeblocks is compiling slow.But I'm facing problem that when there is infinite loop system is crashing.I want feature like codeblocks that whenever I write infinite loop system will not crashes?

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Will be amazing if it is integrated into VS Code.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    if you need similar functionality for VSCode you can use ACMX extension.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Hi! IS there a way that we can delete all the existing tests of a program while compiling and enter all tests from the scratch. As deleting one test at a time is kind of annoying. Thanks.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

The test manager is not reading the input, so i have to stop the program to run and then I have to edit the test after which the programs gets the input and runs successfully. Is there any way it can be fixed?

»
4 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

I am facing a problem in the autocompletion feature(Windows). Whenever, i try to autocomplete the recommened stuff for eg. vec to vector<> ,then the std:: appears with it too and it becomes too annoying. I have tried to change the settings but I couldn't succeed. Please help!!!!!!! Refer to the link to see the problem https://www.imageupload.net/image/screenshot-38.klbeJ

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    that is most likely Sublime Text's default snippet, you can read this to see how to fix it

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Yes...It's due to sublime default snippets. I have modified it and now it works fine.

      • »
        »
        »
        »
        3 years ago, # ^ |
          Vote: I like it +1 Vote: I do not like it

        whohet how can we change/edit Class Completions ? suppose I want sort to sort (arr, arr + n) how can I do that ??

        Also how to edit settings file to get vec to vector<>

        • »
          »
          »
          »
          »
          3 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          For that you need to overwrite default autocompletes, which are hidden by default and can be seen by "Package Resource Viewer". For more see this.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

When I try to input manually it continues infinitely. It should stop by Enter key. But cursor goes down and down when i press enter. It does not stop taking input and does not show output.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Solved. Num pad's enter key doesn't execute output but qwerty's enter key execute output.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

I am just wondering Where to give input file??

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Jatana, Is Codeforces contest setup having some issues lately ? I have tried reinstalling and every stuff but when I try to make a new codeforces contest, it just doesnt load the new files and tests for the same ? I would appreciate the help in advance, Thanks !

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Could you send the link to the contest which you are trying to setup?

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I was trying to parse this round.

      • »
        »
        »
        »
        4 years ago, # ^ |
        Rev. 2   Vote: I like it 0 Vote: I do not like it

        Press ctrl+~, then try to parse the contest, and paste the log here.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Actually I think the bug is related to the custom test suffix in the new update, I removed the getsettings condition keeping only the original TEST_SUFFIX_FILE condition and the plugin seems to work fine now

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

Jatana Can you please make a video tutorial of how to install and setup. it will be helpful for beginners like me.

»
4 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Firstly,this is really a great tool! Thanks to the author! i spend some time to config it, here's how i do it, hope it can help: btw, i use sublime on windows10.

  1. how to use this tool? just download the FastOlympicCoding folder from github and put it in you sublime package folder, here's my location:C:\Users\zzy81\AppData\Roaming\Sublime Text 3\Packages\FastOlympicCoding, and there might be a user folder in the package folder too, it's the config folder for your sublime.

  2. If you don't want to save it before you run cpp, just because it's too annoying, so you can google how to autosave sublime, you just need to add "save_on_focus_lost": true in user setting.

  3. If you dont want to use ctrl+alt+bto run you cpp, just go inside FastOlympicCoding folder and open Default (Windows).sublime-keymap, find ctrl+alt+b and change to anykey combination you want.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    can you just upload a video of this? I have followed the instructions but still, there are several problems.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      i kinda don't want to config one more sublime again.. i will send you message.

    • »
      »
      »
      4 years ago, # ^ |
      Rev. 3   Vote: I like it 0 Vote: I do not like it

      just put FastOlympicsCoding in package folder, then it should be ok.

»
4 years ago, # |
  Vote: I like it +9 Vote: I do not like it

First of all, sorry for commenting on an old post.

Is there any way by which we can set an upper bound on the runtime of a program and memory usage of a program?

Whenever I have a command such as

while(1)
{
    v.push_back(0);
}

which uses too much memory, my system freezes, and I have to shut down it forcefully.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I think you can fix this by timeout in your run command. For linux, its timeout 5 ./executable_name , this would kill the process after 5 secs. Sorry, I dont know its windows alternative, but will update this when I find one.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

I tried using a js file to auto parse the testcases but when I try to build the file the testcases get deleted. Cans someone help? I tried using HealthyUG setup but apparently its not working for me.

»
3 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

For parsing test cases every time I need to left-click and choose "listen to competitive companion" and then use the competitive companion is there any other alternative where I don't need to left-click and choose listen to competitive companion every time?

Sorry for replying to an old post but I am too annoyed and didn't find a solution to this anywhere.

  • »
    »
    3 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    You can use an automatic parser (a python file) for a particular problem. Github repository link :

    Use this repo for setting that up, you can also watch epsilon's particular video on this. Video link .

    Also, you can parse the full contest by making some changes in the automatic.py file in the above-mentioned repository!

»
3 years ago, # |
Rev. 4   Vote: I like it +16 Vote: I do not like it

Hello, I would like to share a plugin (i.e., custom target) which runs fast olympic coding after the sublime build is executed successfully. This allows user to have a complex build system (for example: having multiple variants like one variant to fast compile and other to slow compile, that is, in debug mode with various checks) along with the functionality of running fast olympic coding.

I tried various modifications in FastOlympicCoding.sublime-settings file but I couldn't find a way to have multiple build variants for a particluar language. Also, the run_settings have fewer options compared to what a build system offers.

Recently, I came to know that we can have a custom target to execute builds and so I thought to give it a shot. I created the plugin and I think it is working great.

The files can be found here. The setup instruction is written as comments in the file itself.

»
3 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Any shortcut key to delete all the test cases at once?

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

    Ctrl + A then Ctrl + D

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

ctrl + alt + B not working on windows for program execution, is anyone facing this problem :(.

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

this is not working on my mac after installing cppfastolympiccoding please help me anybody

  • »
    »
    2 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    maybe you can change the keymap in the folder where the plugin locates, here are the details :click here

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Does it have the place to change the keymap? As a mac user I'm used to "command" but not "ctrl", can I change the keymap just in this plugin?