From 5d898e908521c984865e1cfea8936c4bfda91a59 Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Wed, 19 Oct 2016 13:39:15 +0300 Subject: [PATCH] Add 'Jump to Declaration' to PDE right-click menu --- build/shared/lib/languages/PDE.properties | 1 + build/shared/lib/languages/PDE_uk.properties | 1 + java/src/processing/mode/java/pdex/PDEX.java | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/build/shared/lib/languages/PDE.properties b/build/shared/lib/languages/PDE.properties index f1c3eedb1..b70ae466f 100644 --- a/build/shared/lib/languages/PDE.properties +++ b/build/shared/lib/languages/PDE.properties @@ -312,6 +312,7 @@ editor.header.delete.warning.title = Yeah, no. editor.header.delete.warning.text = You cannot delete the main tab of the only open sketch. # PopUp menu +editor.popup.jump_to_declaration = Jump to Declaration editor.popup.show_usage = Show Usage... editor.popup.rename = Rename... diff --git a/build/shared/lib/languages/PDE_uk.properties b/build/shared/lib/languages/PDE_uk.properties index 07ce05aa5..8ed7188b6 100644 --- a/build/shared/lib/languages/PDE_uk.properties +++ b/build/shared/lib/languages/PDE_uk.properties @@ -316,6 +316,7 @@ editor.header.delete.warning.title = Хех, ні. editor.header.delete.warning.text = Не можна видалити головну вкладку єдиного відкритого ескізу. # PopUp menu +editor.popup.jump_to_declaration = Перейти до визначення editor.popup.show_usage = Показати використання... editor.popup.rename = Перейменувати... diff --git a/java/src/processing/mode/java/pdex/PDEX.java b/java/src/processing/mode/java/pdex/PDEX.java index 6182faed3..0cd9e0a72 100644 --- a/java/src/processing/mode/java/pdex/PDEX.java +++ b/java/src/processing/mode/java/pdex/PDEX.java @@ -22,6 +22,7 @@ import java.awt.EventQueue; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Rectangle; +import java.awt.event.ActionEvent; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.InputEvent; @@ -205,6 +206,10 @@ public class PDEX { // Add listeners + JMenuItem showUsageItem = new JMenuItem(Language.text("editor.popup.jump_to_declaration")); + showUsageItem.addActionListener(e -> handleInspect()); + editor.getTextArea().getRightClickPopup().add(showUsageItem); + editor.getJavaTextArea().getPainter().addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { @@ -273,6 +278,12 @@ public class PDEX { } + void handleInspect() { + int off = editor.getSelectionStart(); + int tabIndex = editor.getSketch().getCurrentCodeIndex(); + + pps.whenDoneBlocking(ps -> handleInspect(ps, tabIndex, off)); + } // Thread: EDT void handleInspect(MouseEvent evt) {