import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.Map;
import java.util.SortedMap;
-import net.sourceforge.phpdt.core.IBuffer;
-import net.sourceforge.phpdt.core.ICompilationUnit;
-import net.sourceforge.phpdt.core.IJavaProject;
-import net.sourceforge.phpdt.core.JavaModelException;
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.IProblemFactory;
-import net.sourceforge.phpdt.internal.compiler.SourceElementParser;
-import net.sourceforge.phpdt.internal.compiler.impl.CompilerOptions;
import net.sourceforge.phpdt.internal.compiler.parser.Scanner;
-import net.sourceforge.phpdt.internal.compiler.problem.DefaultProblemFactory;
-import net.sourceforge.phpdt.internal.core.CompilationUnit;
-import net.sourceforge.phpdt.internal.core.CompilationUnitStructureRequestor;
-import net.sourceforge.phpdt.internal.core.JavaModelManager;
-import net.sourceforge.phpdt.internal.core.JavaProject;
import net.sourceforge.phpdt.internal.corext.template.ContextType;
import net.sourceforge.phpdt.internal.corext.template.ContextTypeRegistry;
import net.sourceforge.phpdt.internal.corext.template.php.CompilationUnitContextType;
import net.sourceforge.phpdt.internal.ui.text.template.SQLProposal;
import net.sourceforge.phpdt.internal.ui.text.template.TemplateEngine;
import net.sourceforge.phpdt.ui.IWorkingCopyManager;
-import net.sourceforge.phpeclipse.IPreferenceConstants;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
import net.sourceforge.phpeclipse.builder.IdentifierIndexManager;
-import net.sourceforge.phpeclipse.internal.compiler.ast.CompilationUnitDeclaration;
-import net.sourceforge.phpeclipse.overlaypages.Util;
import net.sourceforge.phpeclipse.phpeditor.PHPEditor;
import net.sourceforge.phpeclipse.phpeditor.PHPSyntaxRdr;
+import net.sourceforge.phpeclipse.ui.IPreferenceConstants;
+import net.sourceforge.phpeclipse.ui.overlaypages.Util;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
scanner.setPHPMode(true);
int beforeLastToken = ITerminalSymbols.TokenNameEOF;
int lastToken = ITerminalSymbols.TokenNameEOF;
+ char[] ident;
try {
token = scanner.getNextToken();
lastToken = token;
while (token != ITerminalSymbols.TokenNameERROR
&& token != ITerminalSymbols.TokenNameEOF) {
beforeLastToken = lastToken;
+ if (lastToken==ITerminalSymbols.TokenNameVariable) {
+ ident = scanner.getCurrentTokenSource();
+ if (ident.length==5 &&
+ ident[0]=='$' &&
+ ident[1]=='t' &&
+ ident[2]=='h' &&
+ ident[3]=='i' &&
+ ident[4]=='s') {
+ beforeLastToken = ITerminalSymbols.TokenNamethis_PHP_COMPLETION;
+ }
+ }
lastToken = token;
// System.out.println(scanner.toStringAction(lastToken));
token = scanner.getNextToken();
// }
}
}
-
- final ICompilationUnit unit = fManager.getWorkingCopy(fEditor
- .getEditorInput());
-
- // get buffer contents
- final IBuffer buffer;
- CompilationUnitDeclaration unitDecl=null;
- try {
- buffer = unit.getBuffer();
-
- if (project != null && buffer != null) {
-
- // final char[] contents = buffer == null ? null :
- // buffer.getCharacters();
- //
- // // generate structure and compute syntax problems if needed
- // CompilationUnitStructureRequestor requestor = new
- // CompilationUnitStructureRequestor(this, unitInfo, newElements);
- // JavaModelManager.PerWorkingCopyInfo perWorkingCopyInfo =
- // getPerWorkingCopyInfo();
- // IJavaProject project = getJavaProject();
- // boolean computeProblems =
- // JavaProject.hasJavaNature(project.getProject()) && perWorkingCopyInfo
- // != null && perWorkingCopyInfo.isActive();
- IProblemFactory problemFactory = new DefaultProblemFactory();
- // Map options = project.getOptions(true);
- SourceElementParser parser = new SourceElementParser(null,
- problemFactory, new CompilerOptions(null));
- //, true/*report local declarations*/);
- unitDecl = parser.parseCompletionUnit(
- new net.sourceforge.phpdt.internal.compiler.env.ICompilationUnit() {
- public char[] getContents() {
- return buffer.getCharacters();
- }
-
- public char[] getMainTypeName() {
- return null;
- }
-
- public char[][] getPackageName() {
- return null;
- }
-
- public char[] getFileName() {
- return null;
- }
- }, true /* full parse to find local elements */);
-
- }
-// System.out.println(unit.toString());
- } catch (Exception e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
+
ContextType phpContextType = ContextTypeRegistry.getInstance()
.getContextType("php"); //$NON-NLS-1$
((CompilationUnitContextType) phpContextType).setContextParameters(
int lastSignificantToken = getLastToken(viewer, offset, context, sqlTable);
boolean useClassMembers = (lastSignificantToken == ITerminalSymbols.TokenNameMINUS_GREATER)
|| (lastSignificantToken == ITerminalSymbols.TokenNameVariable)
- || (lastSignificantToken == ITerminalSymbols.TokenNamenew);
+ || (lastSignificantToken == ITerminalSymbols.TokenNamenew)
+ || (lastSignificantToken == ITerminalSymbols.TokenNamethis_PHP_COMPLETION);
boolean emptyPrefix = prefix == null || prefix.equals("");
if (fTemplateEngine != null) {
IPHPCompletionProposal[] templateResults = new IPHPCompletionProposal[0];
IdentifierIndexManager indexManager = PHPeclipsePlugin.getDefault()
.getIndexManager(project);
SortedMap sortedMap = indexManager.getIdentifierMap();
- declarationEngine = new DeclarationEngine(contextType,
+ declarationEngine = new DeclarationEngine(project, contextType,
lastSignificantToken, file);
declarationEngine.complete(viewer, offset, sortedMap);
declarationResults = declarationEngine.getResults();