[CMI] Add ability to copy ParsedCodeMetaInfo

This commit is contained in:
Dmitriy Novozhilov
2020-12-02 15:50:01 +03:00
parent 3bf60b3acc
commit d6ff83c7d8
2 changed files with 23 additions and 2 deletions
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.codeMetaInfo.model
import org.jetbrains.kotlin.codeMetaInfo.renderConfigurations.AbstractCodeMetaInfoRenderConfiguration
import org.jetbrains.kotlin.codeMetaInfo.renderConfigurations.ParsedCodeMetaInfoRenderConfiguration
class ParsedCodeMetaInfo(
override val start: Int,
@@ -14,7 +14,7 @@ class ParsedCodeMetaInfo(
override val tag: String,
val description: String?
) : CodeMetaInfo {
override val renderConfiguration = object : AbstractCodeMetaInfoRenderConfiguration(false) {}
override val renderConfiguration = ParsedCodeMetaInfoRenderConfiguration
override fun asString(): String = renderConfiguration.asString(this)
@@ -29,4 +29,9 @@ class ParsedCodeMetaInfo(
result = 31 * result + tag.hashCode()
return result
}
fun copy(): ParsedCodeMetaInfo {
return ParsedCodeMetaInfo(start, end, attributes.toMutableList(), tag, description)
}
}
@@ -0,0 +1,16 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.codeMetaInfo.renderConfigurations
import org.jetbrains.kotlin.codeMetaInfo.model.CodeMetaInfo
import org.jetbrains.kotlin.codeMetaInfo.model.ParsedCodeMetaInfo
object ParsedCodeMetaInfoRenderConfiguration : AbstractCodeMetaInfoRenderConfiguration() {
override fun asString(codeMetaInfo: CodeMetaInfo): String {
require(codeMetaInfo is ParsedCodeMetaInfo)
return super.asString(codeMetaInfo) + (codeMetaInfo.description?.let { "(\"$it\")" } ?: "")
}
}