2

CHelper 4.4

 2 years ago
source link: http://codeforces.com/blog/entry/18974
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
By Egor, history, 7 years ago, In English

I would really appreciate any new ideas of what new features to add

I would also appreciate donations: Yandex.Money, PayPal

Seems like no one tried beta verion — I would really appreciate feedback

4.4.3b3

  • All supported sites are updated
  • New Google Code Jam is now supported
  • You can now inline any file (feature best used for DCJ, which is not here this year, but I hope will return)

4.4.1b2

Support for interactive tasks added. By default you would interact using user input, but you can write your own interractor


4.3.1

Task format is changes to JSON. I would recomment backing up your project before updating


4.2.2


4.2.1

  • New Code Jam site support
  • Fixes

4.1.8

  • All parsers are up to date
  • GCJ and Kattis are now only parsable from Chrome extension

4.1.5

  • Added parsing for AtCoder and CSAcademy
  • Fixed parsing for HackerRank
  • Fixed enums in switches

4.1.3

  • Various fixes for code generation

4.1.2

  • Cojac version update. If you use Cojac for your own configurations update agent parameters as follows:
-Cints -Clongs -Ccasts -Cmath
  • Cleanup
  • Switched to Java 1.8
  • Timus parser fix
  • Kattis parser fix
  • Include all Kattis sites

4.1.1

HackerEarth support


4.0.11

Fixed issue with using method as functional interface


4.0.10

Fix for USACO parsing. Currently on beta channel

7 years ago, # |

What was the key to speedup, if it's not a secret?

  • 7 years ago, # ^ |

    Adding instead of removing

    • 7 years ago, # ^ |

      Thanks.

      • 7 years ago, # ^ |

        Long answer is previously I added everything that was imported from task class and everything in the same package, then everything that is imported from those classes and so on, and then removing unused code which is slow and cyclic references may remain. Now I only add what is actually referenced. Among other things now you can reference classes by fqn instead of importing them. Moreover naming conflict would be handled by constructing other names for classes

7 years ago, # |

Thanks you very much, your plugin is very helpful. :D

7 years ago, # |

7 years ago, # |

Hi Egor, I got this error after update CHelper and run my task. Can you give me an advise?

NoSuchMethodError: com.intellij.psi.PsiType.getTypeByName(Ljava/lang/String;Lcom/intellij/openapi/project/Project;Lcom/intellij/psi/search/GlobalSearchScope;)Lcom/intellij/psi/PsiClassType;: com.intellij.psi.PsiType.getTypeByName(Ljava/lang/String;Lcom/intellij/openapi/project/Project;Lcom/intellij/psi/search/GlobalSearchScope;)Lcom/intellij/psi/PsiClassType;

  • 7 years ago, # ^ |

    What is the version of Intellij Idea that you use?

    • 7 years ago, # ^ |

      I use version 13.1.6.

      • 7 years ago, # ^ |

        Well, I'll tag next build as only compatible with 14+ then. I recommend to update

        • 6 years ago, # ^ |

          I am having same error with version 14+

      • 7 years ago, # ^ |

7 years ago, # |

e-olimp support is broken?

  • 7 years ago, # ^ |

    Yes, they redesigned. I am not sure I am inclined to fix it myself, but if anyone willing I gladly accept PR

    • 7 years ago, # ^ |

      and Kattis also? :(

      • 7 years ago, # ^ |

        Kattis is working for me

        • 7 years ago, # ^ |

          Strange, it's not working for me. I just get the "Nothing to show" message in the problem list. I already hit the "Refresh" button a few times and waited for a few minutes. The other judges work OK. Any hints?

          I have IDEA 14, CHelper 4.0.1, running in Fedora 20 with Oracle JDK, in case it helps.

          • 7 years ago, # ^ |

            Probably fix to suppress certificate warnings is not working on Fedora. You can just use Chrome plugin instead

7 years ago, # |

7 years ago, # |

Hello,

I recently tried to run TopCoder on C-Helper. However, when I try to run in Intellij Idea, it gives me an null pointer exception, and I can't compile it on Topcoder Arena. Is there anything I have to install other than CHelper and Arena? There error I've got in Idea is:

null java.lang.NullPointerException at net.egork.chelper.codegeneration.SolutionGenerator.shouldAddElement(SolutionGenerator.java:338) at net.egork.chelper.codegeneration.SolutionGenerator.processElement(SolutionGenerator.java:314) at net.egork.chelper.codegeneration.SolutionGenerator.createInlinedSource(SolutionGenerator.java:63) at net.egork.chelper.codegeneration.SolutionGenerator$4.run(SolutionGenerator.java:502) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:931) at net.egork.chelper.codegeneration.SolutionGenerator.createSourceFile(SolutionGenerator.java:496) at net.egork.chelper.configurations.TopCoderConfiguration.getState(TopCoderConfiguration.java:63) at com.intellij.execution.runners.ExecutionEnvironment.getState(ExecutionEnvironment.java:201) at com.intellij.execution.runners.BaseProgramRunner.execute(BaseProgramRunner.java:58) at com.intellij.execution.runners.GenericProgramRunner.execute(GenericProgramRunner.java:31) at com.intellij.execution.runners.BaseProgramRunner.execute(BaseProgramRunner.java:53) at com.intellij.execution.runners.GenericProgramRunner.execute(GenericProgramRunner.java:31) at com.intellij.execution.ProgramRunnerUtil.executeConfiguration(ProgramRunnerUtil.java:94) at com.intellij.execution.impl.ExecutionManagerImpl.start(ExecutionManagerImpl.java:396) at com.intellij.execution.impl.ExecutionManagerImpl.access$400(ExecutionManagerImpl.java:61) at com.intellij.execution.impl.ExecutionManagerImpl$5.run(ExecutionManagerImpl.java:384) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:351) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:332) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:702) at java.awt.EventQueue$3.run(EventQueue.java:696) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:719) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:734) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:569) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

I'm really sorry for writing here. It seems like not a right location to post. Any help is appreciated. Thank you.

  • 7 years ago, # ^ |

    Can you zip your project with task in question and send to egor at egork dot net?

7 years ago, # |

7 years ago, # |

7 years ago, # |

Can you change archive directory's structure to something simple like this:

Topcoder

  • SRM 660
  • SRM 661

Codeforce

  • Round 300
  • Round 301
  • 7 years ago, # ^ |

    Probably I'll add customizeable archive structure in some future version

7 years ago, # |

7 years ago, # |

7 years ago, # |

7 years ago, # |

6 years ago, # |

6 years ago, # |

6 years ago, # |

6 years ago, # |

6 years ago, # |

Where can I download v4 ? I can only find v3 here ?

  • 6 years ago, # ^ |

    You can install it through Jetbrains plugin repository

    • 6 years ago, # ^ |

      Rev. 2  

      +10

      Can you please update CHelper to 4.1.5 on GitHub? I am using a modified version of CHelper (changed the codegen template slightly), that's why I need the source code for update.

      • 6 years ago, # ^ |

6 years ago, # |

Two issues(version 4.1.5): (1) Codechef not listed in Parse Contest dialog. (2) Problem parsing broken for codechef. Getting "Connection problems or format change".

I was able to fix (1) by adding codechef parser to Parser.PARSERS. Please help for (2). Trying codechef november long challenge 2016.

6 years ago, # |

Hi, Egor, When the Test Type is 'Number of tests known', Can I use separate threads to run every single test? Thanks for the amazing plugin.

  • 6 years ago, # ^ |

    No. You can use this template though

    • 6 years ago, # ^ |

      It works! Thanks Egor.

6 years ago, # |

codechef is not showing up in parse contest

  • 6 years ago, # ^ |

    Codechef can be parsed through chrome extension

    • 6 years ago, # ^ |

      but some problems are still unable to parse in competitions, and problems in domains can't be parsed through plugin

      • 6 years ago, # ^ |

        Because codechef has no fixed format for problem statements. So I use set of heurystics, which not laways work

        • 6 years ago, # ^ |

          no problem sir, still a helpful plugin

5 years ago, # |

Hi! Can I manually create Topcoder task by using CHelper? Thanks :D

  • 5 years ago, # ^ |

    Unfortunately no

5 years ago, # |

5 years ago, # |

Egor — Unfortunately, I've had some trouble using the parser. You can see my directory and my settings here:

When I attempt to parse a contest, I'm met with the "Nothing to show" screen found here:

When I try to parse an individual problem using the Chrome extension, I see the circle animation on Chrome, but nothing happens on IDEA. (IDEA is open and the project is loaded.)

Do you have any idea what could cause this issue? Many thanks for any response.

  • 5 years ago, # ^ |

    Well, not being aboe to parse from idea seems like idea do not have access to internet. Not being able to parse with chrome is likely something to do with idea not able to connect on localhost port. Do idea runs in some kind of sandbox?

    • 5 years ago, # ^ |

      That sounds like a likely cause of the issue. IDEA is running on a basic Windows installation. I've tweaked the firewall a bit but haven't had any luck there. Any ideas about what could be causing the issue? Is it possible that the wi-fi configuration is at fault?

      Thanks for the assistance!

    • 5 years ago, # ^ |

      Just posting a quick reminder since it's been a couple days since last response. No worries if we can't figure it out, but any thoughts you could provide would be much appreciated. I tested it on a different computer without the same firewall software, so I have to imagine that it's somehow related to the wi-fi.

      Thanks for any assistance!

      • 5 years ago, # ^ |

        I really have no idea what's wrong

        • 5 years ago, # ^ |

          Understood, I'll see what I can do. I'll post here if I find a solution in the hope that any others with the same problem can benefit.

        • 5 years ago, # ^ |

          For anyone else with the same issue, I managed to fix it by updating IntelliJ to the latest version. I searched around and found some errors related to an IntelliJ TransactionGuard class, and in case the class was broken, I updated IntelliJ, after which the program worked.

          Many thanks for your assistance and for creating the plugin.

5 years ago, # |

I see there's an option to parse entire contest in Idea plugin, but the Chrome extension seems to activate only on a single problem page. Am I missing something or the extension doesn't support contest parsing? That looks weird.

  • 5 years ago, # ^ |

    Chrome parser only works with single page so it just can't parse whole contest at once. One exception is Google Code Jam because all problems presented in what is basically single page

5 years ago, # |

Why when I use global array: "int in[] = new int[1000000 + 1];"
CHelper changes it to: "int in = new int[1000000 + 1];" ?

  • 5 years ago, # ^ |

    try using int[] in = new int[...]

  • 5 years ago, # ^ |

    Because this notation is present in Java only to faciliate back compatibility with c and it would be pain to make it work

5 years ago, # |

One more question — Is it possible to use stress testing with CHelper (writing an algorithm to automatically generate small test cases and their correct answers and printing the first one for which the main algorithm fails)? Also, is there any way to modify the template for the output class? I've checked through all of the templates in the project and haven't been able to find it. (It's given me a few issues with some online judges, most notably the USACO training pages.)

  • 5 years ago, # ^ |

    It is possible to stress test. If you look in task properties there is "Test class" if you push Advanced

    It is possible to use whatever output class you want as long as it has close method. You just need to update preferences

5 years ago, # |

I'm trying to use your parsers, and class Task raises some questions. It contains all necessary information about the problem except time and memory limit, while they are usually very easily parsed. On the other hand, it contains your plugin-specific data like mainClass, truncate, includeLocale etc.

Did you think about extracting the parsers into a separate library with more general interface, independent of the plugin implementation?

  • 5 years ago, # ^ |

    I thought about it and decided I do not have time to do it right for now.

    Memory limit is actually parsed and put into VM arguments

5 years ago, # |

Tasks from CSAcademy Rounds are not being parsed. I think their new update is causing problem with the C-Helper Chrome Extension.

  • 5 years ago, # ^ |

    I'm afraid that'll have to wait until after World Finals (unless someone want to propose a pull request of course)

    • 5 years ago, # ^ |

      Sir, can you update the CHelper for CSAcademy now? Tasks are not parsing at that site due to their upgradation of website.

5 years ago, # |

Hi guys. I have no problem running my code on Google Code Jam Pretest. When it time to download the input file from Google, where should I store the input file. Does the script support generating the output file to upload to Google server, if yes , can someone advice me how? Thanks in advance for the great script.

  • 5 years ago, # ^ |

    You just put it in "work directory" (as defined by run configuration, usually project root) and run Main class

    • 5 years ago, # ^ |

      Hi Egor. Thanks for the help and fast reply. The competitive coding world beef plp like u.

5 years ago, # |

Hey Egor, now that this post is back to business, is it possible to have a feature where we can submit directly from the IntelliJ. That is we dont have to go back to the problem page, browse for our solution and get the result. The plugin would do all of this for me and return me the status of the solution. Even if you could do this for codeforces (because nowadays I just participate here), that would be great :)

  • 5 years ago, # ^ |

    I want to introduce this functionality sometime, but I need API to do this as I would not want to hack my way through

4 years ago, # |

Unable to parse task from AtCoder :( Anyone here facing the same issue?

Can anybody tell me how to fix this issue?

  • 4 years ago, # ^ |

    I hooe to deploy fix next week

4 years ago, # |

Tests were not parsing in today's contest. Can you please fix it?

4 years ago, # |

Chelper parser is not working. Every time I click on the plugin, nothing happens.

4 years ago, # |

  • 4 years ago, # ^ |

    On clicking + button on chrome, screen for adding the task pop up. But after pressing ok, task is not being added in IntelliJ(Facing issue while parsing task on Codeforces and CSAcademy). Please fix it.

    • 4 years ago, # ^ |

      Well, I do not experience this issue, so I need more to try to fix it. Can you record short video with this issue?

      • 4 years ago, # ^ |

        Can you suggest me how to record using screen recorder? I haven't used one till now.

        • 4 years ago, # ^ |

          You can use OBS Studio

          • 4 years ago, # ^ |

            I have recorded it. You can watch it here.

            • 4 years ago, # ^ |

              I'll look into it tomorrow

            • 4 years ago, # ^ |

              Thank you for reporting, I located the issue and new version should be available shortly

4 years ago, # |

4 years ago, # |

4 years ago, # |

Thank you for the new Code Jam parser! Are you planning to support parsing of the whole contest at once?

  • 4 years ago, # ^ |

    Previously I parsed everything at once because web page actually had all the problems. New web page only has single problem statement

  • 4 years ago, # ^ |

    It is not a link, it is repository you need to add to idea plugin repositories in order to use beta versions of CHelper

4 years ago, # |

Can you add parse task for old GCJ system too?

As Google Kickstart uses the same interface as of old GCJ system. Due to plugin update, I am unable to parse task in Kickstart :(

  • 4 years ago, # ^ |

    I had not removed support, you should still be able to parse from old system with Chrome extension

    • 4 years ago, # ^ |

      Sorry for bothering you. Due to the slow internet connection, page was not fully loaded. So, add task button was not showing up.

      Now it is showing perfectly. Thank You.

4 years ago, # |

4 years ago, # |

4 years ago, # |

4 years ago, # |

What's the limitation of CHelper's inlining abilities. Can pull data structures from say, google common collections/gauva?

  • 4 years ago, # ^ |

    Only lomitation is source size limit really

    • 4 years ago, # ^ |

      I couldn't get it to work with gauva. Anything special I need to do? It doesn't inline all the classes needed to MultiHashMap work.

      • 4 years ago, # ^ |

        I'll look it up tomorrow

        • 4 years ago, # ^ |

          Any luck?

          • 4 years ago, # ^ |

            was busy, sorry

          • 4 years ago, # ^ |

            Seems like annotations are the cause of problem. Next beta version removes all annotations just to be on the safe side

            But multiset add about 800 lines and 30 kilobytes of code, so use resposibly

            • 4 years ago, # ^ |

              Thanks!

4 years ago, # |

4 years ago, # |

Test cases were not parsed in contest 1028 and 1029 but they are if I pick one task from the problem set (in particular task 1029F). I use IntelliJ IDEA 2018.2.1 and CHelper 4.4.2 on Ubuntu 16.04.

Is it a known issue? Any workaround/fix?

3 years ago, # |

Hey Egor, have you thought of updating plugin after recent changes in AtCoder platform. It will be very helpful. As now task are not being parsed after UI improvements.

  • 3 years ago, # ^ |

    I am a bit occupied with work/other projects atm. You can try Competitive Companion Chrome extension for parsing tasks

    • 3 years ago, # ^ |

      Hey, so there is one more problem in creating test class for the task. Can you please fix the issue? Following error lines are being shown.

      java.lang.Throwable: Write-unsafe context! Model changes are allowed from write-safe contexts only. Please ensure you're using invokeLater/invokeAndWait with a correct modality state (not "any"). See TransactionGuard documentation for details.
        current modality=ModalityState:{[com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog[dialog8,0,66,1161x676,invalid,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=Run/Debug Configurations,defaultCloseOperation=DO_NOTHING_ON_CLOSE,rootPane=com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog$DialogRootPane[,0,22,1161x654,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=449,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]]}
        known modalities:
          ModalityState:{[com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog[dialog5,0,66,1161x676,invalid,hidden,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=Run/Debug Configurations,defaultCloseOperation=DO_NOTHING_ON_CLOSE,rootPane=,rootPaneCheckingEnabled=true]]}, writingAllowed=true;
          ModalityState:{}, writingAllowed=true;
          ModalityState.NON_MODAL, writingAllowed=true;
          ModalityState:{[com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog[dialog8,0,66,1161x676,invalid,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=Run/Debug Configurations,defaultCloseOperation=DO_NOTHING_ON_CLOSE,rootPane=com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog$DialogRootPane[,0,22,1161x654,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=449,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]]}, writingAllowed=true
      	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:134)
      	at com.intellij.openapi.application.TransactionGuardImpl.assertWriteActionAllowed(TransactionGuardImpl.java:232)
      	at com.intellij.openapi.editor.impl.DocumentImpl.assertWriteAccess(DocumentImpl.java:702)
      	at com.intellij.openapi.editor.impl.DocumentImpl.replaceString(DocumentImpl.java:631)
      	at com.intellij.openapi.editor.impl.DocumentImpl.replaceText(DocumentImpl.java:543)
      	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$2.run(FileDocumentManagerImpl.java:653)
      	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1057)
      	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$reloadFromDisk$6(FileDocumentManagerImpl.java:639)
      	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:220)
      	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:178)
      	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:168)
      	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.reloadFromDisk(FileDocumentManagerImpl.java:639)
      	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.contentsChanged(FileDocumentManagerImpl.java:621)
      	at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at com.intellij.util.EventDispatcher.dispatchVoidMethod(EventDispatcher.java:133)
      	at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:25)
      	at com.intellij.util.EventDispatcher$3.invoke(EventDispatcher.java:96)
      	at com.sun.proxy.$Proxy26.contentsChanged(Unknown Source)
      	at com.intellij.openapi.vfs.impl.BulkVirtualFileListenerAdapter.fireAfter(BulkVirtualFileListenerAdapter.java:65)
      	at com.intellij.openapi.vfs.impl.BulkVirtualFileListenerAdapter.after(BulkVirtualFileListenerAdapter.java:56)
      	at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117)
      	at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:397)
      	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:358)
      	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:347)
      	at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:324)
      	at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:29)
      	at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:196)
      	at com.sun.proxy.$Proxy24.after(Unknown Source)
      	at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl$2.close(PersistentFSImpl.java:640)
      	at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1036)
      	at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3633)
      	at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:2964)
      	at net.egork.chelper.util.FileUtilities$3.run(FileUtilities.java:255)
      	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1057)
      	at net.egork.chelper.util.FileUtilities.saveConfiguration(FileUtilities.java:249)
      	at net.egork.chelper.util.FileUtilities.saveConfiguration(FileUtilities.java:245)
      	at net.egork.chelper.configurations.TaskConfiguration.saveConfiguration(TaskConfiguration.java:128)
      	at net.egork.chelper.configurations.TaskConfiguration.setConfiguration(TaskConfiguration.java:123)
      	at net.egork.chelper.ui.TaskConfigurationEditor.applyEditorTo(TaskConfigurationEditor.java:40)
      	at net.egork.chelper.ui.TaskConfigurationEditor.applyEditorTo(TaskConfigurationEditor.java:14)
      	at com.intellij.openapi.options.SettingsEditor.applyTo(SettingsEditor.java:89)
      	at com.intellij.execution.impl.ConfigurationSettingsEditor$ConfigToSettingsWrapper.applyEditorTo(ConfigurationSettingsEditor.java:297)
      	at com.intellij.execution.impl.ConfigurationSettingsEditor$ConfigToSettingsWrapper.applyEditorTo(ConfigurationSettingsEditor.java:276)
      	at com.intellij.openapi.options.SettingsEditor.applyTo(SettingsEditor.java:89)
      	at com.intellij.openapi.options.CompositeSettingsEditor.applyEditorTo(CompositeSettingsEditor.java:64)
      	at com.intellij.openapi.options.SettingsEditor.applyTo(SettingsEditor.java:89)
      	at com.intellij.execution.impl.ConfigurationSettingsEditor.getSnapshot(ConfigurationSettingsEditor.java:212)
      	at com.intellij.execution.impl.ConfigurationSettingsEditorWrapper.getSnapshot(ConfigurationSettingsEditorWrapper.java:111)
      	at com.intellij.execution.impl.ConfigurationSettingsEditorWrapper.getSnapshot(ConfigurationSettingsEditorWrapper.java:25)
      	at com.intellij.execution.impl.SingleConfigurationConfigurable.createSnapshot(SingleConfigurationConfigurable.java:291)
      	at com.intellij.execution.impl.SingleConfigurationConfigurable.getValidationResult(SingleConfigurationConfigurable.java:172)
      	at com.intellij.execution.impl.SingleConfigurationConfigurable.access$1400(SingleConfigurationConfigurable.java:39)
      	at com.intellij.execution.impl.SingleConfigurationConfigurable$MyValidatableComponent.getValidationResult(SingleConfigurationConfigurable.java:395)
      	at com.intellij.execution.impl.SingleConfigurationConfigurable$MyValidatableComponent.updateWarning(SingleConfigurationConfigurable.java:399)
      	at com.intellij.execution.impl.SingleConfigurationConfigurable$MyValidatableComponent.<init>(SingleConfigurationConfigurable.java:345)
      	at com.intellij.execution.impl.SingleConfigurationConfigurable.reset(SingleConfigurationConfigurable.java:133)
      	at com.intellij.execution.impl.SingleConfigurationConfigurable.editSettings(SingleConfigurationConfigurable.java:94)
      	at com.intellij.execution.impl.RunConfigurable.getSafeUserObject(RunConfigurable.kt:352)
      	at com.intellij.execution.impl.RunConfigurable.access$getSafeUserObject(RunConfigurable.kt:73)
      	at com.intellij.execution.impl.RunConfigurable$initTree$3.valueChanged(RunConfigurable.kt:239)
      	at javax.swing.JTree.fireValueChanged(JTree.java:2927)
      	at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3391)
      	at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:635)
      	at com.intellij.ui.treeStructure.Tree$MySelectionModel.fireValueChanged(Tree.java:650)
      	at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1093)
      	at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:294)
      	at javax.swing.JTree.setSelectionPaths(JTree.java:1647)
      	at javax.swing.JTree.setSelectionRows(JTree.java:1729)
      	at javax.swing.JTree.setSelectionRow(JTree.java:1704)
      	at com.intellij.util.ui.tree.TreeUtil.lambda$showAndSelect$10(TreeUtil.java:565)
      	at com.intellij.util.ui.tree.TreeUtil.showAndSelect(TreeUtil.java:600)
      	at com.intellij.util.ui.tree.TreeUtil.showRowCentered(TreeUtil.java:510)
      	at com.intellij.util.ui.tree.TreeUtil.showRowCentered(TreeUtil.java:501)
      	at com.intellij.util.ui.tree.TreeUtil.showRowCentred(TreeUtil.java:496)
      	at com.intellij.util.ui.tree.TreeUtil.selectPath(TreeUtil.java:427)
      	at com.intellij.util.ui.tree.TreeUtil.selectInTree(TreeUtil.java:909)
      	at com.intellij.util.ui.tree.TreeUtil.selectInTree(TreeUtil.java:897)
      	at com.intellij.execution.impl.RunConfigurable.selectConfiguration(RunConfigurable.kt:307)
      	at com.intellij.execution.impl.RunConfigurable.access$selectConfiguration(RunConfigurable.kt:73)
      	at com.intellij.execution.impl.RunConfigurable$selectConfigurableOnShow$1.run(RunConfigurable.kt:283)
      	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
      	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
      	at java.awt.EventQueue.access$500(EventQueue.java:98)
      	at java.awt.EventQueue$3.run(EventQueue.java:715)
      	at java.awt.EventQueue$3.run(EventQueue.java:709)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
      	at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
      	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:719)
      	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:668)
      	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
      	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
      	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
      	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
      	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
      	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
      	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
      	at java.awt.Dialog.show(Dialog.java:1077)
      	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:698)
      	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:430)
      	at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1681)
      	at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1630)
      	at com.intellij.execution.actions.EditRunConfigurationsAction.actionPerformed(EditRunConfigurationsAction.java:48)
      	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:258)
      	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:275)
      	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:249)
      	at com.intellij.ui.popup.ActionPopupStep.performAction(ActionPopupStep.java:200)
      	at com.intellij.ui.popup.ActionPopupStep.performAction(ActionPopupStep.java:190)
      	at com.intellij.ui.popup.ActionPopupStep.lambda$onChosen$2(ActionPopupStep.java:184)
      	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195)
      	at com.intellij.ui.popup.AbstractPopup.lambda$dispose$12(AbstractPopup.java:1417)
      	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:3049)
      	at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:172)
      	at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:124)
      	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:179)
      	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:58)
      	at com.intellij.ui.popup.AbstractPopup.dispose(AbstractPopup.java:1413)
      	at com.intellij.ui.popup.WizardPopup.dispose(WizardPopup.java:160)
      	at com.intellij.ui.popup.list.ListPopupImpl.dispose(ListPopupImpl.java:308)
      	at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.dispose(PopupFactoryImpl.java:279)
      	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:48)
      	at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:44)
      	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:138)
      	at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:107)
      	at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:193)
      	at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:107)
      	at com.intellij.openapi.util.objectTree.ObjectTree.executeAll(ObjectTree.java:157)
      	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:129)
      	at com.intellij.openapi.util.Disposer.dispose(Disposer.java:125)
      	at com.intellij.ui.popup.WizardPopup.disposeAllParents(WizardPopup.java:263)
      	at com.intellij.ui.popup.list.ListPopupImpl.handleNextStep(ListPopupImpl.java:444)
      	at com.intellij.ui.popup.list.ListPopupImpl._handleSelect(ListPopupImpl.java:397)
      	at com.intellij.ui.popup.list.ListPopupImpl.handleSelect(ListPopupImpl.java:343)
      	at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.handleSelect(PopupFactoryImpl.java:299)
      	at com.intellij.ui.popup.list.ListPopupImpl$MyMouseListener.mouseReleased(ListPopupImpl.java:503)
      	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
      	at java.awt.Component.processMouseEvent(Component.java:6548)
      	at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
      	at com.intellij.ui.popup.list.ListPopupImpl$MyList.processMouseEvent(ListPopupImpl.java:557)
      	at java.awt.Component.processEvent(Component.java:6313)
      	at java.awt.Container.processEvent(Container.java:2237)
      	at java.awt.Component.dispatchEventImpl(Component.java:4903)
      	at java.awt.Container.dispatchEventImpl(Container.java:2295)
      	at java.awt.Component.dispatchEvent(Component.java:4725)
      	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
      	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
      	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
      	at java.awt.Container.dispatchEventImpl(Container.java:2281)
      	at java.awt.Window.dispatchEventImpl(Window.java:2746)
      	at java.awt.Component.dispatchEvent(Component.java:4725)
      	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
      	at java.awt.EventQueue.access$500(EventQueue.java:98)
      	at java.awt.EventQueue$3.run(EventQueue.java:715)
      	at java.awt.EventQueue$3.run(EventQueue.java:709)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
      	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
      	at java.awt.EventQueue$4.run(EventQueue.java:737)
      	at java.awt.EventQueue$4.run(EventQueue.java:735)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
      	at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
      	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:719)
      	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:664)
      	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
      	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
      	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
      	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
      	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
      	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
      	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

3 years ago, # |

Hi . I installed Idea Intellij 2018.3.5 version and added Chelper plugin to it from store plugins and configured the default directory. Restarted the ide and now when i parse a task test cases are not automatically added. Can someone please help me. Below are the urls to view screenshots of my project and configuration

Settings Image

Test cases not added

Project Config

Please help. I tried a lot and i am stuck now . thanks

3 years ago, # |

3 years ago, # |

3 years ago, # |

Are you going to update the source code on github with new parsers?

  • 3 years ago, # ^ |

3 years ago, # |

Hi Egor, after i create task with 4.4.3b3, I could not see the task.json. And I see this error not long after i created task:

java.lang.Throwable: AWT events are not allowed inside write action: sun.awt.PeerEvent[INVOCATION_DEFAULT,runnable=sun.lwawt.LWCursorManager$1@241e3273,notifier=null,catchExceptions=false,when=1556816838691] on dialog2 at com.intellij.openapi.diagnostic.Logger.error(Logger.java:134) at com.intellij.openapi.application.impl.NoSwingUnderWriteAction.lambda$watchForEvents$0(NoSwingUnderWriteAction.java:36) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:374) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109) at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235) at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233) at java.awt.Dialog.show(Dialog.java:1077) at java.awt.Component.show(Component.java:1685) at java.awt.Component.setVisible(Component.java:1637) at java.awt.Window.setVisible(Window.java:1014) at java.awt.Dialog.setVisible(Dialog.java:998) at net.egork.chelper.ui.CreateTaskDialog.setVisible(CreateTaskDialog.java:109) at net.egork.chelper.ui.CreateTaskDialog.showDialog(CreateTaskDialog.java:91) at net.egork.chelper.actions.NewTaskAction.createTask(NewTaskAction.java:38) at net.egork.chelper.actions.NewTaskDefaultAction.createTaskInDefaultDirectory(NewTaskDefaultAction.java:45) at net.egork.chelper.ChromeParser$1$1.run(ChromeParser.java:118) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1057) at net.egork.chelper.util.ExecuteUtils$2.run(ExecuteUtils.java:38) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315) at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:156) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762) at java.awt.EventQueue.access$500(EventQueue.java:98) at java.awt.EventQueue$3.run(EventQueue.java:715) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:732) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:719) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:668) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

  • 3 years ago, # ^ |

    What’s your idea version?

    • 3 years ago, # ^ |

      2018.3.2 CE

3 years ago, # |

How this will work on problem have multiple correct solutions?

2 years ago, # |

Hi I installed the plugin through Intellij marketplace. But i'm unable to build any task. Error: Error: Could not find or load main class net.egork.chelper.tester.NewTester Caused by: java.lang.ClassNotFoundException: net.egork.chelper.tester.NewTester

Did anyone else see it? Is there any setup instructions that I missed?

Also, when trying to run topcoder arena by clicking on the topcoder icon in the plugin toolbar, i get an error 'javaws' file not found. Have tried several things with no luck.

Using Intellij Community 2020.1

  • 2 years ago, # ^ |

    Rev. 2  

    0

    Yes. I am getting the same error (Error: Could not find or load main class net.egork.chelper.tester.NewTeste). Could Egor please look into this?

    EDIT: The issue has been fixed. See here for a complete fix.

2 years ago, # |

When I don't use a task and just let it sit there, the configuration for the task is set to build the project multiple times before launching. This clearly is unnecessary and slows running the task by a lot (due to the excessive build time). Is there any fix for this (without having to archive the task)?

19 months ago, # |

I want to include an external library pre written by me in my solution, how to to that.

19 months ago, # |

Rev. 4  

0

Hi Egor,

I have made the chelper IDE configurations gradle-based, so that I could easily change laptops and wouldn't need too much Intellij configuration of the plugin (other than installing the plugin). My build.gradle dependencies sections looks like this:

dependencies {
    // CHelper dependencies
    implementation files('libs/chelper.jar')
    implementation files('libs/cojac.jar')
    implementation 'commons-lang:commons-lang:2.6'
    implementation 'org.json:json:20180130'
    implementation 'com.fasterxml.jackson.core:jackson-core:2.7.4'
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.7.0'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.7.4'

    // other stuff
}

Two of the dependencies are not versioned and I guess don't have Maven coordinates — (cojac.jar and chelper.jar).

While running the Task, I get a bunch of errors (seemingly, related to cojac.jar) and are too much and annoying. In the end, the tests are run fine, however those errors take up all the output, sometimes hard to find the real, useful outputs.

ERRORS
  • 12 hours ago, # ^ |

    Same error here...

    • 12 hours ago, # ^ |

      I don't quite remember how I solved it. But try turning off Fail on integer overflow.. setting.

      • 12 hours ago, # ^ |

        Rev. 2  

        -6

        Okkies, will update...

        EDIT: Didn't work

      • 79 minutes ago, # ^ |

        How will I then check the respective failure on integer overflow then??

12 months ago, # |

Hi Egor

I really like Chelper and use in contests. Thank you for such a nice plugin.

I have one question.

Are there plans to add kotlin to Chelper ?

It would be to have it. I tried to build project but I couldn't find exact dependencies.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK