package org.dlangplugin.psi.impl;
import com.intellij.openapi.util.Key;
import com.intellij.psi.PsiElement;
import com.intellij.psi.ResolveState;
import com.intellij.psi.scope.PsiScopeProcessor;
import org.dlangplugin.psi.DLangComponentName;
import org.dlangplugin.psi.DLangNamedComponent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Set;
public class ComponentNameScopeProcessor implements PsiScopeProcessor {
private final Set<DLangComponentName> result;
public ComponentNameScopeProcessor(Set<DLangComponentName> result) {
this.result = result;
}
@Override
public boolean execute(@NotNull PsiElement element, ResolveState state) {
if (element instanceof DLangNamedComponent) {
final DLangNamedComponent namedComponent = (DLangNamedComponent)element;
if (namedComponent.getComponentName() != null) {
result.add(namedComponent.getComponentName());
}
}
return true;
}
@Override
public <T> T getHint(@NotNull Key<T> hintKey) {
return null;
}
@Override
public void handleEvent(Event event, @Nullable Object associated) {
}
public Set<DLangComponentName> getResult() {
return result;
}
}