File tree Expand file tree Collapse file tree 5 files changed +88
-5
lines changed
main/java/com/bennyhuo/kotlin/trimindent/compiler
test/java/com/bennyhuo/kotlin/trimindent/compiler Expand file tree Collapse file tree 5 files changed +88
-5
lines changed Original file line number Diff line number Diff line change 11kotlin.code.style =official
22
3- VERSION_NAME =1.8.20-1.0 .0
3+ VERSION_NAME =1.8.20-1.1 .0
44
55GROUP =com.bennyhuo.kotlin
66
Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ dependencies {
1717
1818 testImplementation(kotlin(" test-junit" ))
1919 testImplementation(" org.jetbrains.kotlin:kotlin-compiler-embeddable" )
20- testImplementation(" com.bennyhuo.kotlin:kotlin-compile-testing-extensions:1.8.0 .0" )
20+ testImplementation(" com.bennyhuo.kotlin:kotlin-compile-testing-extensions:1.8.20-1.2 .0" )
2121}
2222
2323val compileKotlin: KotlinCompile by tasks
@@ -27,4 +27,4 @@ compileKotlin.kotlinOptions.jvmTarget = "1.8"
2727buildConfig {
2828 packageName(" $group .trimindent" )
2929 buildConfigField(" String" , " KOTLIN_PLUGIN_ID" , " \" ${project.property(" KOTLIN_PLUGIN_ID" )} \" " )
30- }
30+ }
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ class TrimIndentIrGenerator : IrGenerationExtension {
2121 val extensionReceiver = irCall.extensionReceiver!!
2222 if (extensionReceiver is IrConst <* > && extensionReceiver.kind == IrConstKind .String ) {
2323 extensionReceiver as IrConst <String >
24- return extensionReceiver.copyWithNewValue(extensionReceiver.value.trimIndent())
24+ return super .visitExpression( extensionReceiver.copyWithNewValue(extensionReceiver.value.trimIndent() ))
2525 }
2626
2727 if (extensionReceiver is IrStringConcatenation ) {
@@ -86,7 +86,7 @@ class TrimIndentIrGenerator : IrGenerationExtension {
8686 }
8787 }
8888
89- return extensionReceiver.copyWithNewValues(args)
89+ return super .visitExpression( extensionReceiver.copyWithNewValues(args) )
9090 }
9191 }
9292
Original file line number Diff line number Diff line change @@ -28,6 +28,11 @@ class TrimIndentTest {
2828 testBase(" blankLine.kt" )
2929 }
3030
31+ @Test
32+ fun embedded () {
33+ testBase(" embedded.kt" )
34+ }
35+
3136 private fun testBase (fileName : String ) {
3237 val loader = FileBasedModuleInfoLoader (" testData/$fileName " )
3338 val sourceModuleInfos = loader.loadSourceModuleInfos()
Original file line number Diff line number Diff line change 1+ // SOURCE
2+ // FILE: Main.kt [MainKt#main]
3+ fun main () {
4+ val list = listOf (1 , 2 , 3 )
5+ val list2 = listOf (" a" , " b" , " c" )
6+ println ("""
7+ A:
8+ ${list.joinToString(" \n " ) {
9+ """
10+ - $it
11+ ${list2.joinToString(" \n " ) { " * $it " }}
12+ """ .trimIndent()
13+ }}
14+ B:
15+ ${
16+ list.joinToString(" \n " ) {
17+ """
18+ - $it
19+ ${list2.joinToString(" \n " ) { " * $it " }}
20+ """ .trimIndent()
21+ }
22+ }
23+ """ .trimIndent())
24+ }
25+ // EXPECT
26+ // FILE: MainKt.main.stdout
27+ A :
28+ - 1
29+ * a
30+ * b
31+ * c
32+ - 2
33+ * a
34+ * b
35+ * c
36+ - 3
37+ * a
38+ * b
39+ * c
40+ B :
41+ - 1
42+ * a
43+ * b
44+ * c
45+ - 2
46+ * a
47+ * b
48+ * c
49+ - 3
50+ * a
51+ * b
52+ * c
53+ // FILE: Main.kt.ir
54+ fun main () {
55+ val list = listOf (1 , 2 , 3 )
56+ val list2 = listOf (" a" , " b" , " c" )
57+ println (" A:\n ${list.joinToString(
58+ separator = " \n "
59+ ) { it: Int ->
60+ " - $it \n ${list2.joinToString(
61+ separator = " \n "
62+ ) { it: String ->
63+ " * $it "
64+ }
65+ .prependIndent(" " )} "
66+ }
67+ .prependIndent(" " )} \n B: \n ${list.joinToString(
68+ separator = " \n "
69+ ) { it: Int ->
70+ " - $it \n ${list2.joinToString(
71+ separator = " \n "
72+ ) { it: String ->
73+ " * $it "
74+ }
75+ .prependIndent(" " )} "
76+ }
77+ .prependIndent(" " )} " )
78+ }
You can’t perform that action at this time.
0 commit comments