From 2c57853dbe076f473cb62f6c8799f6c1c142d0a5 Mon Sep 17 00:00:00 2001 From: "Vitaliy.Bibaev" Date: Tue, 10 Oct 2017 13:35:54 +0300 Subject: [PATCH] Add an extension point to support standard library in kotlin --- .../lib/JavaStandardLibrarySupportProvider.kt | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/JavaStandardLibrarySupportProvider.kt diff --git a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/JavaStandardLibrarySupportProvider.kt b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/JavaStandardLibrarySupportProvider.kt new file mode 100644 index 00000000000..723b65337dc --- /dev/null +++ b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/JavaStandardLibrarySupportProvider.kt @@ -0,0 +1,32 @@ +package com.intellij.debugger.streams.kotlin.lib + +import com.intellij.debugger.streams.kotlin.psi.impl.KotlinJavaStreamChainBuilder +import com.intellij.debugger.streams.kotlin.trace.dsl.KotlinStatementFactory +import com.intellij.debugger.streams.kotlin.trace.impl.KotlinTraceExpressionBuilder +import com.intellij.debugger.streams.lib.LibrarySupport +import com.intellij.debugger.streams.lib.LibrarySupportProvider +import com.intellij.debugger.streams.lib.impl.StandardLibrarySupport +import com.intellij.debugger.streams.trace.TraceExpressionBuilder +import com.intellij.debugger.streams.trace.dsl.impl.DslImpl +import com.intellij.debugger.streams.wrapper.StreamChainBuilder +import com.intellij.openapi.project.Project + +/** + * @author Vitaliy.Bibaev + */ +class JavaStandardLibrarySupportProvider : LibrarySupportProvider { + private companion object { + val builder = KotlinJavaStreamChainBuilder() + val support = StandardLibrarySupport() + val dsl = DslImpl(KotlinStatementFactory()) + } + + override fun getLanguageId(): String = LibraryUtil.KOTLIN_LANGUAGE_ID + + override fun getChainBuilder(): StreamChainBuilder = builder + + override fun getLibrarySupport(): LibrarySupport = support + + override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = + KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl)) +} \ No newline at end of file