mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
disable "create enum constant" when executing it would result in psi/text inconsistency
This commit is contained in:
@@ -30,6 +30,7 @@ import com.intellij.psi.JavaPsiFacade
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiEnumConstant
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
|
||||
class CreateEnumConstantAction(targetClass: PsiClass, request: CreateFieldRequest) : CreateFieldActionBase(targetClass, request) {
|
||||
|
||||
@@ -87,6 +88,10 @@ private class EnumConstantData(
|
||||
|
||||
private fun extractRenderData(targetClass: PsiClass, request: CreateFieldRequest): EnumConstantData? {
|
||||
if (!targetClass.isEnum) return null
|
||||
|
||||
val lastConstant = targetClass.fields.filterIsInstance<PsiEnumConstant>().lastOrNull()
|
||||
if (lastConstant != null && PsiTreeUtil.hasErrorElements(lastConstant)) return null
|
||||
|
||||
if (!checkExpectedTypes(request.fieldType, targetClass, targetClass.project)) return null
|
||||
return EnumConstantData(targetClass, request.fieldName)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
// "Create enum constant 'Natural'" "false"
|
||||
class ParagraphStyle {
|
||||
TextDirection textDirection = TextDirection.Nat<caret>ural;
|
||||
|
||||
public enum TextDirection {
|
||||
a(b;
|
||||
int x;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user