From 69e995193e5a002560317ee9c8df78d2d1cf17b6 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 21 Mar 2017 17:48:51 +0100 Subject: [PATCH] Don't mark the PSI element created by PsiAnnotationStubImpl as generated code --- .../com/intellij/psi/impl/PsiElementFactoryImpl.java | 12 +++++++++++- .../impl/java/stubs/impl/PsiAnnotationStubImpl.java | 7 +++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java index e5e1ad70a363..051d8b1ad517 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -677,6 +677,16 @@ public class PsiElementFactoryImpl extends PsiJavaParserFacadeImpl implements Ps return psiAnnotation; } + public PsiAnnotation createAnnotationFromText(@NotNull final String annotationText, + @Nullable final PsiElement context, + boolean markGenerated) throws IncorrectOperationException { + final PsiAnnotation psiAnnotation = super.createAnnotationFromText(annotationText, context); + if (markGenerated) { + GeneratedMarkerVisitor.markGenerated(psiAnnotation); + } + return psiAnnotation; + } + @NotNull @Override public PsiCodeBlock createCodeBlockFromText(@NotNull final String text, @Nullable final PsiElement context) throws IncorrectOperationException { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiAnnotationStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiAnnotationStubImpl.java index 47b3d9e3d8c4..51bc0a5ed815 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiAnnotationStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiAnnotationStubImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.psi.JavaPsiFacade; import com.intellij.psi.PsiAnnotation; import com.intellij.psi.PsiJavaParserFacade; +import com.intellij.psi.impl.PsiElementFactoryImpl; import com.intellij.psi.impl.java.stubs.JavaStubElementTypes; import com.intellij.psi.impl.java.stubs.PsiAnnotationStub; import com.intellij.psi.impl.source.CharTableImpl; @@ -63,7 +64,9 @@ public class PsiAnnotationStubImpl extends StubBase implements Ps String text = getText(); try { PsiJavaParserFacade facade = JavaPsiFacade.getInstance(getProject()).getParserFacade(); - annotation = facade.createAnnotationFromText(text, getPsi()); + annotation = facade instanceof PsiElementFactoryImpl + ? ((PsiElementFactoryImpl) facade).createAnnotationFromText(text, getPsi(), false) + : facade.createAnnotationFromText(text, getPsi()); myParsedFromRepository = new SoftReference<>(annotation); return annotation; }