initoffset.java
来自「Python Development Environment (Python I」· Java 代码 · 共 37 行
JAVA
37 行
package org.python.pydev.refactoring.ast.adapters.offsetstrategy;
import org.eclipse.jface.text.IDocument;
import org.python.pydev.parser.jython.SimpleNode;
import org.python.pydev.parser.jython.ast.ClassDef;
import org.python.pydev.parser.jython.ast.FunctionDef;
import org.python.pydev.parser.jython.ast.stmtType;
import org.python.pydev.refactoring.ast.adapters.IASTNodeAdapter;
import org.python.pydev.refactoring.ast.visitors.VisitorFactory;
import org.python.pydev.refactoring.ast.visitors.position.LastLineVisitor;
public class InitOffset extends BeginOffset {
public InitOffset(IASTNodeAdapter adapter, IDocument doc) {
super(adapter, doc);
}
@Override
protected int getLine() {
SimpleNode node = adapter.getASTNode();
if (nodeHelper.isClassDef(node)) {
ClassDef classNode = (ClassDef) node;
for (int i = 0; i < classNode.body.length; i++) {
if (nodeHelper.isInit(classNode.body[i])) {
FunctionDef func = (FunctionDef) classNode.body[i];
stmtType lastStmt = func.body[func.body.length - 1];
LastLineVisitor visitor = VisitorFactory.createVisitor(LastLineVisitor.class, lastStmt);
return visitor.getLastLine() - 1;
}
}
}
return super.getLine();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?