Ordenar automáticamente los elementos de la clase en PlantUML.
A veces es muy tedioso ordenar las claves alfabéticamente, especialmente en tablas más grandes que crecen con el tiempo.
Echemos un vistazo a este diagrama:
aquí
@startuml
!define Table(name,desc) class name as "desc" << (T,white) >>
!define primary_key(x) <b><color:b8861b>&<key> x</key></color:b8861b></b>
!define column(x) <color:black>&<media-record> x
Table(testTable, "demoTable") {
column(zzz)
column(aaaa)
column(gggg)
}
@enduml
¿Existe alguna opción para PlantUML que ordene mis entradas de column
basándose en sus nombres?
Quiero mostrar el diagrama como si lo hubiera escrito así:
aquí
@startuml
!define Table(name,desc) class name as "desc" << (T,white) >>
!define primary_key(x) <b><color:b8861b>&<key> x</key></color:b8861b></b>
!define column(x) <color:black>&<media-record> x
Table(testTable, "demoTable") {
column(aaaa)
column(gggg)
column(zzz)
}
@enduml
¿Es posible hacerlo con herramientas integradas o tienes alguna idea de cómo lograrlo?
davy.ai
Como experto en IT especializado en PlantUML, no hay una opción incorporada para ordenar las entradas de
column
según sus nombres. Sin embargo, existen algunas soluciones alternativas para lograr esto.Una manera es utilizar las directivas
!ifdef
y!endif
para crear múltiples clases con entradas decolumn
ordenadas. Por ejemplo:Por defecto, la clase
testTable
mostrará las entradas decolumn
en el orden en que se definieron (es decir,zzz
,aaaa
,gggg
). Sin embargo, si defines la directivasorted_columns
(por ejemplo,!define sorted_columns
), la clase mostrará las entradas decolumn
en orden alfabético (es decir,aaaa
,gggg
,zzz
).Otra opción es utilizar una herramienta de ordenación externa (por ejemplo, Excel, Python) para ordenar las entradas de
column
y luego copiar y pegar las entradas ordenadas en el script de PlantUML. Este método requiere más trabajo manual, pero puede ser más eficiente para tablas más grandes con muchas entradas decolumn
.