[Pydev-cvs] org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited/visitors Scope.jav
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2005-02-16 16:49:02
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited/visitors In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9724/src/org/python/pydev/editor/codecompletion/revisited/visitors Modified Files: Scope.java FindScopeVisitor.java AbstractVisitor.java Log Message: Code completion improvement Index: Scope.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited/visitors/Scope.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Scope.java 20 Jan 2005 14:47:59 -0000 1.1 --- Scope.java 16 Feb 2005 16:48:50 -0000 1.2 *************** *** 6,13 **** --- 6,19 ---- package org.python.pydev.editor.codecompletion.revisited.visitors; + import java.util.ArrayList; import java.util.Iterator; + import java.util.List; import java.util.Stack; import org.python.parser.SimpleNode; + import org.python.parser.ast.FunctionDef; + import org.python.pydev.editor.codecompletion.PyCodeCompletion; + import org.python.pydev.editor.codecompletion.revisited.IToken; + import org.python.pydev.editor.codecompletion.revisited.modules.SourceToken; /** *************** *** 80,82 **** --- 86,119 ---- return true; } + + public IToken[] getLocalTokens(int line, int col){ + List comps = new ArrayList(); + + for (Iterator iter = this.scope.iterator(); iter.hasNext();) { + SimpleNode element = (SimpleNode) iter.next(); + + if (element instanceof FunctionDef) { + FunctionDef f = (FunctionDef) element; + for (int i = 0; i < f.args.args.length; i++) { + String s = AbstractVisitor.getRepresentationString(f.args.args[i]); + comps.add(new SourceToken(f.args.args[i], s, "", "", PyCodeCompletion.TYPE_PARAM)); + } + } + } + + + return (SourceToken[]) comps.toArray(new SourceToken[0]); + } } + + + + + + + + + + + + Index: AbstractVisitor.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited/visitors/AbstractVisitor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AbstractVisitor.java 20 Jan 2005 14:47:59 -0000 1.2 --- AbstractVisitor.java 16 Feb 2005 16:48:50 -0000 1.3 *************** *** 14,17 **** --- 14,19 ---- import org.python.parser.ast.Call; import org.python.parser.ast.Expr; + import org.python.parser.ast.ListComp; + import org.python.parser.ast.Num; import org.python.parser.ast.Str; import org.python.parser.ast.VisitorBase; *************** *** 72,76 **** --- 74,89 ---- }else if (node instanceof Call){ return getRepresentationString(((Call)node).func); + + }else if (node instanceof org.python.parser.ast.List || node instanceof ListComp){ + return "[]"; + + }else if (node instanceof Str){ + return "'"+((Str)node).s+"'"; + + }else if (node instanceof Num){ + return ((Num)node).n.toString(); + } + System.err.println("Unable to get representation to:"+node); return null; } Index: FindScopeVisitor.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/editor/codecompletion/revisited/visitors/FindScopeVisitor.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FindScopeVisitor.java 20 Jan 2005 14:47:59 -0000 1.1 --- FindScopeVisitor.java 16 Feb 2005 16:48:50 -0000 1.2 *************** *** 25,29 **** * This is the scope. */ ! public Scope scope; /** --- 25,29 ---- * This is the scope. */ ! public Scope scope = new Scope(new Stack()); /** *************** *** 60,64 **** if(! found){ ! if(line <= node.beginLine - 1 ){ //scope is locked at this time. found = true; --- 60,64 ---- if(! found){ ! if(line <= node.beginLine ){ //scope is locked at this time. found = true; |