From 6da445040303610382c9c4d0feafcdfd03bbe982 Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Mon, 11 Aug 2014 20:59:26 +0530 Subject: [PATCH] Add ignore option to import suggest. Fixes #2766 --- .../mode/experimental/ASTGenerator.java | 23 ++++++++++++++++++- .../experimental/ErrorCheckerService.java | 10 ++++---- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index 3d6b41539..32436d04e 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.Map; import java.util.Stack; import java.util.TreeMap; +import java.util.TreeSet; import java.util.concurrent.atomic.AtomicBoolean; import java.util.regex.Pattern; @@ -3312,7 +3313,17 @@ public class ASTGenerator { return null; } protected JFrame frmImportSuggest; + private TreeSet ignoredImportSuggestions; + public void suggestImports(final String className){ + if(ignoredImportSuggestions == null) { + ignoredImportSuggestions = new TreeSet<>(); + } else { + if(ignoredImportSuggestions.contains(className)) { + log("Ignoring import suggestions for " + className); + return; + } + } if(frmImportSuggest != null) if(frmImportSuggest.isVisible()) return; @@ -3417,7 +3428,17 @@ public class ASTGenerator { panelBottom.add(Box.createHorizontalGlue()); panelBottom.add(btnInsertImport); panelBottom.add(Box.createRigidArea(new Dimension(15, 0))); - panelBottom.add(btnCancel); + panelBottom.add(btnCancel); + JButton btnIgnore = new JButton("Ignore \"" + className + "\""); + btnIgnore.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + ignoredImportSuggestions.add(className); + frmImportSuggest.setVisible(false); + } + }); + panelBottom.add(Box.createRigidArea(new Dimension(15, 0))); + panelBottom.add(btnIgnore); // frmImportSuggest.add(lbl); // frmImportSuggest.add(jsp); diff --git a/pdex/src/processing/mode/experimental/ErrorCheckerService.java b/pdex/src/processing/mode/experimental/ErrorCheckerService.java index 2ca2b6040..f4f3a5857 100644 --- a/pdex/src/processing/mode/experimental/ErrorCheckerService.java +++ b/pdex/src/processing/mode/experimental/ErrorCheckerService.java @@ -386,11 +386,11 @@ public class ErrorCheckerService implements Runnable{ protected void checkForMissingImports() { for (Problem p : problemsList) { - if(p.getMessage().endsWith(" cannot be resolved to a type"));{ - int idx = p.getMessage().indexOf(" cannot be resolved to a type"); - if(idx > 1){ - String missingClass = p.getMessage().substring(0, idx); - //log("Will suggest for type:" + missingClass); + if(p.getIProblem().getID() == IProblem.UndefinedType) { + String args[] = p.getIProblem().getArguments(); + if (args.length > 0) { + String missingClass = args[0]; + log("Will suggest for type:" + missingClass); astGenerator.suggestImports(missingClass); } }