package fr.adrienbrault.idea.symfony2plugin.completion.insertHandler; import com.intellij.codeInsight.completion.InsertHandler; import com.intellij.codeInsight.completion.InsertionContext; import com.intellij.codeInsight.lookup.LookupElement; import com.jetbrains.php.completion.insert.PhpInsertHandlerUtil; import com.jetbrains.php.completion.insert.PhpReferenceInsertHandler; import com.jetbrains.php.lang.psi.elements.PhpClass; import org.jetbrains.annotations.NotNull; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class ClassConstantInsertHandler implements InsertHandler<LookupElement> { private static final ClassConstantInsertHandler instance = new ClassConstantInsertHandler(); private ClassConstantInsertHandler() {} @Override public void handleInsert(InsertionContext context, LookupElement lookupElement) { if(!(lookupElement instanceof ClassConstantLookupElementInterface) || !(lookupElement.getObject() instanceof PhpClass)) { return; } PhpReferenceInsertHandler.getInstance().handleInsert(context, lookupElement); PhpInsertHandlerUtil.insertStringAtCaret(context.getEditor(), "::class"); } public static ClassConstantInsertHandler getInstance(){ return instance; } public interface ClassConstantLookupElementInterface { @NotNull PhpClass getPhpClass(); } }