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 cce63ca..4f364ff 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 @@ -110,7 +110,8 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // return false; // } // }; - private static class ContextInformationWrapper implements IContextInformation, IContextInformationExtension { + private static class ContextInformationWrapper implements + IContextInformation, IContextInformationExtension { private final IContextInformation fContextInformation; private int fPosition; @@ -152,31 +153,31 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { } }; -// private class TableName { -// String fTableName; -// -// TableName() { -// fTableName = null; -// } -// -// /** -// * @return Returns the tableName. -// */ -// public String getTableName() { -// if (fTableName == null) { -// return ""; -// } -// return fTableName; -// } -// -// /** -// * @param tableName -// * The tableName to set. -// */ -// public void setTableName(String tableName) { -// fTableName = tableName; -// } -// } + // private class TableName { + // String fTableName; + // + // TableName() { + // fTableName = null; + // } + // + // /** + // * @return Returns the tableName. + // */ + // public String getTableName() { + // if (fTableName == null) { + // return ""; + // } + // return fTableName; + // } + // + // /** + // * @param tableName + // * The tableName to set. + // */ + // public void setTableName(String tableName) { + // fTableName = tableName; + // } + // } private char[] fProposalAutoActivationSet; @@ -193,7 +194,8 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { public PHPCompletionProcessor(IEditorPart editor) { fEditor = editor; fManager = PHPeclipsePlugin.getDefault().getWorkingCopyManager(); - TemplateContextType contextType = PHPeclipsePlugin.getDefault().getTemplateContextRegistry().getContextType("php"); //$NON-NLS-1$ + TemplateContextType contextType = PHPeclipsePlugin.getDefault() + .getTemplateContextRegistry().getContextType("php"); //$NON-NLS-1$ if (contextType != null) fTemplateEngine = new TemplateEngine(contextType); fComparator = new PHPCompletionProposalComparator(); @@ -201,9 +203,9 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { /** * Tells this processor to order the proposals alphabetically. - * + * * @param order - * true if proposals should be ordered. + * true if proposals should be ordered. */ public void orderProposalsAlphabetically(boolean order) { fComparator.setOrderAlphabetically(order); @@ -212,27 +214,32 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { /** * Sets this processor's set of characters triggering the activation of the * completion proposal computation. - * + * * @param activationSet - * the activation set + * the activation set */ - public void setCompletionProposalAutoActivationCharacters(char[] activationSet) { + public void setCompletionProposalAutoActivationCharacters( + char[] activationSet) { fProposalAutoActivationSet = activationSet; } /* * (non-Javadoc) Method declared on IContentAssistProcessor */ - public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) { - int contextInformationPosition = guessContextInformationPosition(viewer, documentOffset); - return internalComputeCompletionProposals(viewer, documentOffset, contextInformationPosition); + public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, + int documentOffset) { + int contextInformationPosition = guessContextInformationPosition( + viewer, documentOffset); + return internalComputeCompletionProposals(viewer, documentOffset, + contextInformationPosition); } - private int getLastToken(List list, ITextViewer viewer, int completionPosition, JavaContext context) { -// TableName tableName) { + private int getLastToken(List list, ITextViewer viewer, + int completionPosition, JavaContext context) { + // TableName tableName) { IDocument document = viewer.getDocument(); int start = context.getStart(); -// int end = context.getEnd(); + // int end = context.getEnd(); String startText; int lastSignificantToken = ITerminalSymbols.TokenNameEOF; try { @@ -261,8 +268,9 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { } int token = ITerminalSymbols.TokenNameEOF; // token = getLastSQLToken(startText); -// tableName.setTableName(getLastSQLTableName(startText)); - Scanner scanner = ToolFactory.createScanner(false, false, false); + // tableName.setTableName(getLastSQLTableName(startText)); + Scanner scanner = ToolFactory + .createScanner(false, false, false); scanner.setSource(startText.toCharArray()); scanner.setPHPMode(true); int beforeLastToken = ITerminalSymbols.TokenNameEOF; @@ -271,11 +279,14 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { try { token = scanner.getNextToken(); lastToken = token; - while (token != ITerminalSymbols.TokenNameERROR && token != ITerminalSymbols.TokenNameEOF) { + while (token != ITerminalSymbols.TokenNameERROR + && token != ITerminalSymbols.TokenNameEOF) { beforeLastToken = lastToken; if (token == ITerminalSymbols.TokenNameVariable) { ident = scanner.getCurrentTokenSource(); - if (ident.length == 5 && ident[0] == '$' && ident[1] == 't' && ident[2] == 'h' && ident[3] == 'i' && ident[4] == 's') { + if (ident.length == 5 && ident[0] == '$' + && ident[1] == 't' && ident[2] == 'h' + && ident[3] == 'i' && ident[4] == 's') { token = ITerminalSymbols.TokenNamethis_PHP_COMPLETION; } } @@ -319,165 +330,168 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { tableNameStart = currentCharacterPosition - 1; } else { if (!Scanner.isPHPIdentifierPart(ch)) { - return sqlText.substring(tableNameStart, currentCharacterPosition - 1); + return sqlText.substring(tableNameStart, + currentCharacterPosition - 1); } } } } catch (IndexOutOfBoundsException e) { if (tableNameStart >= 0) { - return sqlText.substring(tableNameStart, currentCharacterPosition - 1); + return sqlText.substring(tableNameStart, + currentCharacterPosition - 1); } } return ""; } -// private String getLastSQLTableName(String startText) { -// // scan for sql identifiers -// char ch = ' '; -// int currentSQLPosition = startText.length(); -// int identEnd = -1; -// String ident = null; -// try { -// while (true) { -// ch = startText.charAt(--currentSQLPosition); -// if (Scanner.isSQLIdentifierPart(ch)) { -// // if (ch >= 'A' && ch <= 'Z') { -// if (identEnd < 0) { -// identEnd = currentSQLPosition + 1; -// } -// // } else if (ch >= 'a' && ch <= 'z') { -// // if (identEnd < 0) { -// // identEnd = currentSQLPosition + 1; -// // } -// } else if (identEnd >= 0) { -// ident = startText.substring(currentSQLPosition + 1, identEnd); -// // select -- from -- where -- -// // update -- set -- where -- -// // insert into -- ( -- ) values ( -- ) -// if (ident.length() >= 4 && ident.length() <= 6) { -// ident = ident.toLowerCase(); -// switch (ident.length()) { -// // case 3 : -// // if (ident.equals("set")) { -// // // System.out.println("set"); -// // token = ITerminalSymbols.TokenNameSQLset; -// // return token; -// // } -// // break; -// case 4: -// if (ident.equals("from")) { -// // System.out.println("from"); -// return getSQLTableName(startText, identEnd); -// } else if (ident.equals("into")) { -// // System.out.println("into"); -// return getSQLTableName(startText, identEnd); -// } -// break; -// case 6: -// if (ident.equals("update")) { -// // System.out.println("update"); -// return getSQLTableName(startText, identEnd); -// } -// break; -// } -// } -// identEnd = -1; -// } else if (Character.isWhitespace(ch)) { -// } -// } -// } catch (IndexOutOfBoundsException e) { -// } -// return ""; -// } + // private String getLastSQLTableName(String startText) { + // // scan for sql identifiers + // char ch = ' '; + // int currentSQLPosition = startText.length(); + // int identEnd = -1; + // String ident = null; + // try { + // while (true) { + // ch = startText.charAt(--currentSQLPosition); + // if (Scanner.isSQLIdentifierPart(ch)) { + // // if (ch >= 'A' && ch <= 'Z') { + // if (identEnd < 0) { + // identEnd = currentSQLPosition + 1; + // } + // // } else if (ch >= 'a' && ch <= 'z') { + // // if (identEnd < 0) { + // // identEnd = currentSQLPosition + 1; + // // } + // } else if (identEnd >= 0) { + // ident = startText.substring(currentSQLPosition + 1, identEnd); + // // select -- from -- where -- + // // update -- set -- where -- + // // insert into -- ( -- ) values ( -- ) + // if (ident.length() >= 4 && ident.length() <= 6) { + // ident = ident.toLowerCase(); + // switch (ident.length()) { + // // case 3 : + // // if (ident.equals("set")) { + // // // System.out.println("set"); + // // token = ITerminalSymbols.TokenNameSQLset; + // // return token; + // // } + // // break; + // case 4: + // if (ident.equals("from")) { + // // System.out.println("from"); + // return getSQLTableName(startText, identEnd); + // } else if (ident.equals("into")) { + // // System.out.println("into"); + // return getSQLTableName(startText, identEnd); + // } + // break; + // case 6: + // if (ident.equals("update")) { + // // System.out.println("update"); + // return getSQLTableName(startText, identEnd); + // } + // break; + // } + // } + // identEnd = -1; + // } else if (Character.isWhitespace(ch)) { + // } + // } + // } catch (IndexOutOfBoundsException e) { + // } + // return ""; + // } /** * Detect the last significant SQL token in the text before the completion - * + * * @param startText */ -// private int getLastSQLToken(String startText) { -// int token; -// // scan for sql identifiers -// char ch = ' '; -// int currentSQLPosition = startText.length(); -// int identEnd = -1; -// String ident = null; -// try { -// while (true) { -// ch = startText.charAt(--currentSQLPosition); -// if (ch >= 'A' && ch <= 'Z') { -// if (identEnd < 0) { -// identEnd = currentSQLPosition + 1; -// } -// } else if (ch >= 'a' && ch <= 'z') { -// if (identEnd < 0) { -// identEnd = currentSQLPosition + 1; -// } -// } else if (identEnd >= 0) { -// ident = startText.substring(currentSQLPosition + 1, identEnd); -// // select -- from -- where -- -// // update -- set -- where -- -// // insert into -- ( -- ) values ( -- ) -// if (ident.length() >= 3 && ident.length() <= 6) { -// ident = ident.toLowerCase(); -// switch (ident.length()) { -// case 3: -// if (ident.equals("set")) { -// // System.out.println("set"); -// token = ITerminalSymbols.TokenNameSQLset; -// return token; -// } -// break; -// case 4: -// if (ident.equals("from")) { -// // System.out.println("from"); -// token = ITerminalSymbols.TokenNameSQLfrom; -// // getSQLTableName(); -// return token; -// } else if (ident.equals("into")) { -// // System.out.println("into"); -// token = ITerminalSymbols.TokenNameSQLinto; -// return token; -// } -// break; -// case 5: -// if (ident.equals("where")) { -// // System.out.println("where"); -// token = ITerminalSymbols.TokenNameSQLwhere; -// return token; -// } -// break; -// case 6: -// if (ident.equals("select")) { -// // System.out.println("select"); -// token = ITerminalSymbols.TokenNameSQLselect; -// return token; -// } else if (ident.equals("insert")) { -// // System.out.println("insert"); -// token = ITerminalSymbols.TokenNameSQLinsert; -// return token; -// } else if (ident.equals("update")) { -// // System.out.println("update"); -// token = ITerminalSymbols.TokenNameSQLupdate; -// return token; -// } else if (ident.equals("values")) { -// // System.out.println("values"); -// token = ITerminalSymbols.TokenNameSQLvalues; -// return token; -// } -// break; -// } -// } -// identEnd = -1; -// } -// } -// } catch (IndexOutOfBoundsException e) { -// } -// return ITerminalSymbols.TokenNameEOF; -// } - - private ICompletionProposal[] internalComputeCompletionProposals(ITextViewer viewer, int offset, int contextOffset) { - ICompilationUnit unit = fManager.getWorkingCopy(fEditor.getEditorInput()); + // private int getLastSQLToken(String startText) { + // int token; + // // scan for sql identifiers + // char ch = ' '; + // int currentSQLPosition = startText.length(); + // int identEnd = -1; + // String ident = null; + // try { + // while (true) { + // ch = startText.charAt(--currentSQLPosition); + // if (ch >= 'A' && ch <= 'Z') { + // if (identEnd < 0) { + // identEnd = currentSQLPosition + 1; + // } + // } else if (ch >= 'a' && ch <= 'z') { + // if (identEnd < 0) { + // identEnd = currentSQLPosition + 1; + // } + // } else if (identEnd >= 0) { + // ident = startText.substring(currentSQLPosition + 1, identEnd); + // // select -- from -- where -- + // // update -- set -- where -- + // // insert into -- ( -- ) values ( -- ) + // if (ident.length() >= 3 && ident.length() <= 6) { + // ident = ident.toLowerCase(); + // switch (ident.length()) { + // case 3: + // if (ident.equals("set")) { + // // System.out.println("set"); + // token = ITerminalSymbols.TokenNameSQLset; + // return token; + // } + // break; + // case 4: + // if (ident.equals("from")) { + // // System.out.println("from"); + // token = ITerminalSymbols.TokenNameSQLfrom; + // // getSQLTableName(); + // return token; + // } else if (ident.equals("into")) { + // // System.out.println("into"); + // token = ITerminalSymbols.TokenNameSQLinto; + // return token; + // } + // break; + // case 5: + // if (ident.equals("where")) { + // // System.out.println("where"); + // token = ITerminalSymbols.TokenNameSQLwhere; + // return token; + // } + // break; + // case 6: + // if (ident.equals("select")) { + // // System.out.println("select"); + // token = ITerminalSymbols.TokenNameSQLselect; + // return token; + // } else if (ident.equals("insert")) { + // // System.out.println("insert"); + // token = ITerminalSymbols.TokenNameSQLinsert; + // return token; + // } else if (ident.equals("update")) { + // // System.out.println("update"); + // token = ITerminalSymbols.TokenNameSQLupdate; + // return token; + // } else if (ident.equals("values")) { + // // System.out.println("values"); + // token = ITerminalSymbols.TokenNameSQLvalues; + // return token; + // } + // break; + // } + // } + // identEnd = -1; + // } + // } + // } catch (IndexOutOfBoundsException e) { + // } + // return ITerminalSymbols.TokenNameEOF; + // } + private ICompletionProposal[] internalComputeCompletionProposals( + ITextViewer viewer, int offset, int contextOffset) { + ICompilationUnit unit = fManager.getWorkingCopy(fEditor + .getEditorInput()); IDocument document = viewer.getDocument(); IFile file = null; IProject project = null; @@ -485,12 +499,11 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { PHPEditor editor = null; if (fEditor != null && (fEditor instanceof PHPEditor)) { editor = (PHPEditor) fEditor; - IEditorInput editorInput=editor.getEditorInput(); + IEditorInput editorInput = editor.getEditorInput(); if (editorInput instanceof IFileEditorInput) { file = ((IFileEditorInput) editorInput).getFile(); project = file.getProject(); - } - else { + } else { return new ICompletionProposal[0]; } } @@ -510,7 +523,7 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // restrict auto activation for '>' character to '->' token try { - char ch = document.getChar(offset-1); + char ch = document.getChar(offset - 1); if (ch == '>') { for (int i = 0; i < fProposalAutoActivationSet.length; i++) { ch = fProposalAutoActivationSet[i]; @@ -528,24 +541,28 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { } } - JavaContextType phpContextType = (JavaContextType) PHPeclipsePlugin.getDefault().getTemplateContextRegistry().getContextType( - "php"); //$NON-NLS-1$ - JavaContext context = (JavaContext) phpContextType.createContext(document, offset, selection.y, unit); + JavaContextType phpContextType = (JavaContextType) PHPeclipsePlugin + .getDefault().getTemplateContextRegistry() + .getContextType("php"); //$NON-NLS-1$ + JavaContext context = (JavaContext) phpContextType.createContext( + document, offset, selection.y, unit); context.setVariable("selection", selectedText); //$NON-NLS-1$ String prefix = context.getKey(); HashMap methodVariables = null; // HashMap typeVariables = null; HashMap unitVariables = null; - ICompilationUnit compilationUnit = (ICompilationUnit) context.findEnclosingElement(IJavaElement.COMPILATION_UNIT); -// if (compilationUnit != null) { -// unitVariables = ((CompilationUnit) compilationUnit).variables; -// } - IType type = (IType) context.findEnclosingElement(IJavaElement.TYPE); - if (type != null) { -// typeVariables = ((SourceType) type).variables; - } - IMethod method = (IMethod) context.findEnclosingElement(IJavaElement.METHOD); + ICompilationUnit compilationUnit = (ICompilationUnit) context + .findEnclosingElement(IJavaElement.COMPILATION_UNIT); + // if (compilationUnit != null) { + // unitVariables = ((CompilationUnit) compilationUnit).variables; + // } + IType type = (IType) context.findEnclosingElement(IJavaElement.TYPE); + if (type != null) { + // typeVariables = ((SourceType) type).variables; + } + IMethod method = (IMethod) context + .findEnclosingElement(IJavaElement.METHOD); // if (method != null) { // methodVariables = ((SourceMethod) method).variables; // } @@ -559,23 +576,29 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { HashSet localVariables = new HashSet(); if (compilationUnit != null) { unitVariables = getUnitVariables(unitVariables, compilationUnit); - getVariableProposals(localVariables, viewer, project, context, unitVariables, lowerCasePrefix, 94); + getVariableProposals(localVariables, viewer, project, context, + unitVariables, lowerCasePrefix, 94); } if (method != null) { methodVariables = getMethodVariables(methodVariables, method); - getVariableProposals(localVariables, viewer, project, context, methodVariables, lowerCasePrefix, 99); + getVariableProposals(localVariables, viewer, project, context, + methodVariables, lowerCasePrefix, 99); } if (!localVariables.isEmpty()) { - localVariableResults = (IPHPCompletionProposal[]) localVariables.toArray(new IPHPCompletionProposal[localVariables.size()]); + localVariableResults = (IPHPCompletionProposal[]) localVariables + .toArray(new IPHPCompletionProposal[localVariables + .size()]); } } -// TableName sqlTable = new TableName(); + // TableName sqlTable = new TableName(); ArrayList list = new ArrayList(); list.add(null); - int lastSignificantToken = getLastToken(list, viewer, offset, context); //, sqlTable); + int lastSignificantToken = getLastToken(list, viewer, offset, context); // , + // sqlTable); boolean useClassMembers = (lastSignificantToken == ITerminalSymbols.TokenNameMINUS_GREATER) - || (lastSignificantToken == ITerminalSymbols.TokenNameVariable) || (lastSignificantToken == ITerminalSymbols.TokenNamenew) + || (lastSignificantToken == ITerminalSymbols.TokenNameVariable) + || (lastSignificantToken == ITerminalSymbols.TokenNamenew) || (lastSignificantToken == ITerminalSymbols.TokenNamethis_PHP_COMPLETION); if (fTemplateEngine != null) { @@ -593,23 +616,29 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { IPHPCompletionProposal[] declarationResults = new IPHPCompletionProposal[0]; if (project != null) { DeclarationEngine declarationEngine; - JavaContextType contextType = (JavaContextType) PHPeclipsePlugin.getDefault().getTemplateContextRegistry().getContextType( - "php"); //$NON-NLS-1$ + JavaContextType contextType = (JavaContextType) PHPeclipsePlugin + .getDefault().getTemplateContextRegistry() + .getContextType("php"); //$NON-NLS-1$ if (contextType != null) { - IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault().getIndexManager(project); + IdentifierIndexManager indexManager = PHPeclipsePlugin + .getDefault().getIndexManager(project); SortedMap sortedMap; - declarationEngine = new DeclarationEngine(project, contextType, lastSignificantToken, file); + declarationEngine = new DeclarationEngine(project, + contextType, lastSignificantToken, file); if (lastSignificantToken == ITerminalSymbols.TokenNamethis_PHP_COMPLETION) { // complete '$this->' sortedMap = indexManager.getIdentifiers(file); - declarationEngine.completeObject(viewer, offset, sortedMap, unit); + declarationEngine.completeObject(viewer, offset, + sortedMap, unit); } else { String typeRef = null; char[] varName = (char[]) list.get(0); if (varName != null) { if (method != null) { - methodVariables = getMethodVariables(methodVariables, method); - VariableInfo info = (VariableInfo) methodVariables.get(new String(varName)); + methodVariables = getMethodVariables( + methodVariables, method); + VariableInfo info = (VariableInfo) methodVariables + .get(new String(varName)); if (info != null && info.typeIdentifier != null) { typeRef = new String(info.typeIdentifier); } @@ -618,11 +647,13 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { if (typeRef != null) { // complete '$variable->' with type information sortedMap = indexManager.getIdentifiers(typeRef); - declarationEngine.completeObject(viewer, offset, sortedMap, unit); + declarationEngine.completeObject(viewer, offset, + sortedMap, unit); } else { // complete '$variable->' without type information sortedMap = indexManager.getIdentifierMap(); - declarationEngine.complete(viewer, offset, sortedMap, unit); + declarationEngine.complete(viewer, offset, + sortedMap, unit); } } declarationResults = declarationEngine.getResults(); @@ -633,8 +664,9 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { IPHPCompletionProposal[] builtinResults = new IPHPCompletionProposal[0]; if ((!useClassMembers) && syntaxbuffer != null) { BuiltInEngine builtinEngine; - JavaContextType contextType = (JavaContextType) PHPeclipsePlugin.getDefault().getTemplateContextRegistry().getContextType( - "php"); //$NON-NLS-1$ + JavaContextType contextType = (JavaContextType) PHPeclipsePlugin + .getDefault().getTemplateContextRegistry() + .getContextType("php"); //$NON-NLS-1$ if (contextType != null) { builtinEngine = new BuiltInEngine(contextType); builtinEngine.complete(viewer, offset, syntaxbuffer, unit); @@ -648,28 +680,40 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // } // concatenate the result arrays IPHPCompletionProposal[] total; - total = new IPHPCompletionProposal[localVariableResults.length + templateResults.length + identifierResults.length + total = new IPHPCompletionProposal[localVariableResults.length + + templateResults.length + identifierResults.length + builtinResults.length + declarationResults.length];// + // sqlResults.length]; - System.arraycopy(templateResults, 0, total, 0, templateResults.length); - System.arraycopy(identifierResults, 0, total, templateResults.length, identifierResults.length); - System.arraycopy(builtinResults, 0, total, templateResults.length + identifierResults.length, builtinResults.length); - System.arraycopy(declarationResults, 0, total, templateResults.length + identifierResults.length + builtinResults.length, - declarationResults.length); + System.arraycopy(templateResults, 0, total, 0, + templateResults.length); + System.arraycopy(identifierResults, 0, total, + templateResults.length, identifierResults.length); + System.arraycopy(builtinResults, 0, total, templateResults.length + + identifierResults.length, builtinResults.length); + System.arraycopy(declarationResults, 0, total, + templateResults.length + identifierResults.length + + builtinResults.length, declarationResults.length); // System.arraycopy(sqlResults, 0, total, templateResults.length + // identifierResults.length + builtinResults.length // + declarationResults.length, sqlResults.length); - // System.arraycopy(localVariableResults, 0, total, templateResults.length + // System.arraycopy(localVariableResults, 0, total, + // templateResults.length // + identifierResults.length + builtinResults.length // + declarationResults.length + sqlResults.length, // localVariableResults.length); - System.arraycopy(localVariableResults, 0, total, templateResults.length + identifierResults.length + builtinResults.length - + declarationResults.length, localVariableResults.length); + System + .arraycopy(localVariableResults, 0, total, + templateResults.length + identifierResults.length + + builtinResults.length + + declarationResults.length, + localVariableResults.length); results = total; -// fNumberOfComputedResults = (results == null ? 0 : results.length); + // fNumberOfComputedResults = (results == null ? 0 : + // results.length); /* - * Order here and not in result collector to make sure that the order - * applies to all proposals and not just those of the compilation unit. + * Order here and not in result collector to make sure that the + * order applies to all proposals and not just those of the + * compilation unit. */ return order(results); } @@ -680,16 +724,20 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { * @param unitVariables * @param unit */ - private HashMap getUnitVariables(HashMap unitVariables, ICompilationUnit unit) { + private HashMap getUnitVariables(HashMap unitVariables, + ICompilationUnit unit) { if (unitVariables == null) { try { String unitText = unit.getSource(); unitVariables = new HashMap(); - ProblemReporter problemReporter = new ProblemReporter(DefaultErrorHandlingPolicies.exitAfterAllProblems(), - new CompilerOptions(JavaCore.getOptions()), new DefaultProblemFactory()); + ProblemReporter problemReporter = new ProblemReporter( + DefaultErrorHandlingPolicies.exitAfterAllProblems(), + new CompilerOptions(JavaCore.getOptions()), + new DefaultProblemFactory()); UnitParser parser = new UnitParser(problemReporter); - parser.compilationUnit = new CompilationUnitDeclaration(problemReporter, null, unitText.length()); + parser.compilationUnit = new CompilationUnitDeclaration( + problemReporter, null, unitText.length()); parser.parse(unitText, unitVariables); } catch (Exception e) { @@ -710,10 +758,13 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { try { String methodText = method.getSource(); methodVariables = new HashMap(); - ProblemReporter problemReporter = new ProblemReporter(DefaultErrorHandlingPolicies.exitAfterAllProblems(), - new CompilerOptions(JavaCore.getOptions()), new DefaultProblemFactory()); + ProblemReporter problemReporter = new ProblemReporter( + DefaultErrorHandlingPolicies.exitAfterAllProblems(), + new CompilerOptions(JavaCore.getOptions()), + new DefaultProblemFactory()); UnitParser parser = new UnitParser(problemReporter); - parser.compilationUnit = new CompilationUnitDeclaration(problemReporter, null, methodText.length()); + parser.compilationUnit = new CompilationUnitDeclaration( + problemReporter, null, methodText.length()); parser.parseFunction(methodText, methodVariables); } catch (Exception e) { // TODO Auto-generated catch block @@ -731,7 +782,8 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { * @param prefix * @return */ - private void getVariableProposals(HashSet localVariables, ITextViewer viewer, IProject project, JavaContext context, + private void getVariableProposals(HashSet localVariables, + ITextViewer viewer, IProject project, JavaContext context, HashMap variables, String prefix, int relevance) { // try { int start = context.getStart(); @@ -739,7 +791,8 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { IRegion region = new Region(start, end - start); // IMethod method = (IMethod) // context.findEnclosingElement(IJavaElement.METHOD); - // if (method != null && (method instanceof SourceMethod) && ((SourceMethod) + // if (method != null && (method instanceof SourceMethod) && + // ((SourceMethod) // method).variables != null) { // HashMap map = ((SourceMethod) method).variables; Set set = variables.keySet(); @@ -751,7 +804,8 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { if (varName.length() >= prefix.length()) { matchesVarName = true; for (int i = 0; i < prefix.length(); i++) { - if (prefix.charAt(i) != Character.toLowerCase(varName.charAt(i))) { + if (prefix.charAt(i) != Character.toLowerCase(varName + .charAt(i))) { matchesVarName = false; break; } @@ -759,10 +813,12 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { if (matchesVarName) { LocalVariableProposal prop; // if (varName.length == prefix.length()) { - // prop = new LocalVariableProposal(new String(varName), region, + // prop = new LocalVariableProposal(new String(varName), + // region, // viewer, relevance-10); // } else { - prop = new LocalVariableProposal(new String(varName), region, viewer, relevance); + prop = new LocalVariableProposal(new String(varName), + region, viewer, relevance); // } localVariables.add(prop); } @@ -803,7 +859,8 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { // } // } // } catch (Throwable e) { - // // ignore - Syntax exceptions could occur, if there are syntax errors ! + // // ignore - Syntax exceptions could occur, if there are syntax errors + // ! // } } @@ -816,7 +873,8 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { * @param sqlResults * @return */ - // private ICompletionProposal[] getSQLProposals(ITextViewer viewer, IProject + // private ICompletionProposal[] getSQLProposals(ITextViewer viewer, + // IProject // project, DocumentTemplateContext context, // String prefix, TableName sqlTable) { // ICompletionProposal[] sqlResults = new ICompletionProposal[0]; @@ -935,19 +993,25 @@ public class PHPCompletionProcessor implements IContentAssistProcessor { /** * @see IContentAssistProcessor#computeContextInformation(ITextViewer, int) */ - public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) { - int contextInformationPosition = guessContextInformationPosition(viewer, offset); + public IContextInformation[] computeContextInformation(ITextViewer viewer, + int offset) { + int contextInformationPosition = guessContextInformationPosition( + viewer, offset); List result = addContextInformations(viewer, contextInformationPosition); - return (IContextInformation[]) result.toArray(new IContextInformation[result.size()]); + return (IContextInformation[]) result + .toArray(new IContextInformation[result.size()]); } private List addContextInformations(ITextViewer viewer, int offset) { - ICompletionProposal[] proposals = internalComputeCompletionProposals(viewer, offset, -1); + ICompletionProposal[] proposals = internalComputeCompletionProposals( + viewer, offset, -1); List result = new ArrayList(); for (int i = 0; i < proposals.length; i++) { - IContextInformation contextInformation = proposals[i].getContextInformation(); + IContextInformation contextInformation = proposals[i] + .getContextInformation(); if (contextInformation != null) { - ContextInformationWrapper wrapper = new ContextInformationWrapper(contextInformation); + ContextInformationWrapper wrapper = new ContextInformationWrapper( + contextInformation); wrapper.setContextInformationPosition(offset); result.add(wrapper); }