package org.elixir_lang.refactoring.variable.rename;
import com.intellij.lang.Language;
import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiNamedElement;
import com.intellij.refactoring.rename.inplace.VariableInplaceRenamer;
import org.elixir_lang.ElixirLanguage;
import org.jetbrains.annotations.NotNull;
import java.util.regex.Pattern;
class Inplace extends VariableInplaceRenamer {
/*
* CONSTANTS
*/
private static final Pattern IDENTIFIER_PATTERN = Pattern.compile("[a-z_][0-9a-zA-Z_]*[?!]?");
/*
* Static Methods
*/
static boolean isIdentifier(String newName) {
return IDENTIFIER_PATTERN.matcher(newName).matches();
}
/*
* Constructors
*/
Inplace(@NotNull PsiNamedElement elementToRename, Editor editor) {
super(elementToRename, editor);
}
/*
* Instance Methods
*/
@Override
protected boolean isIdentifier(String newName, Language language) {
return language == ElixirLanguage.INSTANCE && isIdentifier(newName);
}
}