pynextmethod.java

来自「Python Development Environment (Python I」· Java 代码 · 共 47 行

JAVA
47
字号
/*
 * @author: fabioz
 * Created: February 2004
 * License: Common Public License v1.0
 */

package org.python.pydev.editor.actions;

import java.util.Iterator;

import org.python.pydev.parser.jython.SimpleNode;
import org.python.pydev.parser.visitors.scope.ASTEntry;
import org.python.pydev.parser.visitors.scope.EasyASTIteratorVisitor;

/**
 * One-trick pony, finds the next method.
 */
public class PyNextMethod extends PyMethodNavigation{

	/**
	 * Gets the next method/class definition
     * @param line is in doc coords
	 */
	public ASTEntry getSelect(SimpleNode ast, int line) {
        EasyASTIteratorVisitor visitor = EasyASTIteratorVisitor.create(ast);
        Iterator<ASTEntry> classesAndMethodsIterator = visitor.getClassesAndMethodsIterator();
        while(classesAndMethodsIterator.hasNext()){
            ASTEntry entry = classesAndMethodsIterator.next();
            SimpleNode nameNode = getNameNode(entry);
            if(nameNode.beginLine-1 > line ){
                return entry;
            }
        }
        return null;
	}

    @Override
    protected boolean goToEndOfFile() {
        return true;
    }

    @Override
    protected boolean goToStartOfFile() {
        return false;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?