From 9a7e1bb9424496e04bb24c5a8884ccbb6ab29a68 Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Sun, 4 May 2014 16:01:45 +0530 Subject: [PATCH] before attempting fix --- .../mode/experimental/ASTGenerator.java | 20 +++++++++++++++++++ .../mode/experimental/ASTNodeWrapper.java | 5 ++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index 0650e8626..67bca78ce 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -1179,6 +1179,26 @@ public class ASTGenerator { return candidates; } + public String getJavaSourceCodeline(int jLineNumber){ + try { + PlainDocument javaSource = new PlainDocument(); + javaSource.insertString(0, errorCheckerService.sourceCode, null); + Element lineElement = javaSource.getDefaultRootElement() + .getElement(jLineNumber-1); + if(lineElement == null) { + log("Couldn't fetch jlinenum " + jLineNumber); + return null; + } + String javaLine = javaSource.getText(lineElement.getStartOffset(), + lineElement.getEndOffset() + - lineElement.getStartOffset()); + return javaLine; + } catch (BadLocationException e) { + logE(e + " in getJavaSourceCodeline() for jinenum: " + jLineNumber); + } + return null; + } + /** * Searches for the particular class in the default list of imports as well as * the Sketch classpath diff --git a/pdex/src/processing/mode/experimental/ASTNodeWrapper.java b/pdex/src/processing/mode/experimental/ASTNodeWrapper.java index 3b03aa922..542d0d80d 100644 --- a/pdex/src/processing/mode/experimental/ASTNodeWrapper.java +++ b/pdex/src/processing/mode/experimental/ASTNodeWrapper.java @@ -377,7 +377,7 @@ public class ASTNodeWrapper { * index correction needed. (2) Now all java conversions are applied after * marking the offsets. This ensures that the index order isn't disturbed by * one at a time conversions as done in preprocessCode() in ECS. Took me - * sometime to figure out this was a bug. (3) Next I create a tables(two + * sometime to figure out this was a bug. (3) Next I create a table(two * separate arrays) which allows me to look it up for matching any index * between pde or java version of the snippet. This also lets me find out * any difference in length between both versions. @@ -389,6 +389,8 @@ public class ASTNodeWrapper { */ log("Src:" + source); + // Instead of converting pde into java, how can I simply extract the same source + // from the java code? Think. TODO String sourceAlt = new String(source); TreeMap offsetmap = new TreeMap(); @@ -533,6 +535,7 @@ public class ASTNodeWrapper { } SimpleName nodeName = (SimpleName) Node; try { + //TODO: Redundant code. See ASTGenerator.getJavaSourceCodeline() int javaLineNumber = getLineNumber(nodeName); int pdeOffs[] = astGenerator.errorCheckerService .calculateTabIndexAndLineNumber(javaLineNumber);