Я работаю над длинным и сложным архитектурным графом. Отступ документа смешивает вкладки, пробелы и уровни отступов, что сводит меня с ума.Auto-indenting graphviz .dot file
Есть ли простой способ автоматически отступать graphviz .dot
файлов в среде Linux?
Чистым инструментом командной строки было бы лучше, но плагины для популярных редакторов, таких как vim, были бы хорошим решением.
Update:
ВИМ отступы есть ошибка с :
в именах узлов в краях. Например, server_a:event -> log_server;
заставляет следующую строку отступать, предположительно, потому что :
анализируется как объявление блока (см. Комментарии к Harry Pehkonen's answer). Цитирование имени узла (например, "server_a":event -> log_server;
) решает эту проблему:
#!/usr/bin/python3
import re
dot=open('components.dot').read()
reg=re.compile("(\s)(\S+)(\:.*\-\>)")
print(reg.sub(r'\1"\2"\3', dot))
Спасибо! Проблема в том, что ':' в ребрах приводят гайки vim. Он рассматривает их как новые кодовые блоки. –
@AdamMatan Я понимаю, что вы имеете в виду. Я смог работать, помещая кавычки, по крайней мере, из одного из узлов. FAIL: node0: port0 -> node1: port1; SUCCEED: "node0": port0 -> node1: port1 ;. Тем не менее, это усложняет любую попытку автоматизировать его :( –
Не совсем - я могу regex решить это. Будем держать вас в курсе. Спасибо! –