Kotlin migration: extract data context into a function, check it on null
The extraction itself is needed due to different behaviour of related IDEA functions in different platforms. Check on null is needed because `createFromAnAction` last argument cannot be null, otherwise we will get an exception. Partial fix of KT-26399
This commit is contained in:
committed by
Ilya Gorbunov
parent
319c16c885
commit
2e4f46045e
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.configuration
|
package org.jetbrains.kotlin.idea.configuration
|
||||||
|
|
||||||
import com.intellij.ide.DataManager
|
|
||||||
import com.intellij.openapi.actionSystem.ActionManager
|
import com.intellij.openapi.actionSystem.ActionManager
|
||||||
import com.intellij.openapi.actionSystem.ActionPlaces
|
import com.intellij.openapi.actionSystem.ActionPlaces
|
||||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||||
@@ -94,10 +93,12 @@ class KotlinMigrationProjectComponent(val project: Project) {
|
|||||||
if (migrationNotificationDialog.isOK) {
|
if (migrationNotificationDialog.isOK) {
|
||||||
val action = ActionManager.getInstance().getAction(CodeMigrationAction.ACTION_ID)
|
val action = ActionManager.getInstance().getAction(CodeMigrationAction.ACTION_ID)
|
||||||
|
|
||||||
val dataContext = DataManager.getInstance().dataContextFromFocus.result
|
val dataContext = getDataContextFromDialog(migrationNotificationDialog)
|
||||||
val actionEvent = AnActionEvent.createFromAnAction(action, null, ActionPlaces.ACTION_SEARCH, dataContext)
|
if (dataContext != null) {
|
||||||
|
val actionEvent = AnActionEvent.createFromAnAction(action, null, ActionPlaces.ACTION_SEARCH, dataContext)
|
||||||
|
|
||||||
action.actionPerformed(actionEvent)
|
action.actionPerformed(actionEvent)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.configuration
|
||||||
|
|
||||||
|
import com.intellij.ide.DataManager
|
||||||
|
import com.intellij.openapi.actionSystem.DataContext
|
||||||
|
import com.intellij.openapi.ui.DialogWrapper
|
||||||
|
|
||||||
|
@Suppress("UNUSED_PARAMETER")
|
||||||
|
internal fun getDataContextFromDialog(wrapper: DialogWrapper): DataContext? = DataManager.getInstance().dataContextFromFocus.result
|
||||||
Reference in New Issue
Block a user