diff --git a/pdex/Todo, GSoC 2013.txt b/pdex/Todo, GSoC 2013.txt index 0cea39895..44353a5ff 100644 --- a/pdex/Todo, GSoC 2013.txt +++ b/pdex/Todo, GSoC 2013.txt @@ -7,7 +7,7 @@ Manindra Moharana (me@mkmoharana.com) * : Todo, x : Done, ? : Undecided Todo, ! : Critical, + : Minor Todo Code Completion -============== +=============== The big stuff: @@ -16,8 +16,7 @@ The big stuff: - Many of the cases seem to have been covered, and I'm achieving more and more code unification as I'm working through the problem step by step - Looks almost complete now, nearly all cases covered(July 13th) * Scope handling? Static/non static scope? -* Disable completions on comment line -* Add a static debug field, disable debugging info on console. +* Disable completions on comment line * Trie implementation would be lower priority, "premature optimisation is pure evil". Get all features of CC working good enough and then plan this. x! Code competition for local code is working with recursive look up. diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index 79975f006..4193cced4 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -1660,55 +1660,7 @@ public class ASTGenerator { } protected void done() { - - String newName = txtRenameField.getText(); - DefaultMutableTreeNode defCU = findAllOccurrences(); - treeRename.setModel(new DefaultTreeModel(defCU)); - ((DefaultTreeModel) treeRename.getModel()).reload(); - frmOccurenceList.setVisible(true); - int lineOffsetDisplacementConst = newName.length() - - editor.ta.getSelectedText().length(); - HashMap lineOffsetDisplacement = new HashMap(); - - // I need to store the pde and java offsets beforehand because once - // the replace starts, all offsets returned are affected - int offsetsMap[][][] = new int[defCU.getChildCount()][2][]; - for (int i = defCU.getChildCount() - 1; i >= 0; i--) { - ASTNodeWrapper awrap = (ASTNodeWrapper) ((DefaultMutableTreeNode) (defCU - .getChildAt(i))).getUserObject(); - offsetsMap[i][0] = awrap.getPDECodeOffsets(errorCheckerService); - offsetsMap[i][1] = awrap.getJavaCodeOffsets(errorCheckerService); - } - - for (int i = defCU.getChildCount() - 1; i >= 0; i--) { - int pdeoffsets[] = offsetsMap[i][0]; - int javaoffsets[] = offsetsMap[i][1]; - // correction for pde enhancements related displacement on a line - int off = 0; - if (lineOffsetDisplacement.get(javaoffsets[0]) != null) { - off = lineOffsetDisplacement.get(javaoffsets[0]); - - lineOffsetDisplacement.put(javaoffsets[0], - lineOffsetDisplacementConst + off); - } else { - lineOffsetDisplacement.put(javaoffsets[0], - lineOffsetDisplacementConst); - } - - ErrorCheckerService.scrollToErrorLine(editor, pdeoffsets[0], - pdeoffsets[1], - javaoffsets[1] + off, - javaoffsets[2]); - editor.ta.setSelectedText(newName); - } - for (Integer lineNum : lineOffsetDisplacement.keySet()) { - System.out.println(lineNum + "line, disp" - + lineOffsetDisplacement.get(lineNum)); - } - editor.getSketch().setModified(true); - errorCheckerService.runManualErrorCheck(); - frmOccurenceList.setVisible(false); - frmRename.setVisible(false); + handleRename(); } }; worker.execute(); @@ -1771,6 +1723,57 @@ public class ASTGenerator { }); } + private void handleRename(){ + String newName = txtRenameField.getText(); + DefaultMutableTreeNode defCU = findAllOccurrences(); + treeRename.setModel(new DefaultTreeModel(defCU)); + ((DefaultTreeModel) treeRename.getModel()).reload(); + frmOccurenceList.setVisible(true); + int lineOffsetDisplacementConst = newName.length() + - editor.ta.getSelectedText().length(); + HashMap lineOffsetDisplacement = new HashMap(); + + // I need to store the pde and java offsets beforehand because once + // the replace starts, all offsets returned are affected + int offsetsMap[][][] = new int[defCU.getChildCount()][2][]; + for (int i = defCU.getChildCount() - 1; i >= 0; i--) { + ASTNodeWrapper awrap = (ASTNodeWrapper) ((DefaultMutableTreeNode) (defCU + .getChildAt(i))).getUserObject(); + offsetsMap[i][0] = awrap.getPDECodeOffsets(errorCheckerService); + offsetsMap[i][1] = awrap.getJavaCodeOffsets(errorCheckerService); + } + + for (int i = defCU.getChildCount() - 1; i >= 0; i--) { + int pdeoffsets[] = offsetsMap[i][0]; + int javaoffsets[] = offsetsMap[i][1]; + // correction for pde enhancements related displacement on a line + int off = 0; + if (lineOffsetDisplacement.get(javaoffsets[0]) != null) { + off = lineOffsetDisplacement.get(javaoffsets[0]); + + lineOffsetDisplacement.put(javaoffsets[0], + lineOffsetDisplacementConst + off); + } else { + lineOffsetDisplacement.put(javaoffsets[0], + lineOffsetDisplacementConst); + } + + ErrorCheckerService.scrollToErrorLine(editor, pdeoffsets[0], + pdeoffsets[1], + javaoffsets[1] + off, + javaoffsets[2]); + editor.ta.setSelectedText(newName); + } + for (Integer lineNum : lineOffsetDisplacement.keySet()) { + System.out.println(lineNum + "line, disp" + + lineOffsetDisplacement.get(lineNum)); + } + editor.getSketch().setModified(true); + errorCheckerService.runManualErrorCheck(); + frmOccurenceList.setVisible(false); + frmRename.setVisible(false); + } + private DefaultMutableTreeNode findAllOccurrences(){ String selText = editor.ta.getSelectedText(); int line = editor.ta.getSelectionStartLine();