Scratch: get editor from data context if possible

This commit is contained in:
Natalia Selezneva
2019-06-19 11:02:53 +03:00
parent a1564fe696
commit 91ac38aaf4
@@ -7,12 +7,18 @@ package org.jetbrains.kotlin.idea.scratch.actions
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider
import org.jetbrains.kotlin.idea.scratch.getScratchPanel
import org.jetbrains.kotlin.idea.scratch.getScratchPanelFromSelectedEditor
import javax.swing.Icon
abstract class ScratchAction(message: String, icon: Icon) : AnAction(message, message, icon) {
override fun update(e: AnActionEvent) {
val scratchPanel = e.project?.let { getScratchPanelFromSelectedEditor(it) }
val scratchPanel = e.getData(CommonDataKeys.EDITOR)
?.let { TextEditorProvider.getInstance().getTextEditor(it).getScratchPanel() }
?: e.project?.let { getScratchPanelFromSelectedEditor(it) }
e.presentation.isVisible = scratchPanel != null
}
}