diff --git a/build/shared/lib/languages/PDE.properties b/build/shared/lib/languages/PDE.properties index c19572573..d114295d0 100644 --- a/build/shared/lib/languages/PDE.properties +++ b/build/shared/lib/languages/PDE.properties @@ -314,6 +314,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 9c2d0b30d..9dda7101e 100644 --- a/java/src/processing/mode/java/pdex/PDEX.java +++ b/java/src/processing/mode/java/pdex/PDEX.java @@ -23,6 +23,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; @@ -209,6 +210,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) { @@ -277,6 +282,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) {