From 1dd3f15cd7b597c958d976782aec81c9a2c3bc30 Mon Sep 17 00:00:00 2001 From: Dmitry Trofimov Date: Thu, 9 Aug 2018 14:39:13 +0200 Subject: [PATCH] Add 'Move to Editor' action for terminal tab --- .../terminal/JBTabbedTerminalWidget.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTabbedTerminalWidget.java b/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTabbedTerminalWidget.java index e1b02b8b8e49..b001a70b2fac 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTabbedTerminalWidget.java +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTabbedTerminalWidget.java @@ -9,6 +9,7 @@ import com.intellij.ide.dnd.TransferableWrapper; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.ActionManager; import com.intellij.openapi.actionSystem.Presentation; +import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.fileEditor.impl.EditorTabbedContainer; import com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl; import com.intellij.openapi.project.DumbAwareAction; @@ -339,6 +340,17 @@ public class JBTabbedTerminalWidget extends TabbedTerminalWidget implements Disp popupMenu.add(rename); + JMenuItem moveToEditor = new JMenuItem("Move to Editor"); + + moveToEditor.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + moveToEditor(myTabs.getTabAt(getSelectedIndex())); + } + }); + + popupMenu.add(moveToEditor); + return popupMenu; } @@ -443,5 +455,15 @@ public class JBTabbedTerminalWidget extends TabbedTerminalWidget implements Disp mySession = null; } } + + private void moveToEditor(TabInfo tabInfo) { + TerminalSessionVirtualFileImpl file = (TerminalSessionVirtualFileImpl)tabInfo.getObject(); + file.putUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN, Boolean.TRUE); + FileEditorManager.getInstance(myProject).openFile(file, true); + myTabs.removeTab(tabInfo); + file.putUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN, null); + } } + + }