Open karoliineh opened 2 years ago
Creating the plugin "technically works".
But it is quite broken:
java.lang.NullPointerException: Cannot invoke "com.intellij.openapi.ui.popup.Balloon.dispose()" because the return value of "magpiebridge.intellij.client.LanguageClient.access$400(magpiebridge.intellij.client.LanguageClient)" is null at magpiebridge.intellij.client.LanguageClient$2$1.onClosed(LanguageClient.java:398) at com.intellij.ui.BalloonImpl.lambda$hideAndDispose$4(BalloonImpl.java:1073) at com.intellij.ui.BalloonImpl$9.dispose(BalloonImpl.java:943) at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:126) at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:158) at com.intellij.openapi.util.Disposer.dispose(Disposer.java:217) at com.intellij.openapi.util.Disposer.dispose(Disposer.java:205) at com.intellij.ui.BalloonImpl$9.paintCycleEnd(BalloonImpl.java:935) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:918) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:766) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:450) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:449) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:624) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:447) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:493) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Although I will not dive into the causes of these issues and try and fix them asap, I will leave this issue open, so I will not forget to fix them eventually.
Meanwhile, if anyone wants to try it (but mostly for documentation to myself, so I would not have to remember it all), the current steps for creating and running the plugin are:
goblint
in GobPie class GoblintServer.java
method constructGoblintRunCommand()
with absolute path.jar
as usual.exp.cpp-path
to goblint.json
, because it is unable to locate the right cpp itself when ran from IntelliJ.Jar file path
to the generated GobPie .jar
Working directory
to the project (to-be-analysed) root.
I think while this is nice to have, I don't think we need to focus on this too much for now.