Package com.yiistorm.references.referenceContributors

Source Code of com.yiistorm.references.referenceContributors.I18nReferenceContributor

package com.yiistorm.references.referenceContributors;

import com.intellij.patterns.PlatformPatterns;
import com.intellij.patterns.PsiElementPattern;
import com.intellij.patterns.StandardPatterns;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReferenceContributor;
import com.intellij.psi.PsiReferenceRegistrar;
import com.jetbrains.php.lang.PhpLanguage;
import com.jetbrains.php.lang.parser.PhpElementTypes;
import com.yiistorm.helpers.YiiContibutorHelper;
import com.yiistorm.references.ReferenceProviders.I18nReferenceProvider;

public class I18nReferenceContributor extends PsiReferenceContributor {
    @Override
    public void registerReferenceProviders(PsiReferenceRegistrar registrar) {
        registrar.registerReferenceProvider(categoryPattern(), new I18nReferenceProvider());

    }

    public PsiElementPattern.Capture categoryPattern() {
        return PlatformPatterns.psiElement(PsiElement.class)
                .withElementType(PhpElementTypes.STRING)
                .withParent(YiiContibutorHelper.methodParamsList("t", StandardPatterns.string().oneOf("Yii", "YiiBase")))
                .insideStarting(
                        PlatformPatterns.psiElement().withElementType(PhpElementTypes.PARAMETER_LIST)
                )
                .withLanguage(PhpLanguage.INSTANCE);
    }

}
TOP

Related Classes of com.yiistorm.references.referenceContributors.I18nReferenceContributor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.