From de04460a07546cbbe541e3ed1461b6cc24af6165 Mon Sep 17 00:00:00 2001 From: Ivan Shershnev Date: Thu, 12 Feb 2026 15:39:50 +0100 Subject: [PATCH] DBE-23882 Explicitly target inner editor in grid for structure view GitOrigin-RevId: 9bc998f1f5a79cbdeee7297dba2280baf6f8bb0d --- grid/impl/src/run/ui/TableResultPanelUIDataRule.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/grid/impl/src/run/ui/TableResultPanelUIDataRule.kt b/grid/impl/src/run/ui/TableResultPanelUIDataRule.kt index bee3d4d8adcf..4bf164714b41 100644 --- a/grid/impl/src/run/ui/TableResultPanelUIDataRule.kt +++ b/grid/impl/src/run/ui/TableResultPanelUIDataRule.kt @@ -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? + sink[COPY_PROVIDER] = editor.getCopyProvider() sink[PASTE_PROVIDER] = editor.getPasteProvider() sink[CUT_PROVIDER] = editor.getCutProvider()