[Pydev-cvs] org.python.pydev/src/org/python/pydev/editor/correctionassist/heuristics AssistCreateInM
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2005-04-12 16:30:37
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/correctionassist/heuristics In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1543/src/org/python/pydev/editor/correctionassist/heuristics Modified Files: AssistTry.java AssistDocString.java AssistCreations.java AssistOverride.java AssistImport.java AssistAssign.java Added Files: AssistCreateInModule.java Log Message: Billions of micro-refactorings (PySelection) and starting to unit-test content assistants. Index: AssistAssign.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/correctionassist/heuristics/AssistAssign.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AssistAssign.java 12 Apr 2005 13:54:24 -0000 1.1 --- AssistAssign.java 12 Apr 2005 16:29:41 -0000 1.2 *************** *** 11,15 **** import org.eclipse.jface.text.BadLocationException; - import org.eclipse.jface.text.IRegion; import org.python.pydev.editor.actions.PyAction; import org.python.pydev.editor.actions.PySelection; --- 11,14 ---- *************** *** 71,75 **** } ! int firstCharPosition = PyAction.getFirstCharPosition(ps.doc, ps.absoluteCursorOffset); callName += " = "; l.add(new CompletionProposal(callName, firstCharPosition, 0, 0, imageCache.get(UIConstants.ASSIST_ASSIGN_TO_LOCAL), --- 70,74 ---- } ! int firstCharPosition = PyAction.getFirstCharPosition(ps.getDoc(), ps.getAbsoluteCursorOffset()); callName += " = "; l.add(new CompletionProposal(callName, firstCharPosition, 0, 0, imageCache.get(UIConstants.ASSIST_ASSIGN_TO_LOCAL), *************** *** 87,96 **** public boolean isValid(PySelection ps, String sel) { try { ! if(! (ps.textSelection.getLength() == 0)) return false; ! int lineOfOffset = ps.doc.getLineOfOffset(ps.absoluteCursorOffset); ! IRegion lineInformation = ps.doc.getLineInformation(lineOfOffset); ! String lineToCursor = ps.doc.get(lineInformation.getOffset(), ps.absoluteCursorOffset - lineInformation.getOffset()); if( ! ( sel.indexOf("class ") == -1 && sel.indexOf("def ") == -1 && sel.indexOf("import ") == -1)) --- 86,93 ---- public boolean isValid(PySelection ps, String sel) { try { ! if(! (ps.getTextSelection().getLength() == 0)) return false; ! String lineToCursor = ps.getLineContentsToCursor(); if( ! ( sel.indexOf("class ") == -1 && sel.indexOf("def ") == -1 && sel.indexOf("import ") == -1)) Index: AssistOverride.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/correctionassist/heuristics/AssistOverride.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AssistOverride.java 12 Apr 2005 13:54:24 -0000 1.1 --- AssistOverride.java 12 Apr 2005 16:29:41 -0000 1.2 *************** *** 37,41 **** String indentation = PyBackspace.getStaticIndentationString(); ! String delimiter = PyAction.getDelimiter(ps.doc); String indStart = ""; --- 37,41 ---- String indentation = PyBackspace.getStaticIndentationString(); ! String delimiter = PyAction.getDelimiter(ps.getDoc()); String indStart = ""; *************** *** 48,57 **** String start = sel.substring(0, j+4); ! String[] strs = PyCodeCompletion.getActivationTokenAndQual(ps.doc, ps.absoluteCursorOffset); String tok = strs[1]; ! CompletionState state = new CompletionState(ps.startLineIndex, ps.absoluteCursorOffset - ps.startLine.getOffset(), null, nature); ! CompletionRequest request = new CompletionRequest(f, nature, ps.doc, "self", ps.absoluteCursorOffset, 0, new PyCodeCompletion(true), ""); IToken[] selfCompletions = PyCodeCompletion.getSelfCompletions(request, new ArrayList(), state, true); for (int i = 0; i < selfCompletions.length; i++) { --- 48,57 ---- String start = sel.substring(0, j+4); ! String[] strs = PyCodeCompletion.getActivationTokenAndQual(ps.getDoc(), ps.getAbsoluteCursorOffset()); String tok = strs[1]; ! CompletionState state = new CompletionState(ps.getStartLineIndex(), ps.getAbsoluteCursorOffset() - ps.getStartLine().getOffset(), null, nature); ! CompletionRequest request = new CompletionRequest(f, nature, ps.getDoc(), "self", ps.getAbsoluteCursorOffset(), 0, new PyCodeCompletion(true), ""); IToken[] selfCompletions = PyCodeCompletion.getSelfCompletions(request, new ArrayList(), state, true); for (int i = 0; i < selfCompletions.length; i++) { *************** *** 91,95 **** String comp = buffer.toString(); ! l.add(new CompletionProposal(comp, ps.startLine.getOffset(), ps.startLine.getLength(), comp.length() , imageCache.get(UIConstants.ASSIST_NEW_CLASS), rep+" (Override)", null, null)); } --- 91,95 ---- String comp = buffer.toString(); ! l.add(new CompletionProposal(comp, ps.getStartLine().getOffset(), ps.getStartLine().getLength(), comp.length() , imageCache.get(UIConstants.ASSIST_NEW_CLASS), rep+" (Override)", null, null)); } --- NEW FILE: AssistCreateInModule.java --- /* * Created on Apr 12, 2005 * * @author Fabio Zadrozny */ package org.python.pydev.editor.correctionassist.heuristics; import java.io.File; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.text.BadLocationException; import org.python.pydev.editor.actions.PySelection; import org.python.pydev.editor.model.AbstractNode; import org.python.pydev.plugin.PythonNature; import org.python.pydev.ui.ImageCache; /** * @author Fabio Zadrozny */ public class AssistCreateInModule implements IAssistProps{ /** * @see org.python.pydev.editor.correctionassist.heuristics.IAssistProps#getProps(org.python.pydev.editor.actions.PySelection, org.python.pydev.ui.ImageCache, java.io.File, org.python.pydev.plugin.PythonNature, org.python.pydev.editor.model.AbstractNode) */ public List getProps(PySelection ps, ImageCache imageCache, File f, PythonNature nature, AbstractNode root) throws BadLocationException { List l = new ArrayList(); return l; } /** * @see org.python.pydev.editor.correctionassist.heuristics.IAssistProps#isValid(org.python.pydev.editor.actions.PySelection, java.lang.String) */ public boolean isValid(PySelection ps, String sel) { try { String lineToCursor = ps.getLineContentsToCursor(); return lineToCursor.indexOf('.') != -1; } catch (BadLocationException e) { e.printStackTrace(); } return false; } } Index: AssistTry.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/correctionassist/heuristics/AssistTry.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AssistTry.java 12 Apr 2005 13:54:24 -0000 1.1 --- AssistTry.java 12 Apr 2005 16:29:41 -0000 1.2 *************** *** 34,44 **** String indentation = PyBackspace.getStaticIndentationString(); ! int start = ps.startLine.getOffset(); ! int end = ps.endLine.getOffset()+ps.endLine.getLength(); ! String string = ps.doc.get(start, end-start); ! String delimiter = PyAction.getDelimiter(ps.doc); ! int firstCharPosition = PyAction.getFirstCharRelativePosition(ps.doc, start); String startIndent = ""; int i = 0; --- 34,44 ---- String indentation = PyBackspace.getStaticIndentationString(); ! int start = ps.getStartLine().getOffset(); ! int end = ps.getEndLine().getOffset()+ps.getEndLine().getLength(); ! String string = ps.getDoc().get(start, end-start); ! String delimiter = PyAction.getDelimiter(ps.getDoc()); ! int firstCharPosition = PyAction.getFirstCharRelativePosition(ps.getDoc(), start); String startIndent = ""; int i = 0; *************** *** 75,79 **** */ public boolean isValid(PySelection ps, String sel) { ! return ps.textSelection.getLength() > 0; } --- 75,79 ---- */ public boolean isValid(PySelection ps, String sel) { ! return ps.getTextSelection().getLength() > 0; } Index: AssistImport.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/correctionassist/heuristics/AssistImport.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AssistImport.java 12 Apr 2005 13:54:24 -0000 1.1 --- AssistImport.java 12 Apr 2005 16:29:41 -0000 1.2 *************** *** 32,43 **** int i = sel.indexOf("import"); ! if(ps.startLineIndex != ps.endLineIndex) return l; ! String delimiter = PyAction.getDelimiter(ps.doc); int lineToMoveImport = 0; ! int lines = ps.doc.getNumberOfLines(); for (int line = 0; line < lines; line++) { String str = ps.getLine(line); --- 32,43 ---- int i = sel.indexOf("import"); ! if(ps.getStartLineIndex() != ps.getEndLineIndex()) return l; ! String delimiter = PyAction.getDelimiter(ps.getDoc()); int lineToMoveImport = 0; ! int lines = ps.getDoc().getNumberOfLines(); for (int line = 0; line < lines; line++) { String str = ps.getLine(line); *************** *** 48,57 **** } ! int offset = ps.doc.getLineOffset(lineToMoveImport); if(i >= 0){ ! l.add(new FixCompletionProposal(sel+delimiter, offset, 0, ps.startLine.getOffset(), imageCache.get(UIConstants.ASSIST_MOVE_IMPORT), ! "Move import to global scope", null, null, ps.startLineIndex+1)); } return l; --- 48,57 ---- } ! int offset = ps.getDoc().getLineOffset(lineToMoveImport); if(i >= 0){ ! l.add(new FixCompletionProposal(sel+delimiter, offset, 0, ps.getStartLine().getOffset(), imageCache.get(UIConstants.ASSIST_MOVE_IMPORT), ! "Move import to global scope", null, null, ps.getStartLineIndex()+1)); } return l; Index: AssistDocString.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/correctionassist/heuristics/AssistDocString.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AssistDocString.java 12 Apr 2005 13:54:24 -0000 1.1 --- AssistDocString.java 12 Apr 2005 16:29:41 -0000 1.2 *************** *** 31,39 **** public List getProps(PySelection ps, ImageCache imageCache, File f, PythonNature nature, AbstractNode root) throws BadLocationException { ArrayList l = new ArrayList(); ! List params = PyAction.getInsideParentesisToks(ps.selection, false); StringBuffer buf = new StringBuffer(); ! String initial = PyAction.getIndentationFromLine(ps.selection); ! String delimiter = PyAction.getDelimiter(ps.doc); String indentation = PyBackspace.getStaticIndentationString(); String inAndIndent = delimiter+initial+indentation; --- 31,39 ---- public List getProps(PySelection ps, ImageCache imageCache, File f, PythonNature nature, AbstractNode root) throws BadLocationException { ArrayList l = new ArrayList(); ! List params = PyAction.getInsideParentesisToks(ps.getSelection(), false); StringBuffer buf = new StringBuffer(); ! String initial = PyAction.getIndentationFromLine(ps.getSelection()); ! String delimiter = PyAction.getDelimiter(ps.getDoc()); String indentation = PyBackspace.getStaticIndentationString(); String inAndIndent = delimiter+initial+indentation; *************** *** 42,46 **** int newOffset = buf.length(); ! if (ps.selection.indexOf("def ") != -1 && params.size()>0){ buf.append(inAndIndent); for (Iterator iter = params.iterator(); iter.hasNext();) { --- 42,46 ---- int newOffset = buf.length(); ! if (ps.getSelection().indexOf("def ") != -1 && params.size()>0){ buf.append(inAndIndent); for (Iterator iter = params.iterator(); iter.hasNext();) { *************** *** 55,59 **** String comp = buf.toString(); ! l.add(new CompletionProposal(comp, ps.startLine.getOffset()+ps.startLine.getLength(), 0, newOffset , imageCache.get(UIConstants.ASSIST_DOCSTRING), "Make docstring", null, null)); return l; --- 55,59 ---- String comp = buf.toString(); ! l.add(new CompletionProposal(comp, ps.getStartLine().getOffset()+ps.getStartLine().getLength(), 0, newOffset , imageCache.get(UIConstants.ASSIST_DOCSTRING), "Make docstring", null, null)); return l; Index: AssistCreations.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/correctionassist/heuristics/AssistCreations.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AssistCreations.java 12 Apr 2005 13:54:24 -0000 1.1 --- AssistCreations.java 12 Apr 2005 16:29:41 -0000 1.2 *************** *** 59,74 **** //so, first thing is checking the global int newPos = 0; ! int lineOfOffset = ps.doc.getLineOfOffset(ps.absoluteCursorOffset); if(lineOfOffset > 0){ ! newPos = ps.doc.getLineInformation(lineOfOffset).getOffset(); } l.add(new FixCompletionProposal(cls, newPos, 0, cls.length()+1, imageCache.get(UIConstants.ASSIST_NEW_CLASS), ! "Make this a new class", null, null, ps.startLineIndex+4)); method = method.replaceFirst("%s", ""); l.add(new FixCompletionProposal(method, newPos, 0, method.length()+1, imageCache.get(UIConstants.ASSIST_NEW_METHOD), ! "Make this a new method", null, null, ps.startLineIndex+2)); }else{ //we are in a method or class context --- 59,74 ---- //so, first thing is checking the global int newPos = 0; ! int lineOfOffset = ps.getDoc().getLineOfOffset(ps.getAbsoluteCursorOffset()); if(lineOfOffset > 0){ ! newPos = ps.getDoc().getLineInformation(lineOfOffset).getOffset(); } l.add(new FixCompletionProposal(cls, newPos, 0, cls.length()+1, imageCache.get(UIConstants.ASSIST_NEW_CLASS), ! "Make this a new class", null, null, ps.getStartLineIndex()+4)); method = method.replaceFirst("%s", ""); l.add(new FixCompletionProposal(method, newPos, 0, method.length()+1, imageCache.get(UIConstants.ASSIST_NEW_METHOD), ! "Make this a new method", null, null, ps.getStartLineIndex()+2)); }else{ //we are in a method or class context *************** *** 79,83 **** //now, discover in which node we are right now... ! AbstractNode current = ModelUtils.getLessOrEqualNode(root, ps.absoluteCursorOffset, ps.doc); while (current != null) { if (current instanceof FunctionNode --- 79,83 ---- //now, discover in which node we are right now... ! AbstractNode current = ModelUtils.getLessOrEqualNode(root, ps.getAbsoluteCursorOffset(), ps.getDoc()); while (current != null) { if (current instanceof FunctionNode *************** *** 98,102 **** if(lineOfOffset > 0){ ! newPos = ps.doc.getLineInformation(lineOfOffset).getOffset(); } --- 98,102 ---- if(lineOfOffset > 0){ ! newPos = ps.getDoc().getLineInformation(lineOfOffset).getOffset(); } *************** *** 132,136 **** if(lineOfOffset > 0){ ! newPos = ps.doc.getLineInformation(lineOfOffset).getOffset(); } String finalMethod = method+delim; --- 132,136 ---- if(lineOfOffset > 0){ ! newPos = ps.getDoc().getLineInformation(lineOfOffset).getOffset(); } String finalMethod = method+delim; *************** *** 150,157 **** //now get the attempt to make this a new method ------------------------------------------ newPos = 0; ! lineOfOffset = ps.doc.getLineOfOffset(ps.absoluteCursorOffset); if(lineOfOffset > 0){ ! newPos = ps.doc.getLineInformation(lineOfOffset).getOffset(); } --- 150,157 ---- //now get the attempt to make this a new method ------------------------------------------ newPos = 0; ! lineOfOffset = ps.getDoc().getLineOfOffset(ps.getAbsoluteCursorOffset()); if(lineOfOffset > 0){ ! newPos = ps.getDoc().getLineInformation(lineOfOffset).getOffset(); } *************** *** 172,176 **** } l.add(new FixCompletionProposal(method, newPos, 0, method.length()+1, imageCache.get(UIConstants.ASSIST_NEW_METHOD), ! "Make this a new method (in class)", null, null, ps.startLineIndex+3)); } --- 172,176 ---- } l.add(new FixCompletionProposal(method, newPos, 0, method.length()+1, imageCache.get(UIConstants.ASSIST_NEW_METHOD), ! "Make this a new method (in class)", null, null, ps.getStartLineIndex()+3)); } *************** *** 194,203 **** params = PyAction.getInsideParentesisTok(ps); ! firstCharPosition = PyAction.getFirstCharRelativePosition(ps.doc, ps.absoluteCursorOffset); indentation = PyBackspace.getStaticIndentationString(); ! delim = PyAction.getDelimiter(ps.doc); cls = "class "+callName+"(object):"+delim+delim; --- 194,203 ---- params = PyAction.getInsideParentesisTok(ps); ! firstCharPosition = PyAction.getFirstCharRelativePosition(ps.getDoc(), ps.getAbsoluteCursorOffset()); indentation = PyBackspace.getStaticIndentationString(); ! delim = PyAction.getDelimiter(ps.getDoc()); cls = "class "+callName+"(object):"+delim+delim; *************** *** 218,222 **** public boolean isValid(PySelection ps, String sel) { return sel.indexOf("class ") == -1 && sel.indexOf("def ") == -1 && sel.indexOf("import ") == -1 && ! ps.textSelection.getLength() == 0; } --- 218,222 ---- public boolean isValid(PySelection ps, String sel) { return sel.indexOf("class ") == -1 && sel.indexOf("def ") == -1 && sel.indexOf("import ") == -1 && ! ps.getTextSelection().getLength() == 0; } |