[Pydev-cvs] org.python.pydev.refactoring/src/org/python/pydev/refactoring/ast/adapters/offsetstrate
Brought to you by:
fabioz
Update of /cvsroot/pydev/org.python.pydev.refactoring/src/org/python/pydev/refactoring/ast/adapters/offsetstrategy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21605/src/org/python/pydev/refactoring/ast/adapters/offsetstrategy Modified Files: InitOffset.java AbstractOffsetStrategy.java EndOffset.java IOffsetStrategy.java BeginOffset.java Log Message: Synching to latest changes: Pydev <ul> <li><strong>Editor</strong>: Cursor settings no longer overridden</li> <li><strong>Code-completion</strong>: If __all__ is defined with runtime elements (and not only in a single assign statement), it's ignored for code-completion purposes</li> <li><strong>Debugger</strong>: Pythonpath the same in debug and regular modes (sys.path[0] is the same directory as the file run)</li> <li><strong>Debugger</strong>: Persist choices done in the debugger when files from the debugger are not found</li> <li><strong>Interpreter config</strong>: "email" automatically added to the "forced builtins"</li> <li><strong>Parser</strong>: Correctly recognizing absolute import with 3 or more levels</li> <li><strong>Syntax check</strong>: Option to do only on active editor</li> </ul> Also: tabs changed for spaces Index: BeginOffset.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.refactoring/src/org/python/pydev/refactoring/ast/adapters/offsetstrategy/BeginOffset.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BeginOffset.java 20 Oct 2007 19:31:02 -0000 1.3 --- BeginOffset.java 27 Sep 2008 20:00:51 -0000 1.4 *************** *** 22,46 **** public class BeginOffset extends AbstractOffsetStrategy { ! public BeginOffset(IASTNodeAdapter<? extends SimpleNode> adapter, IDocument doc) { ! super(adapter, doc); ! } ! protected int getLine() { ! SimpleNode node = adapter.getASTNode(); ! if(nodeHelper.isClassDef(node)){ ! ClassDef classNode = (ClassDef) node; ! Str strNode = NodeUtils.getNodeDocStringNode(node); ! ! if(strNode != null){ ! return NodeUtils.getLineEnd(strNode) -1; ! } ! ! FindLastLineVisitor findLastLineVisitor = new FindLastLineVisitor(); try { classNode.name.accept(findLastLineVisitor); if(classNode.bases != null){ ! for (SimpleNode n : classNode.bases) { ! n.accept(findLastLineVisitor); ! } } SimpleNode lastNode = findLastLineVisitor.getLastNode(); --- 22,46 ---- public class BeginOffset extends AbstractOffsetStrategy { ! public BeginOffset(IASTNodeAdapter<? extends SimpleNode> adapter, IDocument doc) { ! super(adapter, doc); ! } ! protected int getLine() { ! SimpleNode node = adapter.getASTNode(); ! if(nodeHelper.isClassDef(node)){ ! ClassDef classNode = (ClassDef) node; ! Str strNode = NodeUtils.getNodeDocStringNode(node); ! ! if(strNode != null){ ! return NodeUtils.getLineEnd(strNode) -1; ! } ! ! FindLastLineVisitor findLastLineVisitor = new FindLastLineVisitor(); try { classNode.name.accept(findLastLineVisitor); if(classNode.bases != null){ ! for (SimpleNode n : classNode.bases) { ! n.accept(findLastLineVisitor); ! } } SimpleNode lastNode = findLastLineVisitor.getLastNode(); *************** *** 56,75 **** } ! } ! ! int startLine = adapter.getNodeFirstLine() - 1; ! if (startLine < 0){ ! startLine = 0; ! } ! return startLine; ! } ! @Override ! protected int getLineIndendation() throws BadLocationException { ! if (adapter.getNodeBodyIndent() == 0) ! return 0; ! else { ! return doc.getLineLength(getLine()); ! } ! } } --- 56,75 ---- } ! } ! ! int startLine = adapter.getNodeFirstLine() - 1; ! if (startLine < 0){ ! startLine = 0; ! } ! return startLine; ! } ! @Override ! protected int getLineIndendation() throws BadLocationException { ! if (adapter.getNodeBodyIndent() == 0) ! return 0; ! else { ! return doc.getLineLength(getLine()); ! } ! } } Index: EndOffset.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.refactoring/src/org/python/pydev/refactoring/ast/adapters/offsetstrategy/EndOffset.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** EndOffset.java 20 Oct 2007 19:31:02 -0000 1.2 --- EndOffset.java 27 Sep 2008 20:00:51 -0000 1.3 *************** *** 15,28 **** public class EndOffset extends AbstractOffsetStrategy { ! public EndOffset(IASTNodeAdapter<? extends SimpleNode> adapter, IDocument doc) { ! super(adapter, doc); ! } ! protected int getLine() { ! int endLine = adapter.getNodeLastLine() - 1; ! if (endLine < 0) ! endLine = 0; ! return endLine; ! } } --- 15,28 ---- public class EndOffset extends AbstractOffsetStrategy { ! public EndOffset(IASTNodeAdapter<? extends SimpleNode> adapter, IDocument doc) { ! super(adapter, doc); ! } ! protected int getLine() { ! int endLine = adapter.getNodeLastLine() - 1; ! if (endLine < 0) ! endLine = 0; ! return endLine; ! } } Index: InitOffset.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.refactoring/src/org/python/pydev/refactoring/ast/adapters/offsetstrategy/InitOffset.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** InitOffset.java 20 Oct 2007 19:31:02 -0000 1.4 --- InitOffset.java 27 Sep 2008 20:00:50 -0000 1.5 *************** *** 20,44 **** public class InitOffset extends BeginOffset { ! public InitOffset(IASTNodeAdapter<? extends SimpleNode> adapter, IDocument doc) { ! super(adapter, doc); ! } ! @Override ! protected int getLine() { ! SimpleNode node = adapter.getASTNode(); ! if (nodeHelper.isClassDef(node)) { ! ClassDef classNode = (ClassDef) node; ! for (stmtType statement : classNode.body) { ! if (nodeHelper.isInit(statement)) { ! FunctionDef func = (FunctionDef) statement; ! stmtType lastStmt = func.body[func.body.length - 1]; ! LastLineVisitor visitor = VisitorFactory.createVisitor(LastLineVisitor.class, lastStmt); ! return visitor.getLastLine() - 1; ! } ! } ! } ! return super.getLine(); ! } } --- 20,44 ---- public class InitOffset extends BeginOffset { ! public InitOffset(IASTNodeAdapter<? extends SimpleNode> adapter, IDocument doc) { ! super(adapter, doc); ! } ! @Override ! protected int getLine() { ! SimpleNode node = adapter.getASTNode(); ! if (nodeHelper.isClassDef(node)) { ! ClassDef classNode = (ClassDef) node; ! for (stmtType statement : classNode.body) { ! if (nodeHelper.isInit(statement)) { ! FunctionDef func = (FunctionDef) statement; ! stmtType lastStmt = func.body[func.body.length - 1]; ! LastLineVisitor visitor = VisitorFactory.createVisitor(LastLineVisitor.class, lastStmt); ! return visitor.getLastLine() - 1; ! } ! } ! } ! return super.getLine(); ! } } Index: AbstractOffsetStrategy.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.refactoring/src/org/python/pydev/refactoring/ast/adapters/offsetstrategy/AbstractOffsetStrategy.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AbstractOffsetStrategy.java 20 Oct 2007 19:31:02 -0000 1.3 --- AbstractOffsetStrategy.java 27 Sep 2008 20:00:51 -0000 1.4 *************** *** 19,50 **** public abstract class AbstractOffsetStrategy implements IOffsetStrategy { ! protected IDocument doc; ! protected IASTNodeAdapter<? extends SimpleNode> adapter; ! protected NodeHelper nodeHelper; ! public AbstractOffsetStrategy(IASTNodeAdapter<? extends SimpleNode> adapter, IDocument doc) { ! this.adapter = adapter; ! this.doc = doc; ! this.nodeHelper = new NodeHelper(TextUtilities.getDefaultLineDelimiter(doc)); ! } ! protected IRegion getRegion() throws BadLocationException { ! return doc.getLineInformation(getLine()); ! } ! protected int getLineOffset() throws BadLocationException { ! return getRegion().getOffset(); ! } ! protected int getLineIndendation() throws BadLocationException { ! return doc.getLineLength(getLine()); ! } ! public int getOffset() throws BadLocationException { ! return getLineOffset() + getLineIndendation(); ! } ! protected abstract int getLine(); } --- 19,50 ---- public abstract class AbstractOffsetStrategy implements IOffsetStrategy { ! protected IDocument doc; ! protected IASTNodeAdapter<? extends SimpleNode> adapter; ! protected NodeHelper nodeHelper; ! public AbstractOffsetStrategy(IASTNodeAdapter<? extends SimpleNode> adapter, IDocument doc) { ! this.adapter = adapter; ! this.doc = doc; ! this.nodeHelper = new NodeHelper(TextUtilities.getDefaultLineDelimiter(doc)); ! } ! protected IRegion getRegion() throws BadLocationException { ! return doc.getLineInformation(getLine()); ! } ! protected int getLineOffset() throws BadLocationException { ! return getRegion().getOffset(); ! } ! protected int getLineIndendation() throws BadLocationException { ! return doc.getLineLength(getLine()); ! } ! public int getOffset() throws BadLocationException { ! return getLineOffset() + getLineIndendation(); ! } ! protected abstract int getLine(); } Index: IOffsetStrategy.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.refactoring/src/org/python/pydev/refactoring/ast/adapters/offsetstrategy/IOffsetStrategy.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IOffsetStrategy.java 20 Oct 2007 19:31:02 -0000 1.2 --- IOffsetStrategy.java 27 Sep 2008 20:00:51 -0000 1.3 *************** *** 12,22 **** public interface IOffsetStrategy { ! public static final int AFTERINIT = 1; ! public final static int BEGIN = 2; ! public final static int END = 4; ! public abstract int getOffset() throws BadLocationException; } --- 12,22 ---- public interface IOffsetStrategy { ! public static final int AFTERINIT = 1; ! public final static int BEGIN = 2; ! public final static int END = 4; ! public abstract int getOffset() throws BadLocationException; } |