From 0647c7d2482edf745d27a4b2617c95bf0417598e Mon Sep 17 00:00:00 2001 From: Jakub Valtar Date: Fri, 22 Apr 2016 14:16:09 +0200 Subject: [PATCH] ASTGen: ctrl click on declaration shows usage --- .../processing/mode/java/pdex/ASTGenerator.java | 15 +++++++++------ .../mode/java/pdex/JavaTextAreaPainter.java | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/java/src/processing/mode/java/pdex/ASTGenerator.java b/java/src/processing/mode/java/pdex/ASTGenerator.java index fa300e7e5..db8c41a98 100644 --- a/java/src/processing/mode/java/pdex/ASTGenerator.java +++ b/java/src/processing/mode/java/pdex/ASTGenerator.java @@ -2509,13 +2509,11 @@ public class ASTGenerator { // Thread: EDT - public void scrollToDeclaration(int tabIndex, int offset) { + public void handleCtrlClick(int tabIndex, int offset) { Messages.log("* scrollToDeclaration"); // TODO: don't run the heavy lifting on EDT - // TODO: handle comments - PreprocessedSketch ps = errorCheckerService.latestResult; int javaOffset = ps.tabOffsetToJavaOffset(tabIndex, offset); @@ -2536,7 +2534,8 @@ public class ASTGenerator { String key = binding.getKey(); ASTNode decl = ps.compilationUnit.findDeclaringNode(key); if (decl == null) { - Messages.log("decl not found"); + Messages.log("decl not found, showing usage instead"); + handleShowUsage(binding); return; } @@ -2551,8 +2550,12 @@ public class ASTGenerator { return; } - Messages.log("found declaration, offset " + decl.getStartPosition() + ", name: " + declName); - errorCheckerService.highlightJavaRange(declName.getStartPosition(), declName.getLength()); + if (declName.equals(simpleName)) { + handleShowUsage(binding); + } else { + Messages.log("found declaration, offset " + decl.getStartPosition() + ", name: " + declName); + errorCheckerService.highlightJavaRange(declName.getStartPosition(), declName.getLength()); + } } diff --git a/java/src/processing/mode/java/pdex/JavaTextAreaPainter.java b/java/src/processing/mode/java/pdex/JavaTextAreaPainter.java index 25a48063a..2f2cbee55 100644 --- a/java/src/processing/mode/java/pdex/JavaTextAreaPainter.java +++ b/java/src/processing/mode/java/pdex/JavaTextAreaPainter.java @@ -78,7 +78,7 @@ public class JavaTextAreaPainter extends TextAreaPainter super(textArea, defaults); addMouseListener(new MouseAdapter() { - public void mouseClicked(MouseEvent evt) { + public void mouseReleased(MouseEvent evt) { if (!getJavaEditor().hasJavaTabs()) { // Ctrl + Click disabled for java tabs if (evt.getButton() == MouseEvent.BUTTON1) { if ((evt.isControlDown() && !Platform.isMacOS()) || evt.isMetaDown()) { @@ -130,7 +130,7 @@ public class JavaTextAreaPainter extends TextAreaPainter ASTGenerator astGenerator = getJavaEditor().getErrorChecker().getASTGenerator(); synchronized (astGenerator) { - astGenerator.scrollToDeclaration(tabIndex, off); + astGenerator.handleCtrlClick(tabIndex, off); } }