Skip to content

Commit b0e6ddc

Browse files
committed
fix: placeholder don't work when call FileTreeNode.include
1 parent 2b22fbd commit b0e6ddc

8 files changed

Lines changed: 48 additions & 38 deletions

File tree

resources/META-INF/plugin.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ Any question please <a href='https://github.com/dengzii/GenerateModuleFromTempla
5151

5252
<extensions defaultExtensionNs="com.intellij">
5353
<fileTemplateGroup implementation="com.dengzii.plugin.template.template.FileTemplateFactory" order="first"/>
54-
<internalFileTemplate name="AndroidManifest" id="com.dengzii.plugin.template.ft.manifest"/>
5554
<applicationConfigurable groupId="tools" displayName="Module Template Settings"
5655
id="preferences.ModuleTemplateConfig"
5756
instance="com.dengzii.plugin.template.TemplateConfigurable"/>

resources/fileTemplates/Template AndroidManifest.xml.ft

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="${PACKAGE_NAME}.${FEATURE_NAME}.${MODULE_NAME}">
4+
5+
<application>
6+
7+
</application>
8+
9+
</manifest>

src/com/dengzii/plugin/template/model/FileTreeNode.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ open class FileTreeNode private constructor() {
8888
Logger.d(TAG, "node has already exists $child")
8989
return false
9090
} else {
91-
Logger.d(TAG, "override node ${child.getPath()}")
91+
Logger.w(TAG, "THE SAME CHILE ALREADY EXISTS IN $name: ${child.name}")
9292
}
9393
}
9494
child.parent = this
@@ -206,11 +206,26 @@ open class FileTreeNode private constructor() {
206206

207207
/**
208208
* merge all children of another node to this.
209+
* all placeholders and file templates of target node
210+
* will be copied to it's each children
209211
*/
210212
fun include(other: FileTreeNode, override: Boolean = false) {
211213
if (!isDir) return
212214
other.children.forEach {
213-
addChild(it.clone(), override)
215+
val clone = it.clone()
216+
if (other.placeholders != null) {
217+
if (clone.placeholders == null) {
218+
clone.placeholders = mutableMapOf()
219+
}
220+
clone.placeholders?.putAll(other.placeholders!!)
221+
}
222+
if (other.fileTemplates != null) {
223+
if (clone.fileTemplates == null) {
224+
clone.fileTemplates = mutableMapOf()
225+
}
226+
clone.fileTemplates?.putAll(other.fileTemplates!!)
227+
}
228+
addChild(clone, override)
214229
}
215230
}
216231

src/com/dengzii/plugin/template/template/AucTemplate.kt

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,14 @@ import com.dengzii.plugin.template.model.FileTreeNode
1010
* time : 2019/1/1
1111
* desc :
1212
</pre> */
13-
1413
object AucTemplate {
1514

1615
private val aucFileTemplates: () -> MutableMap<String, String> = {
1716
mutableMapOf(
18-
Pair("AndroidManifest.xml", "Template AndroidManifest.xml"),
19-
Pair("Application.java", "Template App.java"),
17+
Pair("AndroidManifest.xml", "Template Manifest.xml"),
18+
Pair("Application.java", "Template Application.java"),
2019
Pair("build.gradle", "Template build.gradle"),
21-
Pair("\${APPLICATION_NAME}.java", "Template App.java")
20+
Pair("\${APPLICATION_NAME}.java", "Template Application.java")
2221
)
2322
}
2423

@@ -35,7 +34,7 @@ object AucTemplate {
3534
placeholders(aucPlaceholders())
3635
placeholder("MODULE_NAME", "app")
3736

38-
module_name {
37+
dir("app") {
3938
src {
4039
main {
4140
java {
@@ -63,15 +62,14 @@ object AucTemplate {
6362
fileTemplates(aucFileTemplates())
6463
placeholders(aucPlaceholders())
6564
placeholder("MODULE_NAME", "pkg")
66-
module_name {
65+
dir("pkg") {
6766
src {
6867
main {
6968
java {
7069
pkg_name {
7170
feature_name {
7271
module_name {
73-
main {}
74-
file("\${MODULE_NAME}ApiImpl.java")
72+
file("\${FEATURE_NAME}ApiImpl.java")
7573
}
7674

7775
}
@@ -91,15 +89,15 @@ object AucTemplate {
9189
fileTemplates(aucFileTemplates())
9290
placeholders(aucPlaceholders())
9391
placeholder("MODULE_NAME", "export")
94-
module_name {
92+
dir("export") {
9593
src {
9694
main {
9795
java {
9896
pkg_name {
9997
feature_name {
10098
module_name {
10199
dir("api") {
102-
file("\${MODULE_NAME}Api.java")
100+
file("\${FEATURE_NAME}Api.java")
103101
}
104102
dir("bean")
105103
}

src/com/dengzii/plugin/template/template/FileTemplateFactory.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@ class FileTemplateFactory : FileTemplateGroupDescriptorFactory {
2020
override fun getFileTemplatesDescriptor(): FileTemplateGroupDescriptor {
2121

2222
val descriptor = FileTemplateGroupDescriptor("Module Template Plugin Descriptor", AllIcons.Nodes.Plugin)
23-
val manifestDesc = FileTemplateDescriptor("AndroidManifest.xml", StdFileTypes.XML.icon)
23+
val manifestDesc = FileTemplateDescriptor("Manifest.xml", StdFileTypes.XML.icon)
2424
val applicationDesc = FileTemplateDescriptor("Application.java", StdFileTypes.JAVA.icon)
25-
val applicationDescKt = FileTemplateDescriptor("Application.kt", StdFileTypes.JAVA.icon)
2625
descriptor.addTemplate(applicationDesc)
2726
descriptor.addTemplate(manifestDesc)
2827
return descriptor

src/com/dengzii/plugin/template/template/Template.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ object Template {
4141
placeholder("PACKAGE_NAME", "com.example")
4242

4343
fileTemplate("MainActivity.java", "Template MainActivity.java")
44-
fileTemplate("AndroidManifest.xml", "Template AndroidManifest.xml")
44+
fileTemplate("AndroidManifest.xml", "Template Manifest.xml")
4545
fileTemplate("build.gradle", "Template build.gradle")
4646

4747
module_name {

src/com/dengzii/plugin/template/utils/Logger.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.dengzii.plugin.template.utils
22

33
import com.jetbrains.rd.util.printlnError
4+
import java.text.SimpleDateFormat
45

56
/**
67
* <pre>
@@ -14,6 +15,7 @@ import com.jetbrains.rd.util.printlnError
1415
object Logger {
1516

1617
var enable: Boolean = true
18+
var timeFormatter = SimpleDateFormat("MM-dd hh:mm:ss")
1719

1820
fun e(tag: String, log: String) {
1921
log("e", tag, log)
@@ -32,15 +34,24 @@ object Logger {
3234
log("d", tag, log)
3335
}
3436

37+
fun w(tag: String, log: String) {
38+
log("w", tag, log)
39+
}
40+
3541
private fun log(level: String, tag: String, log: String) {
3642
if (!enable) {
3743
return
3844
}
39-
val logStr = "${level.toUpperCase()}/$tag: $log"
45+
46+
val logStr = "${getTime()} ${level.toUpperCase()}/$tag: $log"
4047
if (level == "e") {
4148
printlnError(logStr)
4249
return
4350
}
4451
println(logStr)
4552
}
53+
54+
private fun getTime(): String {
55+
return timeFormatter.format(System.currentTimeMillis())
56+
}
4657
}

0 commit comments

Comments
 (0)