/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.lang.psi.impl.search;
import com.intellij.openapi.module.Module;
import com.intellij.psi.PsiElement;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.SearchScope;
import com.intellij.psi.search.UseScopeEnlarger;
import gw.lang.reflect.module.IModule;
import gw.plugin.ij.lang.psi.api.statements.params.IGosuParameter;
import gw.plugin.ij.util.GosuModuleUtil;
import org.jetbrains.annotations.NotNull;
public class NamedParametersScopeEnlarger extends UseScopeEnlarger {
@Override
public SearchScope getAdditionalUseScope(@NotNull PsiElement element) {
if (element instanceof IGosuParameter) {
IModule module = GosuModuleUtil.findModuleForPsiElement(element);
if (module != null) {
Module m = GosuModuleUtil.getModule(module);
if(m != null) {
return GlobalSearchScope.moduleWithDependenciesScope(m);
}
}
return GlobalSearchScope.projectScope(element.getProject());
} else {
return null;
}
}
}