package fr.adrienbrault.idea.symfony2plugin.form.gotoCompletion; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import fr.adrienbrault.idea.symfony2plugin.codeInsight.GotoCompletionProvider; import fr.adrienbrault.idea.symfony2plugin.codeInsight.utils.GotoCompletionUtil; import fr.adrienbrault.idea.symfony2plugin.translation.dict.TranslationUtil; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; /** * Global translation domain * * @author Daniel Espendiller <daniel@espendiller.net> */ public class TranslationDomainGotoCompletionProvider extends GotoCompletionProvider { public TranslationDomainGotoCompletionProvider(@NotNull PsiElement element) { super(element); } @NotNull @Override public Collection<LookupElement> getLookupElements() { return TranslationUtil.getTranslationDomainLookupElements(getElement().getProject()); } @NotNull @Override public Collection<PsiElement> getPsiTargets(PsiElement element) { String stringLiteralValue = GotoCompletionUtil.getStringLiteralValue(element); if(stringLiteralValue == null) { return Collections.emptyList(); } Collection<PsiElement> targets = new ArrayList<>(); for (PsiFile psiFile : TranslationUtil.getDomainPsiFiles(getElement().getProject(), stringLiteralValue)) { targets.add(psiFile); } return targets; } }