From 6a8fb0a040b86c63473d68cd7d2633cf851ffa3a Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Thu, 24 May 2018 14:53:46 +0300 Subject: [PATCH] [groovy] update dummy elements - move GroovyDummyElementType inside GroovyDummyElement; - make GroovyDummyElementType private; - extend GroovyDummyElementType from IFileElementType; - make GroovyDummyElement internal. --- .../groovy/lang/psi/impl/GroovyDummyElement.kt | 18 +++++++++++++++++- .../lang/psi/impl/GroovyDummyElementType.kt | 18 ------------------ 2 files changed, 17 insertions(+), 19 deletions(-) delete mode 100644 plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyDummyElementType.kt diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyDummyElement.kt b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyDummyElement.kt index fabcf00f91c0..735cbc8fe012 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyDummyElement.kt +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyDummyElement.kt @@ -1,7 +1,23 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.plugins.groovy.lang.psi.impl +import com.intellij.lang.ASTNode +import com.intellij.lang.PsiBuilderFactory +import com.intellij.psi.PsiElement import com.intellij.psi.impl.source.tree.FileElement import com.intellij.psi.tree.IElementType +import com.intellij.psi.tree.IFileElementType +import org.jetbrains.plugins.groovy.GroovyLanguage +import org.jetbrains.plugins.groovy.lang.parser.GroovyParser -class GroovyDummyElement(val childType: IElementType, text: CharSequence) : FileElement(GroovyDummyElementType, text) +internal class GroovyDummyElement(private val childType: IElementType, text: CharSequence) : FileElement(GroovyDummyElementType, text) { + + private object GroovyDummyElementType : IFileElementType("GROOVY_DUMMY_ELEMENT", GroovyLanguage) { + + override fun doParseContents(chameleon: ASTNode, psi: PsiElement): ASTNode { + val builder = PsiBuilderFactory.getInstance().createBuilder(psi.project, chameleon) + val dummyElement = chameleon as GroovyDummyElement + return GroovyParser().parse(dummyElement.childType, builder) + } + } +} diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyDummyElementType.kt b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyDummyElementType.kt deleted file mode 100644 index 6693934d5c34..000000000000 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyDummyElementType.kt +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -package org.jetbrains.plugins.groovy.lang.psi.impl - -import com.intellij.lang.ASTNode -import com.intellij.lang.PsiBuilderFactory -import com.intellij.psi.tree.ILazyParseableElementType -import org.jetbrains.plugins.groovy.GroovyLanguage -import org.jetbrains.plugins.groovy.lang.parser.GroovyParser - -object GroovyDummyElementType : ILazyParseableElementType("GROOVY_DUMMY_ELEMENT", GroovyLanguage) { - - override fun parseContents(chameleon: ASTNode): ASTNode { - val dummyElement = chameleon as GroovyDummyElement - val builder = PsiBuilderFactory.getInstance().createBuilder(chameleon.psi.project, chameleon) - GroovyParser().parseLight(dummyElement.childType, builder) - return builder.treeBuilt - } -}