25
Używam graphviz do wizualizacji AST języka, który parsuję. Chciałbym dołączyć kod źródłowy (jako etykietę), ale graphviz wyrównuje tekst wewnątrz etykiety, co zagraża mojemu wcięciu (a kod jest wrażliwy na wcięcia). Oto przykład problemu, druga linia kodu nie powinien być wcięty:Graphviz - jak ustawić tekst na etykietach wyrównanych do lewej?
Jest odpowiednia część wygenerowanego pliku .dot:
graph [fontname=Courier,fontsize=10.0,labeljust=l,nojustify=true];
node [shape=box,width=0.2,height=0.2,fontname=Courier,fontsize=10.0,penwidth=0.5];
edge [weight=1.2,penwidth=0.5,fontname=Courier,fontsize=10.0,labeljust=c];
labelloc="t";
label="\ndef square(a, b) -> a * b\ndef dotProduct(a, b) -> \n a.x * b.x + a.y * b.y\n";
Dziękuję, właśnie tego chciałem. – migimunz
Otrzymuję wynik, że działa tylko dla dwóch linii (jedno wystąpienie '\ l'). Czy ktoś rozpoznaje ten problem? Dla mnie trzecia linia nie jest wyrównana. – Tarrasch
Stary wątek, zdaję sobie sprawę, ale @ Tarrasch: dodanie '\ l' na końcu ostatniej linii rozwiąże to, np. '" Linia 1 \ lLinia 3 \ LLinia 3 \ l "' – JStroop