[PSI] allow creating KtFiles with eventSystemEnabled = true in KtPsiFactory

so we have a VirtualFile for every KtFile created by it

^KT-57930
This commit is contained in:
Ilya Kirillov
2023-04-11 15:29:11 +02:00
committed by Space Team
parent 3b681cd2eb
commit 2beb4c0017
@@ -59,22 +59,28 @@ var KtFile.analysisContext: PsiElement? by UserDataProperty(Key.create("ANALYSIS
class KtPsiFactory private constructor( class KtPsiFactory private constructor(
private val project: Project, private val project: Project,
private val markGenerated: Boolean, private val markGenerated: Boolean,
private val context: PsiElement? private val context: PsiElement?,
private val eventSystemEnabled: Boolean,
) { ) {
companion object { companion object {
@JvmStatic @JvmStatic
@JvmOverloads @JvmOverloads
fun contextual(context: PsiElement, markGenerated: Boolean = true): KtPsiFactory { fun contextual(context: PsiElement, markGenerated: Boolean = true, eventSystemEnabled: Boolean = false): KtPsiFactory {
return KtPsiFactory(context.project, markGenerated, context) return KtPsiFactory(context.project, markGenerated, context, eventSystemEnabled)
} }
} }
@JvmOverloads @JvmOverloads
constructor(project: Project, markGenerated: Boolean = true) : this(project, markGenerated, context = null) constructor(project: Project, markGenerated: Boolean = true) :
this(project, markGenerated, context = null, eventSystemEnabled = false)
constructor(project: Project, markGenerated: Boolean = true, eventSystemEnabled: Boolean) :
this(project, markGenerated, context = null, eventSystemEnabled = eventSystemEnabled)
@JvmOverloads @JvmOverloads
@Deprecated("Use 'KtPsiFactory(project, markGenerated)' or 'KtPsiFactory.contextual(context, markGenerated)' instead") @Deprecated("Use 'KtPsiFactory(project, markGenerated)' or 'KtPsiFactory.contextual(context, markGenerated)' instead")
constructor(element: KtElement, markGenerated: Boolean = true) : this(element.project, markGenerated, context = null) constructor(element: KtElement, markGenerated: Boolean = true) : this(element.project, markGenerated, context = null, eventSystemEnabled = false)
fun createValKeyword(): PsiElement { fun createValKeyword(): PsiElement {
val property = createProperty("val x = 1") val property = createProperty("val x = 1")
@@ -240,7 +246,7 @@ class KtPsiFactory private constructor(
KotlinFileType.INSTANCE, KotlinFileType.INSTANCE,
text, text,
LocalTimeCounter.currentTime(), LocalTimeCounter.currentTime(),
false, eventSystemEnabled,
markGenerated markGenerated
) as KtFile ) as KtFile
} }