Add library support extension for kotlin sequence support

This commit is contained in:
Vitaliy.Bibaev
2017-12-19 20:23:09 +03:00
committed by Yan Zhulanow
parent c69e0c0d01
commit 7d903b43a1
3 changed files with 29 additions and 7 deletions
@@ -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()
}
@@ -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
}
}
@@ -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.
}