Skip to content

Commit a9a9e88

Browse files
committed
修复模板合并无法使用占位符, 完善文件模板
1 parent af185e4 commit a9a9e88

File tree

8 files changed

+70
-22
lines changed

8 files changed

+70
-22
lines changed

resources/fileTemplates/Template Application.java.ft

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package ${PACKAGE_NAME}.${FEATURE_NAME}.${MODULE_NAME};
1+
package ${PACKAGE_NAME};
22

3-
public class ${APPLICATION_NAME} extends BaseApplication{
3+
#parse("File Header.java")
4+
public class ${APPLICATION_NAME}App extends BaseApplication{
45

56
public void onCreate(){
67

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package ${PACKAGE_NAME};
2+
3+
import com.blankj.utilcode.util.ApiUtils;
4+
5+
#parse("File Header.java")
6+
public abstract class ${FEATURE_NAME}Api extends ApiUtils.BaseApi {
7+
8+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package ${PACKAGE_NAME};
2+
3+
import ${PACKAGE_NAME}.export.${FEATURE_NAME}Api;
4+
import com.blankj.utilcode.util.ApiUtils;
5+
6+
#parse("File Header.java")
7+
@ApiUtils.Api
8+
public class Feature1ApiImpl extends ${FEATURE_NAME}Api {
9+
10+
11+
}

resources/fileTemplates/Template MainActivity.java.ft

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.appcompat.app.AppCompatActivity;
44
import androidx.annotation.Nullable;
55
import android.os.Bundle;
66

7+
#parse("File Header.java")
78
public class MainActivity extends AppCompatActivity {
89

910
@Override
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
dependencies{
1+
dependencies {
22

33
}

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

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,28 @@ class FileTreeDsl() : FileTreeNode() {
5858
fun FileTreeNode.include(other: FileTreeNode, override: Boolean = false) {
5959
if (!isDir) return
6060
other.children.forEach {
61-
val clone = it.clone()
61+
val includeChild = it.clone()
6262
if (other.placeholders != null) {
63-
if (clone.placeholders == null) {
64-
clone.placeholders = mutableMapOf()
63+
if (includeChild.placeholders == null) {
64+
includeChild.placeholders = mutableMapOf()
65+
}
66+
other.placeholders?.forEach { k, v ->
67+
if (getFileTemplateInherit()?.containsKey(k) != true) {
68+
includeChild.placeholders?.put(k, v)
69+
}
6570
}
66-
clone.placeholders?.putAll(other.placeholders!!)
6771
}
6872
if (other.fileTemplates != null) {
69-
if (clone.fileTemplates == null) {
70-
clone.fileTemplates = mutableMapOf()
73+
if (includeChild.fileTemplates == null) {
74+
includeChild.fileTemplates = mutableMapOf()
75+
}
76+
other.fileTemplates?.forEach { k, v ->
77+
if (fileTemplates?.containsKey(k) != true) {
78+
includeChild.fileTemplates?.put(k, v)
79+
}
7180
}
72-
clone.fileTemplates?.putAll(other.fileTemplates!!)
7381
}
74-
addChild(clone, override)
82+
addChild(includeChild, override)
7583
}
7684
}
7785

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,12 @@ open class FileTreeNode() {
129129
return getRealName(this.name)
130130
}
131131

132-
fun getRealName(fileName: String = this.name): String {
133-
return fileName.replacePlaceholder(getPlaceholderInherit(), !isDir)
132+
private fun getRealName(fileName: String = this.name): String {
133+
return if (isDir) {
134+
fileName.replacePlaceholder(getPlaceholderInherit(), false).toLowerCase()
135+
} else {
136+
fileName.replacePlaceholder(getPlaceholderInherit(), true)
137+
}
134138
}
135139

136140
fun getFileTemplateInherit(): MutableMap<String, String>? {
@@ -368,7 +372,11 @@ open class FileTreeNode() {
368372
}
369373
}
370374
})
371-
str.append(getRealName()).append("\n")
375+
str.append(getRealName())
376+
if (isDir) {
377+
// str.append("\tplaceholder: ").append(placeholders)
378+
}
379+
str.append("\n")
372380

373381
if (!realChildren.isNullOrEmpty()) {
374382
head.push(when {

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

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@ object AucTemplate {
1515
private val aucFileTemplates: () -> MutableMap<String, String> = {
1616
mutableMapOf(
1717
Pair("AndroidManifest.xml", "Template Manifest.xml"),
18-
Pair("Application.java", "Template Application.java"),
1918
Pair("build.gradle", "Template build.gradle"),
20-
Pair("\${APPLICATION_NAME}.java", "Template Application.java")
19+
Pair("MainActivity.java", "Template MainActivity.java"),
20+
Pair("\${FEATURE_NAME}App.java", "Template Application.java"),
21+
Pair("\${FEATURE_NAME}Api.java", "Template AucApiClass.java"),
22+
Pair("\${FEATURE_NAME}ApiImpl.java", "Template AucApiImplClass.java")
2123
)
2224
}
2325

2426
private val aucPlaceholders: () -> MutableMap<String, String> = {
2527
mutableMapOf(
26-
Pair("PACKAGE_NAME", "com/example"),
27-
Pair("FEATURE_NAME", "feature"),
28-
Pair("APPLICATION_NAME", "App")
28+
Pair("PACKAGE_NAME", "com.example"),
29+
Pair("FEATURE_NAME", "Feature1")
2930
)
3031
}
3132

@@ -113,9 +114,19 @@ object AucTemplate {
113114
addFileTemplates(aucFileTemplates())
114115
addPlaceholders(aucPlaceholders())
115116
dir("\${FEATURE_NAME}") {
116-
include(APP)
117-
include(PKG)
118-
include(EXPORT)
117+
118+
include(APP {
119+
placeholders?.remove("\${FEATURE_NAME}")
120+
placeholders?.remove("\${PACKAGE_NAME}")
121+
})
122+
include(PKG {
123+
placeholders?.remove("\${FEATURE_NAME}")
124+
placeholders?.remove("\${PACKAGE_NAME}")
125+
})
126+
include(EXPORT {
127+
placeholders?.remove("\${FEATURE_NAME}")
128+
placeholders?.remove("\${PACKAGE_NAME}")
129+
})
119130
}
120131
}
121132
}

0 commit comments

Comments
 (0)