Analysis API: rework declaration renderer
- refactor code to use PrettyPrinter instead of ad-hoc one - do not print nested local declarations as this does not seem to have use-cases
This commit is contained in:
@@ -8,6 +8,7 @@ dependencies {
|
||||
api(project(":analysis:analysis-api"))
|
||||
api(project(":analysis:analysis-api-impl-barebone"))
|
||||
api(intellijCoreDep()) { includeJars("intellij-core", rootProject = rootProject) }
|
||||
implementation(project(":analysis:analysis-internal-utils"))
|
||||
|
||||
testApiJUnit5()
|
||||
testApi(project(":kotlin-test:kotlin-test-junit"))
|
||||
|
||||
+7
-4
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.api.components.KtDeclarationRendererOptions
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtTypeRendererOptions
|
||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleFileTest
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtPossibleMemberSymbol
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
@@ -18,16 +19,18 @@ abstract class AbstractRendererTest(configurator: FrontendApiTestConfiguratorSer
|
||||
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
|
||||
val options = KtDeclarationRendererOptions.DEFAULT.copy(
|
||||
approximateTypes = true,
|
||||
renderContainingDeclarations = true,
|
||||
renderClassMembers = true,
|
||||
typeRendererOptions = KtTypeRendererOptions.SHORT_NAMES,
|
||||
sortNestedDeclarations = true
|
||||
)
|
||||
|
||||
val actual = executeOnPooledThreadInReadAction {
|
||||
buildString {
|
||||
ktFile.declarations.forEach {
|
||||
analyseForTest(it) {
|
||||
append(it.getSymbol().render(options))
|
||||
ktFile.declarations.forEach { declaration ->
|
||||
analyseForTest(declaration) {
|
||||
val symbol = declaration.getSymbol() as? KtPossibleMemberSymbol ?: return@analyseForTest
|
||||
append(symbol.render(options))
|
||||
appendLine()
|
||||
appendLine()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user