OpenASR / idiolect

🎙️ Handsfree Audio Development Interface
https://arxiv.org/pdf/2305.03089.pdf
Apache License 2.0
93 stars 10 forks source link

IDEService$invokeAction$1 cannot be cast to com.intellij.util.Consumer #33

Closed nalbion closed 7 years ago

nalbion commented 7 years ago

I'm getting another error:

Exception in thread "ASR Thread" java.lang.ClassCastException: com.jetbrains.idear.ide.IDEService$invokeAction$1 cannot be cast to com.intellij.util.Consumer
    at com.jetbrains.idear.ide.IDEService.invokeAction(IDEService.kt:14)
    at com.jetbrains.idear.ide.IDEService.invokeAction$default(IDEService.kt:13)
    at com.jetbrains.idear.asr.ASRControlLoop.run(ASRControlLoop.kt:40)
    at java.lang.Thread.run(Thread.java:748)

invokeAction looks like:

fun invokeAction(action: String, actionFactory: (DataContext) -> AnActionEvent = defaultActionFactory) =
            DataManager.getInstance().dataContextFromFocus.doWhenDone({ dataContext: DataContext ->
                EventQueue.invokeLater {
                    ActionManager.getInstance().getAction(action).actionPerformed(actionFactory.invoke(dataContext))
                } } as Consumer<DataContext>)

This seems to fix it:

fun invokeAction(action: String, actionFactory: (DataContext) -> AnActionEvent = defaultActionFactory) =
            DataManager.getInstance().dataContextFromFocus.doWhenDone(Consumer<DataContext> { dataContext: DataContext ->
                EventQueue.invokeLater {
                    ActionManager.getInstance().getAction(action).actionPerformed(actionFactory.invoke(dataContext))
                } })