[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(
private val project: Project,
private val markGenerated: Boolean,
private val context: PsiElement?
private val context: PsiElement?,
private val eventSystemEnabled: Boolean,
) {
companion object {
@JvmStatic
@JvmOverloads
fun contextual(context: PsiElement, markGenerated: Boolean = true): KtPsiFactory {
return KtPsiFactory(context.project, markGenerated, context)
fun contextual(context: PsiElement, markGenerated: Boolean = true, eventSystemEnabled: Boolean = false): KtPsiFactory {
return KtPsiFactory(context.project, markGenerated, context, eventSystemEnabled)
}
}
@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
@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 {
val property = createProperty("val x = 1")
@@ -240,7 +246,7 @@ class KtPsiFactory private constructor(
KotlinFileType.INSTANCE,
text,
LocalTimeCounter.currentTime(),
false,
eventSystemEnabled,
markGenerated
) as KtFile
}