idea-which-key
idea-which-key copied to clipboard
Which-Key fails to init with IdeaVim-EAP (1.11.0-eap.1)
Hello!
Since GoLand 2022.2 (and probably other IDEs) there's been an annoying exception in IdeaVIM (YouTrack VIM-2693).
This issue was fixed in IdeaVim 1.11.0-eap.1. However, using that version of IdeaVim, Which-Key fails to even load. Not sure what's going on, please see attached stacktrace.txt.
This is most probably a compatibility issue regarding the version. The 1.11.0-eap.1
has a minimum requirement of 2022.2.+
and I already got some warnings about using deprecated and soon to remove code but haven't found the time to tackle that so far :see_no_evil:
It is only an assumption but I guess you have to stay on a former version if you want/need to use Which-Key. I will see if I can investigate and maybe solve this in the upcoming days
Yeah that sounds likely. I can try to have a look as well if I find the time.
Yeah, staying on the "old" IdeaVim for now, with silenced exceptions. My goldfish brain really appreciates having a which key and Intellimacs + Which-Key is the closest I've come to replicating my nvim environment in a IDE :)
Most of the issues seem easily resolvable, but there is one change in the IdeaVIM plugin which would affect Which-Key and would make it impossible to get custom descriptions for any entry. I have opened an issue with Jetbrains and hope that this can either be fixed or that there is another solution for this problem, but this currently blocks any further work and testing :frowning_face:
See the open issue here
I don't want to hijack your ticket, but I think it's related. Just updated my IdeaVim to 1.11.1 and it also stopped working for me:
java.lang.ExceptionInInitializerError at eu.theblob42.idea.whichkey.WhichKeyTypeActionHandler.beforeExecute(WhichKeyTypeActionHandler.kt:39) at com.intellij.openapi.editor.actionSystem.TypedAction.beforeActionPerformed(TypedAction.java:193) at com.intellij.openapi.editor.impl.EditorImpl.processKeyTypedImmediately(EditorImpl.java:1321) at com.intellij.openapi.editor.impl.EditorImpl.processKeyTyped(EditorImpl.java:1306) at com.intellij.openapi.editor.impl.EditorImpl.processKeyTyped(EditorImpl.java:3475) at com.intellij.openapi.editor.impl.EditorImpl$7.keyTyped(EditorImpl.java:1145) at java.desktop/java.awt.AWTEventMulticaster.keyTyped(AWTEventMulticaster.java:247) at java.desktop/java.awt.Component.processKeyEvent(Component.java:6603) at java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2899) at java.desktop/java.awt.Component.processEvent(Component.java:6425) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854) at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1964) at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:886) at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1166) at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1023) at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:849) at com.intellij.ide.IdeKeyboardFocusManager.lambda$dispatchEvent$0(IdeKeyboardFocusManager.java:48) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604) at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:48) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4903) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781) 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.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752) 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:751) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898) at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.java:807) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:740) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:791) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113) at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:881) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484) 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) Caused by: java.lang.ClassCastException: class com.maddyhome.idea.vim.newapi.IjVimActionsInitiator cannot be cast to class com.maddyhome.idea.vim.handler.ActionBeanClass (com.maddyhome.idea.vim.newapi.IjVimActionsInitiator and com.maddyhome.idea.vim.handler.ActionBeanClass are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @79388e9e) at eu.theblob42.idea.whichkey.config.MappingConfig.extractVimActions(MappingConfig.kt:62) at eu.theblob42.idea.whichkey.config.MappingConfig.extractVimActions(MappingConfig.kt:57) at eu.theblob42.idea.whichkey.config.MappingConfig.<clinit>(MappingConfig.kt:39) ... 55 more
Yes this is for sure related to this issue here, parts of that stacktrace look oddly familiar to me :smile:
With version 1.11.1 of the IdeaVIM plugin Jetbrains implemented the missing feature for me to make WhichKey work again. I am currently in the process of adapting and local testing. Once that is done I will push to a dedicated branch and would ask for some external testing :pray: if everything works out fine I can finally prepare the release
I pushed my latest changes to the develop
branch. I will do some testing over the weekend but I would highly appreciate it if you could install the plugin manually and check if this also works for you (I can only test Intellij Community) before releasing the plugin via the marketplace
Wow, thanks for the quick work!
I built it manually and installed it on GoLand 2022.2.1 with IdeaVim 1.11.1 - everything working so far after few minutes of normal usage. Will let you know if I see any errors during the weekend.
Thank you for the quick work!
So far it looks good on my own setup as well :slightly_smiling_face: Still highly appreciate testing on other Jetbrains products, but never the less I would plan the release for tomorrow
Please take note that Jetbrains is evaluating every release and they need to confirm it before it goes live in the marketplace, so it might take till mid next week before you can download the newest version from there.
New version is released here on Github and ready for review on the Jetbrains marketplace. You can already download the jar and manually install if you can not wait :wink:
Looks good on my machine as well. Great job!
The new version is now also available in the Jetbrains marketplace :slightly_smiling_face: