Search in sources :

Example 1 with PerlGlobVariable

use of com.perl5.lang.perl.psi.PerlGlobVariable in project Perl5-IDEA by Camelcade.

the class PerlRenamePolyReferencedElementProcessor method prepareRenaming.

@Override
public void prepareRenaming(PsiElement element, String newName, Map<PsiElement, String> allRenames, SearchScope scope) {
    final String currentBaseName = ((PsiNameIdentifierOwner) element).getName();
    if (currentBaseName != null && StringUtil.isNotEmpty(newName)) {
        boolean globScanned = element instanceof PerlGlobVariable;
        for (PsiReference reference : ReferencesSearch.search(element, element.getUseScope()).findAll()) {
            if (reference instanceof PsiPolyVariantReference) {
                for (ResolveResult resolveResult : ((PsiPolyVariantReference) reference).multiResolve(false)) {
                    PsiElement resolveResultElement = resolveResult.getElement();
                    if (!allRenames.containsKey(resolveResultElement)) {
                        allRenames.put(resolveResultElement, newName);
                        if (!globScanned && resolveResultElement instanceof PerlGlobVariable) {
                            globScanned = true;
                            prepareRenaming(resolveResultElement, newName, allRenames, scope);
                        }
                    }
                }
            }
            processDocReference(currentBaseName, newName, reference, allRenames);
        }
        if (element instanceof PerlSubElement && ((PerlSubElement) element).isMethod()) {
            for (PerlSubElement overridingSub : PerlSubUtil.collectOverridingSubs((PerlSubElement) element)) {
                allRenames.put(overridingSub, newName);
            }
        }
        // following is the hack until #1730 is fixed
        Set<PsiElement> allElements = new THashSet<>(allRenames.keySet());
        allElements.stream().filter(e -> e instanceof PerlClassAccessorMethod).forEach(e -> {
            PerlClassAccessorMethod pairedMethod = ((PerlClassAccessorMethod) e).getPairedMethod();
            if (pairedMethod != null && allRenames.containsKey(e)) {
                allRenames.remove(pairedMethod);
            }
        });
    }
}
Also used : ReferencesSearch(com.intellij.psi.search.searches.ReferencesSearch) PerlGlobVariable(com.perl5.lang.perl.psi.PerlGlobVariable) PerlSubUtil(com.perl5.lang.perl.util.PerlSubUtil) RenamePsiElementProcessor(com.intellij.refactoring.rename.RenamePsiElementProcessor) StringUtil(com.intellij.openapi.util.text.StringUtil) Set(java.util.Set) THashSet(gnu.trove.THashSet) SearchScope(com.intellij.psi.search.SearchScope) PerlClassAccessorMethod(com.perl5.lang.perl.parser.Class.Accessor.psi.impl.PerlClassAccessorMethod) Editor(com.intellij.openapi.editor.Editor) Nullable(org.jetbrains.annotations.Nullable) PsiTreeUtil(com.intellij.psi.util.PsiTreeUtil) PsiElementRenameHandler(com.intellij.refactoring.rename.PsiElementRenameHandler) PerlIcons(com.perl5.PerlIcons) Map(java.util.Map) Messages(com.intellij.openapi.ui.Messages) com.intellij.psi(com.intellij.psi) NotNull(org.jetbrains.annotations.NotNull) PerlSubElement(com.perl5.lang.perl.psi.PerlSubElement) PodLanguage(com.perl5.lang.pod.PodLanguage) PerlClassAccessorMethod(com.perl5.lang.perl.parser.Class.Accessor.psi.impl.PerlClassAccessorMethod) THashSet(gnu.trove.THashSet) PerlSubElement(com.perl5.lang.perl.psi.PerlSubElement) PerlGlobVariable(com.perl5.lang.perl.psi.PerlGlobVariable)

Example 2 with PerlGlobVariable

use of com.perl5.lang.perl.psi.PerlGlobVariable in project Perl5-IDEA by Camelcade.

the class PerlVariableNameCompletionProvider method fillWithFullQualifiedVariables.

private void fillWithFullQualifiedVariables(@NotNull PsiElement variableNameElement, @NotNull CompletionResultSet resultSet) {
    PsiElement perlVariable = variableNameElement.getParent();
    Project project = variableNameElement.getProject();
    GlobalSearchScope resolveScope = variableNameElement.getResolveScope();
    String variableName = variableNameElement.getText();
    boolean forceShortMain = StringUtil.startsWith(variableName, PerlPackageUtil.PACKAGE_SEPARATOR);
    final CompletionResultSet finalResultSet = resultSet;
    Processor<PerlVariableDeclarationElement> scalarDefaultProcessor = wrapper -> {
        String fullQualifiedName = wrapper.getFullQualifiedName();
        if (fullQualifiedName != null) {
            finalResultSet.addElement(PerlVariableCompletionUtil.getScalarLookupElement(adjustName(fullQualifiedName, forceShortMain)));
        }
        return true;
    };
    Processor<PerlVariableDeclarationElement> arrayDefaultProcessor = wrapper -> {
        String fullQualifiedName = wrapper.getFullQualifiedName();
        if (fullQualifiedName != null) {
            finalResultSet.addElement(PerlVariableCompletionUtil.getArrayLookupElement(adjustName(fullQualifiedName, forceShortMain)));
        }
        return true;
    };
    Processor<PerlVariableDeclarationElement> hashDefaultProcessor = wrapper -> {
        String fullQualifiedName = wrapper.getFullQualifiedName();
        if (fullQualifiedName != null) {
            finalResultSet.addElement(PerlVariableCompletionUtil.getHashLookupElement(adjustName(fullQualifiedName, forceShortMain)));
        }
        return true;
    };
    if (perlVariable instanceof PsiPerlScalarVariable) {
        PerlScalarUtil.processDefinedGlobalScalars(project, resolveScope, scalarDefaultProcessor);
        PerlArrayUtil.processDefinedGlobalArrays(project, resolveScope, wrapper -> {
            String fullQualifiedName = wrapper.getFullQualifiedName();
            if (fullQualifiedName != null) {
                finalResultSet.addElement(PerlVariableCompletionUtil.getArrayElementLookupElement(adjustName(fullQualifiedName, forceShortMain)));
            }
            return true;
        });
        PerlHashUtil.processDefinedGlobalHashes(project, resolveScope, wrapper -> {
            String fullQualifiedName = wrapper.getFullQualifiedName();
            if (fullQualifiedName != null) {
                finalResultSet.addElement(PerlVariableCompletionUtil.getHashElementLookupElement(adjustName(fullQualifiedName, forceShortMain)));
            }
            return true;
        });
    } else if (perlVariable instanceof PerlGlobVariable) {
        PerlScalarUtil.processDefinedGlobalScalars(project, resolveScope, scalarDefaultProcessor);
        PerlArrayUtil.processDefinedGlobalArrays(project, resolveScope, arrayDefaultProcessor);
        PerlHashUtil.processDefinedGlobalHashes(project, resolveScope, hashDefaultProcessor);
        // globs
        PerlGlobUtil.processDefinedGlobsNames(project, resolveScope, typeglob -> {
            String adjustedName = adjustName(typeglob.getCanonicalName(), forceShortMain);
            if (adjustedName != null) {
                finalResultSet.addElement(PerlVariableCompletionUtil.getGlobLookupElement(adjustedName));
            }
            return true;
        });
    } else if (perlVariable instanceof PsiPerlArrayVariable) {
        PerlArrayUtil.processDefinedGlobalArrays(project, resolveScope, arrayDefaultProcessor);
        PerlHashUtil.processDefinedGlobalHashes(project, resolveScope, wrapper -> {
            String fullQualifiedName = wrapper.getFullQualifiedName();
            if (fullQualifiedName != null) {
                finalResultSet.addElement(PerlVariableCompletionUtil.getHashSliceLookupElement(adjustName(fullQualifiedName, forceShortMain)));
            }
            return true;
        });
    } else if (perlVariable instanceof PsiPerlArrayIndexVariable) {
        // global arrays
        PerlArrayUtil.processDefinedGlobalArrays(project, resolveScope, arrayDefaultProcessor);
    } else if (perlVariable instanceof PsiPerlHashVariable) {
        // global hashes
        PerlHashUtil.processDefinedGlobalHashes(project, resolveScope, hashDefaultProcessor);
    }
}
Also used : ProcessingContext(com.intellij.util.ProcessingContext) PlainPrefixMatcher(com.intellij.codeInsight.completion.PlainPrefixMatcher) LookupElementBuilder(com.intellij.codeInsight.lookup.LookupElementBuilder) StringUtil(com.intellij.openapi.util.text.StringUtil) CompletionParameters(com.intellij.codeInsight.completion.CompletionParameters) GlobalSearchScope(com.intellij.psi.search.GlobalSearchScope) CompletionResultSet(com.intellij.codeInsight.completion.CompletionResultSet) PerlExportDescriptor(com.perl5.lang.perl.extensions.packageprocessor.PerlExportDescriptor) CompletionProvider(com.intellij.codeInsight.completion.CompletionProvider) Processor(com.intellij.util.Processor) PsiElement(com.intellij.psi.PsiElement) PerlVariableCompletionUtil(com.perl5.lang.perl.idea.completion.util.PerlVariableCompletionUtil) Project(com.intellij.openapi.project.Project) com.perl5.lang.perl.psi(com.perl5.lang.perl.psi) PerlElementPatterns(com.perl5.lang.perl.idea.PerlElementPatterns) PerlInternalIndexKeysProcessor.adjustName(com.perl5.lang.perl.util.processors.PerlInternalIndexKeysProcessor.adjustName) NotNull(org.jetbrains.annotations.NotNull) PerlNamespaceEntityProcessor(com.perl5.lang.perl.util.processors.PerlNamespaceEntityProcessor) com.perl5.lang.perl.util(com.perl5.lang.perl.util) CompletionResultSet(com.intellij.codeInsight.completion.CompletionResultSet) Project(com.intellij.openapi.project.Project) GlobalSearchScope(com.intellij.psi.search.GlobalSearchScope) PsiElement(com.intellij.psi.PsiElement)

Example 3 with PerlGlobVariable

use of com.perl5.lang.perl.psi.PerlGlobVariable in project Perl5-IDEA by Camelcade.

the class PerlSubStaticCompletionProvider method addCompletions.

public void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) {
    PsiElement method = parameters.getPosition().getParent();
    assert method instanceof PsiPerlMethod;
    String packageName = ((PsiPerlMethod) method).getPackageName();
    if (packageName == null) {
        return;
    }
    Project project = parameters.getPosition().getProject();
    // defined subs
    GlobalSearchScope searchScope = method.getResolveScope();
    PerlSubUtil.processSubDefinitionsInPackage(project, packageName, searchScope, subDefinition -> {
        if (subDefinition.isStatic()) {
            resultSet.addElement(PerlSubCompletionUtil.getSubDefinitionLookupElement(subDefinition));
        }
        return true;
    });
    PerlSubUtil.processSubDeclarationsInPackage(project, packageName, searchScope, subDeclaration -> {
        if (subDeclaration.isStatic()) {
            resultSet.addElement(PerlSubCompletionUtil.getSubDeclarationLookupElement(subDeclaration));
        }
        return true;
    });
    // Globs
    for (PerlGlobVariable globVariable : PerlGlobUtil.getGlobsDefinitions(project, "*" + packageName)) {
        if (StringUtil.isNotEmpty(globVariable.getName())) {
            resultSet.addElement(PerlSubCompletionUtil.getGlobLookupElement(globVariable));
        }
    }
}
Also used : Project(com.intellij.openapi.project.Project) GlobalSearchScope(com.intellij.psi.search.GlobalSearchScope) PsiPerlMethod(com.perl5.lang.perl.psi.PsiPerlMethod) PerlGlobVariable(com.perl5.lang.perl.psi.PerlGlobVariable) PsiElement(com.intellij.psi.PsiElement)

Example 4 with PerlGlobVariable

use of com.perl5.lang.perl.psi.PerlGlobVariable in project Perl5-IDEA by Camelcade.

the class PerlStructureViewElement method getChildren.

@NotNull
@Override
public TreeElement[] getChildren() {
    List<TreeElement> result = new ArrayList<>();
    Set<String> implementedMethods = new HashSet<>();
    if (myElement instanceof PerlFile) {
        FileViewProvider viewProvider = ((PerlFile) myElement).getViewProvider();
        PsiFile podFile = viewProvider.getPsi(PodLanguage.INSTANCE);
        if (podFile != null && podFile.getChildren().length > 1) {
            result.add(new PodStructureViewElement(podFile));
        }
        Language targetLanguage = null;
        for (Language language : viewProvider.getLanguages()) {
            if (language == PerlLanguage.INSTANCE) {
                targetLanguage = language;
                break;
            } else if (targetLanguage == null && language.isKindOf(PerlLanguage.INSTANCE)) {
                targetLanguage = language;
            }
        }
        if (targetLanguage != null) {
            viewProvider.getPsi(targetLanguage).accept(new PerlRecursiveVisitor() {

                @Override
                public void visitNamespaceDefinitionElement(@NotNull PerlNamespaceDefinitionElement o) {
                    result.add(new PerlNamespaceStructureViewElement(o));
                    super.visitNamespaceDefinitionElement(o);
                }
            });
        }
    }
    if (myElement instanceof PerlNamespaceDefinitionElement) {
        // global variables
        for (PerlVariableDeclarationElement child : PsiTreeUtil.findChildrenOfType(myElement, PerlVariableDeclarationElement.class)) {
            if (child.isGlobalDeclaration() && myElement.isEquivalentTo(PerlPackageUtil.getNamespaceContainerForElement(child))) {
                result.add(new PerlVariableDeclarationStructureViewElement(child));
            }
        }
        Project project = myElement.getProject();
        GlobalSearchScope projectScope = GlobalSearchScope.projectScope(project);
        // imported scalars
        for (PerlExportDescriptor exportDescritptor : ((PerlNamespaceDefinitionElement) myElement).getImportedScalarDescriptors()) {
            String canonicalName = exportDescritptor.getTargetCanonicalName();
            Collection<PerlVariableDeclarationElement> variables = PerlScalarUtil.getGlobalScalarDefinitions(project, canonicalName);
            for (PerlVariableDeclarationElement variable : variables) {
                result.add(new PerlVariableDeclarationStructureViewElement(variable).setImported(exportDescritptor));
            }
            // globs
            Collection<PsiPerlGlobVariable> items = PerlGlobUtil.getGlobsDefinitions(project, canonicalName, projectScope);
            if (items.isEmpty()) {
                items = PerlGlobUtil.getGlobsDefinitions(project, canonicalName);
            }
            for (PerlGlobVariable item : items) {
                result.add(new PerlGlobStructureViewElement(item).setImported(exportDescritptor));
            }
        }
        // imported arrays
        for (PerlExportDescriptor exportDescritptor : ((PerlNamespaceDefinitionElement) myElement).getImportedArrayDescriptors()) {
            String canonicalName = exportDescritptor.getTargetCanonicalName();
            Collection<PerlVariableDeclarationElement> variables = PerlArrayUtil.getGlobalArrayDefinitions(project, canonicalName);
            for (PerlVariableDeclarationElement variable : variables) {
                result.add(new PerlVariableDeclarationStructureViewElement(variable).setImported(exportDescritptor));
            }
            // globs
            Collection<PsiPerlGlobVariable> items = PerlGlobUtil.getGlobsDefinitions(project, canonicalName, projectScope);
            if (items.isEmpty()) {
                items = PerlGlobUtil.getGlobsDefinitions(project, canonicalName);
            }
            for (PerlGlobVariable item : items) {
                result.add(new PerlGlobStructureViewElement(item).setImported(exportDescritptor));
            }
        }
        // imported hashes
        for (PerlExportDescriptor exportDescritptor : ((PerlNamespaceDefinitionElement) myElement).getImportedHashDescriptors()) {
            String canonicalName = exportDescritptor.getTargetCanonicalName();
            Collection<PerlVariableDeclarationElement> variables = PerlHashUtil.getGlobalHashDefinitions(project, canonicalName);
            for (PerlVariableDeclarationElement variable : variables) {
                result.add(new PerlVariableDeclarationStructureViewElement(variable).setImported(exportDescritptor));
            }
            // globs
            Collection<PsiPerlGlobVariable> items = PerlGlobUtil.getGlobsDefinitions(project, canonicalName, projectScope);
            if (items.isEmpty()) {
                items = PerlGlobUtil.getGlobsDefinitions(project, canonicalName);
            }
            for (PerlGlobVariable item : items) {
                result.add(new PerlGlobStructureViewElement(item).setImported(exportDescritptor));
            }
        }
        // Imported subs
        for (PerlExportDescriptor exportDescritptor : ((PerlNamespaceDefinitionElement) myElement).getImportedSubsDescriptors()) {
            String canonicalName = exportDescritptor.getTargetCanonicalName();
            // declarations
            Collection<PerlSubDeclarationElement> subDeclarations = PerlSubUtil.getSubDeclarations(project, canonicalName, projectScope);
            if (subDeclarations.isEmpty()) {
                subDeclarations = PerlSubUtil.getSubDeclarations(project, canonicalName);
            }
            for (PerlSubDeclarationElement item : subDeclarations) {
                result.add(new PerlSubStructureViewElement(item).setImported(exportDescritptor));
            }
            // definitions
            Collection<PerlSubDefinitionElement> subDefinitions = PerlSubUtil.getSubDefinitions(project, canonicalName, projectScope);
            if (subDefinitions.isEmpty()) {
                subDefinitions = PerlSubUtil.getSubDefinitions(project, canonicalName);
            }
            for (PerlSubDefinitionElement item : subDefinitions) {
                result.add(new PerlSubStructureViewElement(item).setImported(exportDescritptor));
            }
            // globs
            Collection<PsiPerlGlobVariable> items = PerlGlobUtil.getGlobsDefinitions(project, canonicalName, projectScope);
            if (items.isEmpty()) {
                items = PerlGlobUtil.getGlobsDefinitions(project, canonicalName);
            }
            for (PerlGlobVariable item : items) {
                result.add(new PerlGlobStructureViewElement(item).setImported(exportDescritptor));
            }
        }
        myElement.accept(new PerlRecursiveVisitor() {

            @Override
            public void visitPerlSubDefinitionElement(@NotNull PerlSubDefinitionElement child) {
                if (myElement.isEquivalentTo(PerlPackageUtil.getNamespaceContainerForElement(child))) {
                    implementedMethods.add(child.getName());
                    result.add(new PerlSubStructureViewElement(child));
                }
                super.visitPerlSubDefinitionElement(child);
            }

            @Override
            public void visitSubDeclarationElement(@NotNull PerlSubDeclarationElement child) {
                if (myElement.isEquivalentTo(PerlPackageUtil.getNamespaceContainerForElement(child))) {
                    result.add(new PerlSubStructureViewElement(child));
                }
                super.visitSubDeclarationElement(child);
            }

            @Override
            public void visitGlobVariable(@NotNull PsiPerlGlobVariable child) {
                if (child.isLeftSideOfAssignment() && myElement.isEquivalentTo(PerlPackageUtil.getNamespaceContainerForElement(child))) {
                    implementedMethods.add(child.getName());
                    result.add(new PerlGlobStructureViewElement(child));
                }
                super.visitGlobVariable(child);
            }
        });
    }
    // inherited elements
    if (myElement instanceof PerlNamespaceDefinitionWithIdentifier) {
        List<TreeElement> inheritedResult = new ArrayList<>();
        String packageName = ((PerlNamespaceDefinitionElement) myElement).getPackageName();
        if (packageName != null) {
            for (PsiElement element : PerlMro.getVariants(myElement, packageName, true)) {
                if (element instanceof PerlIdentifierOwner && !implementedMethods.contains(((PerlIdentifierOwner) element).getName())) {
                    if (element instanceof PerlLightConstantDefinitionElement) {
                        inheritedResult.add(new PerlSubStructureViewElement((PerlSubDefinitionElement) element).setInherited());
                    } else if (element instanceof PerlSubDefinitionElement) {
                        inheritedResult.add(new PerlSubStructureViewElement((PerlSubDefinitionElement) element).setInherited());
                    } else if (element instanceof PerlSubDeclarationElement) {
                        inheritedResult.add(new PerlSubStructureViewElement((PerlSubDeclarationElement) element).setInherited());
                    } else if (element instanceof PerlGlobVariable && ((PerlGlobVariable) element).isLeftSideOfAssignment() && ((PerlGlobVariable) element).getName() != null) {
                        inheritedResult.add(new PerlGlobStructureViewElement((PerlGlobVariable) element).setInherited());
                    }
                }
            }
        }
        if (!inheritedResult.isEmpty()) {
            result.addAll(0, inheritedResult);
        }
    }
    return result.toArray(new TreeElement[result.size()]);
}
Also used : PerlExportDescriptor(com.perl5.lang.perl.extensions.packageprocessor.PerlExportDescriptor) FileViewProvider(com.intellij.psi.FileViewProvider) Language(com.intellij.lang.Language) PerlLanguage(com.perl5.lang.perl.PerlLanguage) PodLanguage(com.perl5.lang.pod.PodLanguage) GlobalSearchScope(com.intellij.psi.search.GlobalSearchScope) PsiFile(com.intellij.psi.PsiFile) PsiElement(com.intellij.psi.PsiElement) TreeElement(com.intellij.ide.util.treeView.smartTree.TreeElement) StructureViewTreeElement(com.intellij.ide.structureView.StructureViewTreeElement) SortableTreeElement(com.intellij.ide.util.treeView.smartTree.SortableTreeElement) Project(com.intellij.openapi.project.Project) PerlLightConstantDefinitionElement(com.perl5.lang.perl.parser.constant.psi.light.PerlLightConstantDefinitionElement) PodStructureViewElement(com.perl5.lang.pod.idea.structureView.PodStructureViewElement) PerlIdentifierOwner(com.perl5.lang.perl.psi.properties.PerlIdentifierOwner) NotNull(org.jetbrains.annotations.NotNull)

Example 5 with PerlGlobVariable

use of com.perl5.lang.perl.psi.PerlGlobVariable in project Perl5-IDEA by Camelcade.

the class PerlSubReferenceSimple method getResolveResults.

@NotNull
public List<ResolveResult> getResolveResults(List<PsiElement> relatedItems) {
    List<ResolveResult> result = new ArrayList<>();
    resetFlags();
    for (PsiElement element : relatedItems) {
        if (!isAutoloaded() && element instanceof PerlIdentifierOwner && PerlSubUtil.SUB_AUTOLOAD.equals(((PerlIdentifierOwner) element).getName())) {
            setAutoloaded();
        }
        if (!isConstant() && element instanceof PerlLightConstantDefinitionElement) {
            setConstant();
        }
        if (!isDeclared() && element instanceof PerlSubDeclarationElement) {
            setDeclared();
        }
        if (!isDefined() && element instanceof PerlSubDefinitionElement) {
            setDefined();
        }
        if (!isXSub() && element instanceof PerlSubElement && ((PerlSubElement) element).isXSub()) {
            setXSub();
        }
        if (!isAliased() && element instanceof PerlGlobVariable) {
            setAliased();
        }
        result.add(new PsiElementResolveResult(element));
    }
    return result;
}
Also used : PerlLightConstantDefinitionElement(com.perl5.lang.perl.parser.constant.psi.light.PerlLightConstantDefinitionElement) PerlSubElement(com.perl5.lang.perl.psi.PerlSubElement) ArrayList(java.util.ArrayList) PerlGlobVariable(com.perl5.lang.perl.psi.PerlGlobVariable) PerlSubDeclarationElement(com.perl5.lang.perl.psi.PerlSubDeclarationElement) PsiElementResolveResult(com.intellij.psi.PsiElementResolveResult) PsiElementResolveResult(com.intellij.psi.PsiElementResolveResult) ResolveResult(com.intellij.psi.ResolveResult) PerlSubDefinitionElement(com.perl5.lang.perl.psi.PerlSubDefinitionElement) PsiElement(com.intellij.psi.PsiElement) PerlIdentifierOwner(com.perl5.lang.perl.psi.properties.PerlIdentifierOwner) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

PsiElement (com.intellij.psi.PsiElement)7 Project (com.intellij.openapi.project.Project)5 PerlGlobVariable (com.perl5.lang.perl.psi.PerlGlobVariable)5 NotNull (org.jetbrains.annotations.NotNull)5 GlobalSearchScope (com.intellij.psi.search.GlobalSearchScope)4 PerlExportDescriptor (com.perl5.lang.perl.extensions.packageprocessor.PerlExportDescriptor)3 StringUtil (com.intellij.openapi.util.text.StringUtil)2 PsiElementResolveResult (com.intellij.psi.PsiElementResolveResult)2 ResolveResult (com.intellij.psi.ResolveResult)2 PerlLightConstantDefinitionElement (com.perl5.lang.perl.parser.constant.psi.light.PerlLightConstantDefinitionElement)2 PerlSubElement (com.perl5.lang.perl.psi.PerlSubElement)2 PerlIdentifierOwner (com.perl5.lang.perl.psi.properties.PerlIdentifierOwner)2 PodLanguage (com.perl5.lang.pod.PodLanguage)2 ArrayList (java.util.ArrayList)2 CompletionParameters (com.intellij.codeInsight.completion.CompletionParameters)1 CompletionProvider (com.intellij.codeInsight.completion.CompletionProvider)1 CompletionResultSet (com.intellij.codeInsight.completion.CompletionResultSet)1 PlainPrefixMatcher (com.intellij.codeInsight.completion.PlainPrefixMatcher)1 LookupElementBuilder (com.intellij.codeInsight.lookup.LookupElementBuilder)1 StructureViewTreeElement (com.intellij.ide.structureView.StructureViewTreeElement)1