Search in sources :

Example 91 with PsiPackage

use of com.intellij.psi.PsiPackage in project intellij by bazelbuild.

the class BlazeAndroidProjectPathsTest method mockPsiPackage.

private void mockPsiPackage(Container applicationServices, Container projectServices) {
    projectServices.register(PsiManager.class, mock(PsiManager.class));
    applicationServices.register(JavaDirectoryService.class, mock(JavaDirectoryService.class));
    PsiManager manager = PsiManager.getInstance(project);
    PsiDirectory targetPsiDirectory = mock(PsiDirectory.class);
    PsiPackage targetPsiPackage = new PsiPackageImpl(manager, "com.google.target");
    when(PsiManager.getInstance(project).findDirectory(target)).thenReturn(targetPsiDirectory);
    when(JavaDirectoryService.getInstance().getPackage(targetPsiDirectory)).thenReturn(targetPsiPackage);
}
Also used : PsiDirectory(com.intellij.psi.PsiDirectory) PsiManager(com.intellij.psi.PsiManager) PsiPackageImpl(com.intellij.psi.impl.file.PsiPackageImpl) PsiPackage(com.intellij.psi.PsiPackage) JavaDirectoryService(com.intellij.psi.JavaDirectoryService)

Example 92 with PsiPackage

use of com.intellij.psi.PsiPackage in project intellij by bazelbuild.

the class BlazeAndroidProjectPaths method getPackageName.

/**
 * The new component wizard uses {@link AndroidSourceSet#getName()} for the default package name
 * of the new component. If we can figure it out from the target directory here, then we can pass
 * it to the new component wizard.
 */
private static String getPackageName(Project project, VirtualFile targetDirectory) {
    PsiDirectory psiDirectory = PsiManager.getInstance(project).findDirectory(targetDirectory);
    if (psiDirectory == null) {
        return null;
    }
    PsiPackage psiPackage = JavaDirectoryService.getInstance().getPackage(psiDirectory);
    if (psiPackage == null) {
        return null;
    }
    return psiPackage.getQualifiedName();
}
Also used : PsiDirectory(com.intellij.psi.PsiDirectory) PsiPackage(com.intellij.psi.PsiPackage)

Example 93 with PsiPackage

use of com.intellij.psi.PsiPackage in project component-runtime by Talend.

the class SuggestionServiceImpl method getFamilyFromPackageInfo.

private String getFamilyFromPackageInfo(final PsiPackage psiPackage, final Module module) {
    return of(FilenameIndex.getFilesByName(psiPackage.getProject(), "package-info.java", GlobalSearchScope.moduleScope(module))).map(psiFile -> {
        if (!PsiJavaFile.class.cast(psiFile).getPackageName().equals(psiPackage.getQualifiedName())) {
            return null;
        }
        final String[] family = { null };
        PsiJavaFile.class.cast(psiFile).accept(new JavaRecursiveElementWalkingVisitor() {

            @Override
            public void visitAnnotation(final PsiAnnotation annotation) {
                super.visitAnnotation(annotation);
                if (!COMPONENTS.equals(annotation.getQualifiedName())) {
                    return;
                }
                final PsiAnnotationMemberValue familyAttribute = annotation.findAttributeValue("family");
                if (familyAttribute == null) {
                    return;
                }
                family[0] = removeQuotes(familyAttribute.getText());
            }
        });
        return family[0];
    }).filter(Objects::nonNull).findFirst().orElseGet(() -> {
        final PsiPackage parent = psiPackage.getParentPackage();
        if (parent == null) {
            return null;
        }
        return getFamilyFromPackageInfo(parent, module);
    });
}
Also used : PsiPackage(com.intellij.psi.PsiPackage) PsiType(com.intellij.psi.PsiType) JavaPsiFacade(com.intellij.psi.JavaPsiFacade) FilenameIndex(com.intellij.psi.search.FilenameIndex) DISPLAY_NAME(org.talend.sdk.component.intellij.completion.properties.Suggestion.DISPLAY_NAME) CompletionParameters(com.intellij.codeInsight.completion.CompletionParameters) Collections.singletonList(java.util.Collections.singletonList) PsiClass(com.intellij.psi.PsiClass) PsiEnumConstant(com.intellij.psi.PsiEnumConstant) PsiClassReferenceType(com.intellij.psi.impl.source.PsiClassReferenceType) Project(com.intellij.openapi.project.Project) JavaRecursiveElementWalkingVisitor(com.intellij.psi.JavaRecursiveElementWalkingVisitor) ROOT(java.util.Locale.ROOT) Module(com.intellij.openapi.module.Module) PLACEHOLDER(org.talend.sdk.component.intellij.completion.properties.Suggestion.PLACEHOLDER) Suggestion(org.talend.sdk.component.intellij.completion.properties.Suggestion) LookupElement(com.intellij.codeInsight.lookup.LookupElement) Collections.emptyList(java.util.Collections.emptyList) Optional.ofNullable(java.util.Optional.ofNullable) Stream.of(java.util.stream.Stream.of) GlobalSearchScope(com.intellij.psi.search.GlobalSearchScope) PsiJavaFile(com.intellij.psi.PsiJavaFile) Objects(java.util.Objects) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) Stream(java.util.stream.Stream) AnnotationUtil(com.intellij.codeInsight.AnnotationUtil) PsiAnnotation(com.intellij.psi.PsiAnnotation) JvmModifier(com.intellij.lang.jvm.JvmModifier) Collections(java.util.Collections) PsiAnnotationMemberValue(com.intellij.psi.PsiAnnotationMemberValue) Objects(java.util.Objects) PsiPackage(com.intellij.psi.PsiPackage) PsiAnnotation(com.intellij.psi.PsiAnnotation) JavaRecursiveElementWalkingVisitor(com.intellij.psi.JavaRecursiveElementWalkingVisitor) PsiAnnotationMemberValue(com.intellij.psi.PsiAnnotationMemberValue)

Aggregations

PsiPackage (com.intellij.psi.PsiPackage)93 PsiDirectory (com.intellij.psi.PsiDirectory)24 PsiClass (com.intellij.psi.PsiClass)22 Module (com.intellij.openapi.module.Module)19 Project (com.intellij.openapi.project.Project)14 GlobalSearchScope (com.intellij.psi.search.GlobalSearchScope)14 VirtualFile (com.intellij.openapi.vfs.VirtualFile)13 JavaAnalysisScope (com.intellij.analysis.JavaAnalysisScope)12 PsiFile (com.intellij.psi.PsiFile)12 PsiElement (com.intellij.psi.PsiElement)11 JavaPsiFacade (com.intellij.psi.JavaPsiFacade)10 NotNull (org.jetbrains.annotations.NotNull)10 CyclicDependenciesBuilder (com.intellij.cyclicDependencies.CyclicDependenciesBuilder)9 Nullable (org.jetbrains.annotations.Nullable)9 AnalysisScope (com.intellij.analysis.AnalysisScope)8 HashSet (java.util.HashSet)6 List (java.util.List)5 LookupElement (com.intellij.codeInsight.lookup.LookupElement)4 AbstractTreeNode (com.intellij.ide.util.treeView.AbstractTreeNode)4 ArrayList (java.util.ArrayList)4