X-Git-Url: http://secure.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 2de1ec7..ebca77f 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
@@ -29,6 +29,7 @@ import net.sourceforge.phpdt.core.ToolFactory;
import net.sourceforge.phpdt.core.compiler.ITerminalSymbols;
import net.sourceforge.phpdt.core.compiler.InvalidInputException;
import net.sourceforge.phpdt.internal.compiler.DefaultErrorHandlingPolicies;
+import net.sourceforge.phpdt.internal.compiler.ast.CompilationUnitDeclaration;
import net.sourceforge.phpdt.internal.compiler.impl.CompilerOptions;
import net.sourceforge.phpdt.internal.compiler.parser.Scanner;
import net.sourceforge.phpdt.internal.compiler.parser.SyntaxError;
@@ -49,7 +50,6 @@ import net.sourceforge.phpdt.internal.ui.text.template.contentassist.TemplateEng
import net.sourceforge.phpdt.ui.IWorkingCopyManager;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
import net.sourceforge.phpeclipse.builder.IdentifierIndexManager;
-import net.sourceforge.phpeclipse.internal.compiler.ast.CompilationUnitDeclaration;
import net.sourceforge.phpeclipse.phpeditor.PHPEditor;
import net.sourceforge.phpeclipse.phpeditor.PHPSyntaxRdr;
@@ -68,12 +68,10 @@ import org.eclipse.jface.text.contentassist.IContextInformationValidator;
import org.eclipse.jface.text.templates.TemplateContextType;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IFileEditorInput;
-// import com.quantum.ExternalInterface;
-// import com.quantum.util.connection.NotConnectedException;
-
/**
* Example PHP completion processor.
*/
@@ -112,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;
@@ -154,44 +153,40 @@ 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;
- protected IContextInformationValidator fValidator = null;// = new
-
- // Validator();
+ protected IContextInformationValidator fValidator = null;
private TemplateEngine fTemplateEngine;
private PHPCompletionProposalComparator fComparator;
- private int fNumberOfComputedResults = 0;
-
private IEditorPart fEditor;
protected IWorkingCopyManager fManager;
@@ -199,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();
@@ -209,7 +205,7 @@ 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);
@@ -220,24 +216,30 @@ public class PHPCompletionProcessor implements IContentAssistProcessor {
* 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 {
@@ -245,14 +247,14 @@ public class PHPCompletionProcessor implements IContentAssistProcessor {
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,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;
@@ -276,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;
}
}
@@ -324,199 +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) {
- int token;
- // scan for sql identifiers
- char ch = ' ';
- int currentSQLPosition = startText.length();
- int identEnd = -1;
- String ident = null;
- boolean whiteSpace = true;
- 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");
- token = ITerminalSymbols.TokenNameSQLfrom;
- return getSQLTableName(startText, identEnd);
- } else if (ident.equals("into")) {
- // System.out.println("into");
- token = ITerminalSymbols.TokenNameSQLinto;
- return getSQLTableName(startText, identEnd);
- }
- 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 getSQLTableName(startText, identEnd);
- }
- // else if (ident.equals("values")) {
- // // System.out.println("values");
- // token = ITerminalSymbols.TokenNameSQLvalues;
- // return token;
- // }
- break;
- }
- }
- whiteSpace = false;
- identEnd = -1;
- } else if (Character.isWhitespace(ch)) {
- } else {
- whiteSpace = false;
- }
- }
- } 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;
- boolean whiteSpace = true;
- 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;
- }
- }
- whiteSpace = false;
- identEnd = -1;
- } else if (Character.isWhitespace(ch)) {
- } else {
- whiteSpace = false;
- }
- }
- } 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;
@@ -524,8 +499,13 @@ public class PHPCompletionProcessor implements IContentAssistProcessor {
PHPEditor editor = null;
if (fEditor != null && (fEditor instanceof PHPEditor)) {
editor = (PHPEditor) fEditor;
- file = ((IFileEditorInput) editor.getEditorInput()).getFile();
- project = file.getProject();
+ IEditorInput editorInput = editor.getEditorInput();
+ if (editorInput instanceof IFileEditorInput) {
+ file = ((IFileEditorInput) editorInput).getFile();
+ project = file.getProject();
+ } else {
+ return new ICompletionProposal[0];
+ }
}
}
@@ -543,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];
@@ -561,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);
+ 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);
+ 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;
// }
@@ -586,30 +570,35 @@ public class PHPCompletionProcessor implements IContentAssistProcessor {
boolean emptyPrefix = prefix == null || prefix.equals("");
IPHPCompletionProposal[] localVariableResults = new IPHPCompletionProposal[0];
- if (!emptyPrefix && prefix.length() >= 1 && prefix.charAt(0) == '$') { // php
- // Variable
- // ?
+ if (!emptyPrefix && prefix.length() >= 1 && prefix.charAt(0) == '$') {
+ // php Variable ?
String lowerCasePrefix = prefix.toLowerCase();
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) {
@@ -627,37 +616,44 @@ 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);
}
-
}
}
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();
@@ -668,9 +664,9 @@ public class PHPCompletionProcessor implements IContentAssistProcessor {
IPHPCompletionProposal[] builtinResults = new IPHPCompletionProposal[0];
if ((!useClassMembers) && syntaxbuffer != null) {
BuiltInEngine builtinEngine;
- String proposal;
- 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);
@@ -684,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);
}
@@ -716,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) {
@@ -746,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
@@ -767,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();
@@ -775,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();
@@ -787,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;
}
@@ -795,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);
}
@@ -839,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
+ // !
// }
}
@@ -852,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];
@@ -911,13 +933,13 @@ public class PHPCompletionProcessor implements IContentAssistProcessor {
// sqlList.add(new SQLProposal(columnNames[i], context, region, viewer,
// PHPUiImages.get(PHPUiImages.IMG_TABLE)));
// }
- //
+ //
// sqlResults = new IPHPCompletionProposal[sqlList.size()];
// for (int i = 0; i < sqlList.size(); i++) {
// sqlResults[i] = (SQLProposal) sqlList.get(i);
// }
// } catch (Exception /* NotConnectedException */ e) {
- //
+ //
// }
// // }
// }
@@ -971,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);
}