Scratch: get editor from data context if possible
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user