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;
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;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IFileEditorInput;
-// import com.quantum.ExternalInterface;
-// import com.quantum.util.connection.NotConnectedException;
-
/**
* Example PHP completion processor.
*/
}
};
- private class TableName {
- String fTableName;
-
- TableName() {
- fTableName = null;
- }
-
- /**
- * @return Returns the tableName.
- */
- public String getTableName() {
- if (fTableName == null) {
- return "<!--no-table-->";
- }
- 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 "<!--no-table-->";
+// }
+// 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;
/**
* Tells this processor to order the proposals alphabetically.
- *
+ *
* @param order
* <code>true</code> if proposals should be ordered.
*/
/**
* Sets this processor's set of characters triggering the activation of the
* completion proposal computation.
- *
+ *
* @param activationSet
* the activation set
*/
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 {
}
int token = ITerminalSymbols.TokenNameEOF;
// token = getLastSQLToken(startText);
- tableName.setTableName(getLastSQLTableName(startText));
+// tableName.setTableName(getLastSQLTableName(startText));
Scanner scanner = ToolFactory.createScanner(false, false, false);
scanner.setSource(startText.toCharArray());
scanner.setPHPMode(true);
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 "<!--no-table-->";
- }
+// 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 "<!--no-table-->";
+// }
/**
* 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 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());
// 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;
- // }
+// 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;
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) {
}
}
- 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.TokenNamethis_PHP_COMPLETION);
if (info != null && info.typeIdentifier != null) {
typeRef = new String(info.typeIdentifier);
}
-
}
}
if (typeRef != null) {
IPHPCompletionProposal[] builtinResults = new IPHPCompletionProposal[0];
if ((!useClassMembers) && syntaxbuffer != null) {
BuiltInEngine builtinEngine;
- String proposal;
JavaContextType contextType = (JavaContextType) PHPeclipsePlugin.getDefault().getTemplateContextRegistry().getContextType(
"php"); //$NON-NLS-1$
if (contextType != null) {
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.
// 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) {
- //
+ //
// }
// // }
// }