mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
DBE-23882 Explicitly target inner editor in grid for structure view
GitOrigin-RevId: 9bc998f1f5a79cbdeee7297dba2280baf6f8bb0d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
be2b0bf8fd
commit
de04460a07
@@ -5,6 +5,7 @@ import com.intellij.database.datagrid.GridUtil
|
||||
import com.intellij.database.run.actions.DeleteRowsAction
|
||||
import com.intellij.database.run.ui.grid.GridCopyProvider
|
||||
import com.intellij.database.run.ui.grid.GridPasteProvider
|
||||
import com.intellij.ide.impl.StructureViewWrapperImpl.Companion.STRUCTURE_VIEW_TARGET_FILE_KEY
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys.EDITOR
|
||||
import com.intellij.openapi.actionSystem.DataSink
|
||||
import com.intellij.openapi.actionSystem.DataSnapshot
|
||||
@@ -14,6 +15,9 @@ import com.intellij.openapi.actionSystem.PlatformDataKeys.DELETE_ELEMENT_PROVIDE
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys.PASTE_PROVIDER
|
||||
import com.intellij.openapi.actionSystem.UiDataRule
|
||||
import com.intellij.openapi.editor.ex.EditorEx
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import java.util.Optional
|
||||
|
||||
class TableResultPanelUIDataRule : UiDataRule {
|
||||
override fun uiDataSnapshot(sink: DataSink, snapshot: DataSnapshot) {
|
||||
@@ -27,6 +31,10 @@ class TableResultPanelUIDataRule : UiDataRule {
|
||||
class InnerEditorsTableResultPanelUIDataRule : UiDataRule {
|
||||
override fun uiDataSnapshot(sink: DataSink, snapshot: DataSnapshot) {
|
||||
val editor = snapshot[EDITOR] as? EditorEx ?: return
|
||||
|
||||
@Suppress("UNCHECKED_CAST") // the cast is safe because java optional doesn't care about nullability
|
||||
sink[STRUCTURE_VIEW_TARGET_FILE_KEY] = Optional.ofNullable(FileDocumentManager.getInstance().getFile(editor.document)) as Optional<VirtualFile?>?
|
||||
|
||||
sink[COPY_PROVIDER] = editor.getCopyProvider()
|
||||
sink[PASTE_PROVIDER] = editor.getPasteProvider()
|
||||
sink[CUT_PROVIDER] = editor.getCutProvider()
|
||||
|
||||
Reference in New Issue
Block a user