From ca10f3c066308f2b43d714b53f2922b8bd93dc27 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 2 Oct 2024 19:45:33 +0200 Subject: [PATCH] [kotlin] disable inplace rename if name is invalid in the context language ^KTIJ-28346 fixed GitOrigin-RevId: 8c12ad354c842b1cf9939614ebee4eac056b01fd --- .../lang/java/JavaRefactoringSupportProvider.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/java/java-impl-refactorings/src/com/intellij/lang/java/JavaRefactoringSupportProvider.java b/java/java-impl-refactorings/src/com/intellij/lang/java/JavaRefactoringSupportProvider.java index 1960abb32435..a054908fc8fb 100644 --- a/java/java-impl-refactorings/src/com/intellij/lang/java/JavaRefactoringSupportProvider.java +++ b/java/java-impl-refactorings/src/com/intellij/lang/java/JavaRefactoringSupportProvider.java @@ -1,7 +1,7 @@ // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.lang.java; -import com.intellij.lang.refactoring.RefactoringSupportProvider; +import com.intellij.lang.LanguageNamesValidation; import com.intellij.psi.*; import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.search.LocalSearchScope; @@ -58,6 +58,14 @@ public class JavaRefactoringSupportProvider extends JavaBaseRefactoringSupportPr @Override public boolean isMemberInplaceRenameAvailable(@NotNull PsiElement elementToRename, @Nullable PsiElement context) { + if (context != null && context.getLanguage() != elementToRename.getLanguage() && + elementToRename instanceof PsiNamedElement namedElement) { + String name = namedElement.getName(); + if (name != null && !LanguageNamesValidation.isIdentifier(context.getLanguage(), name)) { + return false; + } + } + return elementToRename instanceof PsiMember || elementToRename instanceof PsiJavaModule || isCanonicalConstructorParameter(elementToRename); }