X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCompletionProcessor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCompletionProcessor.java index 4f364ff..4638f76 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCompletionProcessor.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCompletionProcessor.java @@ -27,6 +27,7 @@ import net.sourceforge.phpdt.core.IType; import net.sourceforge.phpdt.core.JavaCore; import net.sourceforge.phpdt.core.ToolFactory; import net.sourceforge.phpdt.core.compiler.ITerminalSymbols; +import net.sourceforge.phpdt.core.compiler.ITerminalSymbols.TokenName; import net.sourceforge.phpdt.core.compiler.InvalidInputException; import net.sourceforge.phpdt.internal.compiler.DefaultErrorHandlingPolicies; import net.sourceforge.phpdt.internal.compiler.ast.CompilationUnitDeclaration; @@ -234,27 +235,27 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { contextInformationPosition); } - private int getLastToken(List list, ITextViewer viewer, + private TokenName getLastToken(List list, ITextViewer viewer, int completionPosition, JavaContext context) { // TableName tableName) { IDocument document = viewer.getDocument(); int start = context.getStart(); // int end = context.getEnd(); String startText; - int lastSignificantToken = ITerminalSymbols.TokenNameEOF; + TokenName lastSignificantToken = ITerminalSymbols.TokenName.EOF; try { // begin search 2 lines behind of this int j = start; if (j != 0) { char ch; - while (j-- > 0) { - ch = document.getChar(j); + while (j > 0) { + ch = document.getChar(--j); if (ch == '\n') { break; } } - while (j-- > 0) { - ch = document.getChar(j); + while (j > 0) { + ch = document.getChar(--j); if (ch == '\n') { break; } @@ -266,28 +267,28 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { if (Scanner.DEBUG) { System.out.println(startText); } - int token = ITerminalSymbols.TokenNameEOF; + TokenName token = ITerminalSymbols.TokenName.EOF; // token = getLastSQLToken(startText); // tableName.setTableName(getLastSQLTableName(startText)); Scanner scanner = ToolFactory .createScanner(false, false, false); scanner.setSource(startText.toCharArray()); scanner.setPHPMode(true); - int beforeLastToken = ITerminalSymbols.TokenNameEOF; - int lastToken = ITerminalSymbols.TokenNameEOF; + TokenName beforeLastToken = ITerminalSymbols.TokenName.EOF; + TokenName lastToken = ITerminalSymbols.TokenName.EOF; char[] ident = null; try { token = scanner.getNextToken(); lastToken = token; - while (token != ITerminalSymbols.TokenNameERROR - && token != ITerminalSymbols.TokenNameEOF) { + while (token != ITerminalSymbols.TokenName.ERROR + && token != ITerminalSymbols.TokenName.EOF) { beforeLastToken = lastToken; - if (token == ITerminalSymbols.TokenNameVariable) { + if (token == ITerminalSymbols.TokenName.VARIABLE) { ident = scanner.getCurrentTokenSource(); if (ident.length == 5 && ident[0] == '$' && ident[1] == 't' && ident[2] == 'h' && ident[3] == 'i' && ident[4] == 's') { - token = ITerminalSymbols.TokenNamethis_PHP_COMPLETION; + token = ITerminalSymbols.TokenName.THIS_PHP_COMPLETION; } } lastToken = token; @@ -298,19 +299,19 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { } catch (SyntaxError e) { } switch (lastToken) { - case ITerminalSymbols.TokenNameMINUS_GREATER: + case MINUS_GREATER: // dereferencing operator '->' found - lastSignificantToken = ITerminalSymbols.TokenNameMINUS_GREATER; - if (beforeLastToken == ITerminalSymbols.TokenNameVariable) { - lastSignificantToken = ITerminalSymbols.TokenNameVariable; + lastSignificantToken = ITerminalSymbols.TokenName.MINUS_GREATER; + if (beforeLastToken == ITerminalSymbols.TokenName.VARIABLE) { + lastSignificantToken = ITerminalSymbols.TokenName.VARIABLE; list.set(0, ident); - } else if (beforeLastToken == ITerminalSymbols.TokenNamethis_PHP_COMPLETION) { - lastSignificantToken = ITerminalSymbols.TokenNamethis_PHP_COMPLETION; + } else if (beforeLastToken == ITerminalSymbols.TokenName.THIS_PHP_COMPLETION) { + lastSignificantToken = ITerminalSymbols.TokenName.THIS_PHP_COMPLETION; list.set(0, ident); } break; - case ITerminalSymbols.TokenNamenew: - lastSignificantToken = ITerminalSymbols.TokenNamenew; + case NEW: + lastSignificantToken = ITerminalSymbols.TokenName.NEW; break; } } @@ -373,7 +374,7 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // // case 3 : // // if (ident.equals("set")) { // // // System.out.println("set"); - // // token = ITerminalSymbols.TokenNameSQLset; + // // token = ITerminalSymbols.TokenName.SQLset; // // return token; // // } // // break; @@ -437,45 +438,45 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // case 3: // if (ident.equals("set")) { // // System.out.println("set"); - // token = ITerminalSymbols.TokenNameSQLset; + // token = ITerminalSymbols.TokenName.SQLset; // return token; // } // break; // case 4: // if (ident.equals("from")) { // // System.out.println("from"); - // token = ITerminalSymbols.TokenNameSQLfrom; + // token = ITerminalSymbols.TokenName.SQLfrom; // // getSQLTableName(); // return token; // } else if (ident.equals("into")) { // // System.out.println("into"); - // token = ITerminalSymbols.TokenNameSQLinto; + // token = ITerminalSymbols.TokenName.SQLinto; // return token; // } // break; // case 5: // if (ident.equals("where")) { // // System.out.println("where"); - // token = ITerminalSymbols.TokenNameSQLwhere; + // token = ITerminalSymbols.TokenName.SQLwhere; // return token; // } // break; // case 6: // if (ident.equals("select")) { // // System.out.println("select"); - // token = ITerminalSymbols.TokenNameSQLselect; + // token = ITerminalSymbols.TokenName.SQLselect; // return token; // } else if (ident.equals("insert")) { // // System.out.println("insert"); - // token = ITerminalSymbols.TokenNameSQLinsert; + // token = ITerminalSymbols.TokenName.SQLinsert; // return token; // } else if (ident.equals("update")) { // // System.out.println("update"); - // token = ITerminalSymbols.TokenNameSQLupdate; + // token = ITerminalSymbols.TokenName.SQLupdate; // return token; // } else if (ident.equals("values")) { // // System.out.println("values"); - // token = ITerminalSymbols.TokenNameSQLvalues; + // token = ITerminalSymbols.TokenName.SQLvalues; // return token; // } // break; @@ -486,7 +487,7 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // } // } catch (IndexOutOfBoundsException e) { // } - // return ITerminalSymbols.TokenNameEOF; + // return ITerminalSymbols.TokenName.EOF; // } private ICompletionProposal[] internalComputeCompletionProposals( ITextViewer viewer, int offset, int contextOffset) { @@ -594,12 +595,12 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // TableName sqlTable = new TableName(); ArrayList list = new ArrayList(); list.add(null); - int lastSignificantToken = getLastToken(list, viewer, offset, context); // , + TokenName lastSignificantToken = getLastToken(list, viewer, offset, context); // , // sqlTable); - boolean useClassMembers = (lastSignificantToken == ITerminalSymbols.TokenNameMINUS_GREATER) - || (lastSignificantToken == ITerminalSymbols.TokenNameVariable) - || (lastSignificantToken == ITerminalSymbols.TokenNamenew) - || (lastSignificantToken == ITerminalSymbols.TokenNamethis_PHP_COMPLETION); + boolean useClassMembers = (lastSignificantToken == ITerminalSymbols.TokenName.MINUS_GREATER) + || (lastSignificantToken == ITerminalSymbols.TokenName.VARIABLE) + || (lastSignificantToken == ITerminalSymbols.TokenName.NEW) + || (lastSignificantToken == ITerminalSymbols.TokenName.THIS_PHP_COMPLETION); if (fTemplateEngine != null) { IPHPCompletionProposal[] templateResults = new IPHPCompletionProposal[0]; @@ -625,7 +626,7 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { SortedMap sortedMap; declarationEngine = new DeclarationEngine(project, contextType, lastSignificantToken, file); - if (lastSignificantToken == ITerminalSymbols.TokenNamethis_PHP_COMPLETION) { + if (lastSignificantToken == ITerminalSymbols.TokenName.THIS_PHP_COMPLETION) { // complete '$this->' sortedMap = indexManager.getIdentifiers(file); declarationEngine.completeObject(viewer, offset, @@ -834,9 +835,9 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // Scanner scanner = new Scanner(); // scanner.setSource(source); // scanner.phpMode = true; - // int token = Scanner.TokenNameWHITESPACE; - // while ((token = scanner.getNextToken()) != Scanner.TokenNameEOF) { - // if (token == Scanner.TokenNameVariable) { + // int token = Scanner.TokenName.WHITESPACE; + // while ((token = scanner.getNextToken()) != Scanner.TokenName.EOF) { + // if (token == Scanner.TokenName.Variable) { // varName = scanner.getCurrentTokenSource(); // if (varName.length >= prefix.length()) { // matchesVarName = true;