Search in sources :

Example 1 with PerlIdentifierRangeProvider

use of com.perl5.lang.perl.parser.PerlIdentifierRangeProvider in project Perl5-IDEA by Camelcade.

the class PerlDelegatingLightNamedElement method setName.

@Override
public PsiElement setName(@NonNls @NotNull String newBaseName) throws IncorrectOperationException {
    // fixme should be in com.perl5.lang.perl.psi.utils.PerlPsiUtil.renameElement()
    PsiElement nameIdentifier = getNameIdentifier();
    ElementManipulator<PsiElement> manipulator = ElementManipulators.getManipulator(nameIdentifier);
    TextRange identifierRange = this instanceof PerlIdentifierRangeProvider ? ((PerlIdentifierRangeProvider) this).getRangeInIdentifier() : ElementManipulators.getValueTextRange(nameIdentifier);
    myNameIdentifier = manipulator.handleContentChange(nameIdentifier, identifierRange, newBaseName);
    myName = getNameComputation().fun(newBaseName);
    return this;
}
Also used : TextRange(com.intellij.openapi.util.TextRange) PerlIdentifierRangeProvider(com.perl5.lang.perl.parser.PerlIdentifierRangeProvider)

Example 2 with PerlIdentifierRangeProvider

use of com.perl5.lang.perl.parser.PerlIdentifierRangeProvider in project Perl5-IDEA by Camelcade.

the class PerlMemberInplaceRenamer method appendAdditionalElement.

private void appendAdditionalElement(@Nullable PsiElement psiElement, Collection<Pair<PsiElement, TextRange>> stringUsages) {
    if (psiElement == null || psiElement.equals(myElementToRename) || !(psiElement instanceof PsiNameIdentifierOwner)) {
        return;
    }
    PsiElement nameIdentifier = ((PsiNameIdentifierOwner) psiElement).getNameIdentifier();
    if (nameIdentifier == null) {
        return;
    }
    TextRange rangeToRename = psiElement instanceof PerlIdentifierRangeProvider ? ((PerlIdentifierRangeProvider) psiElement).getRangeInIdentifier() : ElementManipulators.getValueTextRange(nameIdentifier);
    stringUsages.add(Pair.create(nameIdentifier, rangeToRename));
}
Also used : TextRange(com.intellij.openapi.util.TextRange) PerlIdentifierRangeProvider(com.perl5.lang.perl.parser.PerlIdentifierRangeProvider)

Aggregations

TextRange (com.intellij.openapi.util.TextRange)2 PerlIdentifierRangeProvider (com.perl5.lang.perl.parser.PerlIdentifierRangeProvider)2