【问题标题】:Automaticity sort class items in PlantUMLPlantUML中的自动排序类项目
【发布时间】:2022-08-21 22:53:50
【问题描述】:

有时按字母顺序对键进行排序非常烦人,尤其是在随着时间增长的较大表格中。

我们来看这张图:

@startuml
!define Table(name,desc) class name as \"desc\" << (T,white) >>
!define primary_key(x) <b><color:b8861b><&key></color> x</b>
!define column(x) <color:black><&media-record></color> x

Table(testTable, \"demoTable\") {
column(zzz)
column(aaaa)
column(gggg)
}
@enduml

PlantUML 是否有任何选项,它会根据我的名称对我的column 条目进行排序? 我想显示图表,就好像我将它写成

@startuml
!define Table(name,desc) class name as \"desc\" << (T,white) >>
!define primary_key(x) <b><color:b8861b><&key></color> x</b>
!define column(x) <color:black><&media-record></color> x

Table(testTable, \"demoTable\") {
column(aaaa)
column(gggg)
column(zzz)
}
@enduml

是否可以使用内置工具,或者您知道如何实现这一点?

  • 谢谢@qwerty_so 的编辑,完全错过了直接包含:)。
  • 可能是您没有放置图片的特权。来得早,但不是一下子...
  • 至于您的脚本:我不使用 PlantUML,但我可能会编写一个小 Python 脚本来进行排序。看起来语法并不过分复杂。如果您对编辑有简单的限制,即使没有解析器也可以完成。
  • 是的,一个 Python 脚本会很好。但是我们使用 Markdown (GitLab Wiki) 中嵌入的 PlantUML,所以如果我不需要手动或“离线脚本”,它会很方便

标签: uml plantuml


【解决方案1】:

您可以向PlantUML Q&A Forum 推荐该功能。

同时,为什么不使用!include 并对操作系统中的项目进行排序。这是一个示例:

@startuml
!define Table(name,desc) class name as "desc" << (T,white) >>
!define primary_key(x) <b><color:b8861b><&key></color> x</b>
!define column(x) <color:black><&media-record></color> x

Table(testTable, "demoTable") {
!include items.include
}

Table(testTableSorted, "demoTable(sorted)") {
!include sorted_items.include
}
@enduml

您可以始终保持文件排序,或对其副本进行排序:

sort items.include > sorted_items.include

【讨论】:

    猜你喜欢
    • 2018-10-05
    • 2021-11-03
    • 2017-04-12
    • 1970-01-01
    • 2020-05-03
    • 2012-05-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多