/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Zend Technologies
*******************************************************************************/
package org.eclipse.php.internal.ui.editor.contentassist;
import org.eclipse.dltk.ui.text.completion.ContentAssistInvocationContext;
import org.eclipse.dltk.ui.text.completion.ScriptCompletionProcessor;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.contentassist.ContentAssistant;
import org.eclipse.jface.text.contentassist.IContextInformationValidator;
import org.eclipse.php.internal.core.project.PHPNature;
import org.eclipse.ui.IEditorPart;
public class PHPCompletionProcessor extends ScriptCompletionProcessor {
protected PHPContextInformationValidator contextInformationValidator = new PHPContextInformationValidator();
protected static final char[] contextInformationActivationChars = { '(', ',' };
protected static final char[] completionAutoActivationChars = { '>', ':' };
private boolean explicit;
private ContentAssistant assistant;
public PHPCompletionProcessor(IEditorPart editor, ContentAssistant assistant, String partition) {
super(editor, assistant, partition);
this.assistant = assistant;
setCompletionProposalAutoActivationCharacters(getAutoactivationTriggers());
}
@Override
protected String getNatureId() {
return PHPNature.ID;
}
@Override
public IContextInformationValidator getContextInformationValidator() {
return contextInformationValidator;
}
@Override
public char[] getContextInformationAutoActivationCharacters() {
return contextInformationActivationChars;
}
protected static char[] getAutoactivationTriggers() {
return completionAutoActivationChars;
}
@Override
protected ContentAssistInvocationContext createContext(ITextViewer viewer, int offset) {
boolean oldExplicitValue = explicit;
explicit = false;
return new PHPContentAssistInvocationContext(viewer, offset, fEditor, getNatureId(), oldExplicitValue);
}
public void setExplicit(boolean explicit) {
this.explicit = explicit;
}
public boolean isExplicit() {
return explicit;
}
public ContentAssistant getAssistant() {
return assistant;
}
}