Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit df63c35

Browse files
committed
refactor(diagram): extract field and method diff builders
Move field and method diff logic into separate functions for clarity and maintainability.
1 parent c90e4b3 commit df63c35

File tree

1 file changed

+41
-24
lines changed

1 file changed

+41
-24
lines changed

exts/ext-git/src/main/kotlin/cc/unitmesh/git/actions/vcs/StructureDiagramBuilder.kt

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -173,31 +173,21 @@ class StructureDiagramBuilder(val project: Project, val changes: List<Change>) {
173173
builder.appendLine(" class $sanitizedClassName {")
174174

175175
// 生成字段变化
176-
val beforeFields = beforeClass.fields.map { extractFieldName(it) }.toSet()
177-
val afterFields = afterClass.fields.map { extractFieldName(it) }.toSet()
176+
buildFields(beforeClass, afterClass, builder)
178177

179-
// 显示删除的字段
180-
beforeFields.subtract(afterFields).forEach { fieldName ->
181-
if (fieldName.isNotEmpty()) {
182-
builder.appendLine(" -$fieldName")
183-
}
184-
}
185-
186-
// 显示保持的字段
187-
beforeFields.intersect(afterFields).forEach { fieldName ->
188-
if (fieldName.isNotEmpty()) {
189-
builder.appendLine(" $fieldName")
190-
}
191-
}
178+
// 生成方法变化
179+
buildMethod(beforeClass, afterClass, className, builder)
192180

193-
// 显示新增的字段
194-
afterFields.subtract(beforeFields).forEach { fieldName ->
195-
if (fieldName.isNotEmpty()) {
196-
builder.appendLine(" +$fieldName")
197-
}
198-
}
181+
builder.appendLine(" }")
182+
builder.appendLine(" $sanitizedClassName : Modified")
183+
}
199184

200-
// 生成方法变化
185+
private fun buildMethod(
186+
beforeClass: ClassContext,
187+
afterClass: ClassContext,
188+
className: String,
189+
builder: StringBuilder
190+
) {
201191
val beforeMethods = beforeClass.methods.map { extractMethodName(it) }.toSet()
202192
val afterMethods = afterClass.methods.map { extractMethodName(it) }.toSet()
203193

@@ -227,9 +217,36 @@ class StructureDiagramBuilder(val project: Project, val changes: List<Change>) {
227217
builder.appendLine(" +$methodName")
228218
}
229219
}
220+
}
230221

231-
builder.appendLine(" }")
232-
builder.appendLine(" $sanitizedClassName : Modified")
222+
private fun buildFields(
223+
beforeClass: ClassContext,
224+
afterClass: ClassContext,
225+
builder: StringBuilder
226+
) {
227+
val beforeFields = beforeClass.fields.map { extractFieldName(it) }.toSet()
228+
val afterFields = afterClass.fields.map { extractFieldName(it) }.toSet()
229+
230+
// 显示删除的字段
231+
beforeFields.subtract(afterFields).forEach { fieldName ->
232+
if (fieldName.isNotEmpty()) {
233+
builder.appendLine(" -$fieldName")
234+
}
235+
}
236+
237+
// 显示保持的字段
238+
beforeFields.intersect(afterFields).forEach { fieldName ->
239+
if (fieldName.isNotEmpty()) {
240+
builder.appendLine(" $fieldName")
241+
}
242+
}
243+
244+
// 显示新增的字段
245+
afterFields.subtract(beforeFields).forEach { fieldName ->
246+
if (fieldName.isNotEmpty()) {
247+
builder.appendLine(" +$fieldName")
248+
}
249+
}
233250
}
234251

235252
/**

0 commit comments

Comments
 (0)