From 7d903b43a110173794f18bbfc987038700cc67f6 Mon Sep 17 00:00:00 2001 From: "Vitaliy.Bibaev" Date: Tue, 19 Dec 2017 20:23:09 +0300 Subject: [PATCH] Add library support extension for kotlin sequence support --- .../lib/KotlinSequenceSupportProvider.kt | 21 +++++++++++++------ .../kotlin/lib/KotlinSequencesSupport.kt | 13 ++++++++++++ .../psi/impl/KotlinSequenceChainBuilder.kt | 2 +- 3 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/KotlinSequencesSupport.kt diff --git a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/KotlinSequenceSupportProvider.kt b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/KotlinSequenceSupportProvider.kt index 43296787dad..926a1781525 100644 --- a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/KotlinSequenceSupportProvider.kt +++ b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/KotlinSequenceSupportProvider.kt @@ -1,9 +1,14 @@ // Copyright 2000-2017 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 com.intellij.debugger.streams.kotlin.lib +import com.intellij.debugger.streams.kotlin.psi.impl.KotlinSequenceChainBuilder +import com.intellij.debugger.streams.kotlin.trace.dsl.KotlinCollectionsPeekCallFactory +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.trace.TraceExpressionBuilder +import com.intellij.debugger.streams.trace.dsl.impl.DslImpl import com.intellij.debugger.streams.wrapper.StreamChainBuilder import com.intellij.openapi.project.Project @@ -13,13 +18,17 @@ import com.intellij.openapi.project.Project class KotlinSequenceSupportProvider : LibrarySupportProvider { override fun getLanguageId(): String = LibraryUtil.KOTLIN_LANGUAGE_ID - override fun getChainBuilder(): StreamChainBuilder { - TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + private companion object { + val builder: StreamChainBuilder = KotlinSequenceChainBuilder() + val support = KotlinSequencesSupport() + val dsl = DslImpl(KotlinStatementFactory(KotlinCollectionsPeekCallFactory())) + val expressionBuilder = KotlinTraceExpressionBuilder(dsl, support.createHandlerFactory(dsl)) } - override fun getLibrarySupport(): LibrarySupport { - TODO("not implemented") //To change body of created functions use File | Settings | File Templates. - } + override fun getChainBuilder(): StreamChainBuilder = builder + + override fun getLibrarySupport(): LibrarySupport = support + + override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = expressionBuilder - override fun getExpressionBuilder(project: Project): TraceExpressionBuilder = TODO() } \ No newline at end of file diff --git a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/KotlinSequencesSupport.kt b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/KotlinSequencesSupport.kt new file mode 100644 index 00000000000..f035a8b5ec6 --- /dev/null +++ b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/lib/KotlinSequencesSupport.kt @@ -0,0 +1,13 @@ +// Copyright 2000-2017 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 com.intellij.debugger.streams.kotlin.lib + +import com.intellij.debugger.streams.lib.impl.LibrarySupportBase + +/** + * @author Vitaliy.Bibaev + */ +class KotlinSequencesSupport : LibrarySupportBase() { + init { + // todo[bibaev]: add supported operations + } +} \ No newline at end of file diff --git a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/impl/KotlinSequenceChainBuilder.kt b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/impl/KotlinSequenceChainBuilder.kt index c230297ef6b..7ccdc49ea80 100644 --- a/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/impl/KotlinSequenceChainBuilder.kt +++ b/idea/idea-jvm/src/com/intellij/debugger/streams/kotlin/psi/impl/KotlinSequenceChainBuilder.kt @@ -4,7 +4,7 @@ package com.intellij.debugger.streams.kotlin.psi.impl /** * @author Vitaliy.Bibaev */ -class KotlinSequenceChainBuilder : KotlinChainBuilderBase(TODO("transmit here a correct transformer")) { +class KotlinSequenceChainBuilder : KotlinChainBuilderBase(KotlinChainTransformerImpl(TODO())) { override fun createChainsBuilder(): ChainBuilder { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. }