+ private static PsiDirectory[] suggestMostAppropriateDirectories(PsiPackage psiPackage) {
+ final Project project = psiPackage.getProject();
+ PsiDirectory[] directories = null;
+ final Editor editor = FileEditorManager.getInstance(project).getSelectedTextEditor();
+ if (editor != null) {
+ final Document document = editor.getDocument();
+ final PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document);
+ if (psiFile != null) {
+ final Module module = ModuleUtil.findModuleForPsiElement(psiFile);
+ if (module != null) {
+ directories = psiPackage.getDirectories(GlobalSearchScope.moduleWithDependenciesScope(module));
+ } else {
+ directories = psiPackage.getDirectories(GlobalSearchScope.notScope(GlobalSearchScope.projectScope(project)));
+ }
+ }
+ }
+
+ if (directories == null || directories.length == 0) {
+ directories = psiPackage.getDirectories();
+ }
+ return directories;
+ }
+