Author Topic: PlantUML Support  (Read 219 times)

TKasparek

  • Senior Community Member
  • Posts: 233
  • Hero Points: 27
PlantUML Support
« on: May 19, 2020, 05:24:13 pm »
There was another comment about PlantUML a few years ago:
https://community.slickedit.com/index.php/topic,15442.0.html

We use doxygen and implant plantuml in comments for explaining complicated architecture. It would be awesome to have the picture show up in a tool window for the area I'm editing. Even if the update is done via a macro invocation, each time it is invoked it would just update the picture (or update live on save or edits.)
I can make a macro that searches for the beginning/end tags and copy it to a file and have it generated. But I'm not sure how would I go about making the image show up in a new dockable tool window? (And ensure it is always the same windows and overwrites the current image?)

Code: [Select]
/**
@startuml{Marrage.png}
actor Alice
actor Bob
Alice -> Bob : Get off the couch!!
Bob -> Alice : Not until you make me a sammich!
@enduml
*/

It would be awesome to have this functionally in a well written macro. There are plug-ins available for many other editors that do this.
plantuml.com
planttext.com

Dennis

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 3076
  • Hero Points: 449
Re: PlantUML Support
« Reply #1 on: May 19, 2020, 11:01:17 pm »
Since the tool can generate SVG, you can generate a small HTML wrapper that references the generated SVG image and you're halfway there.  You just need a tool window with an HTML control that you refresh when you want to.  The preview tool window might be the one to tweak, you can send the information along with the generated HTML comment to the Preview tool window.  That will require some tweaking.  Near the end of tagwin.e / DisplayFile(), use the comments already pulled together from there using _ExtractTagComments2(), check if it has the @startuml / @enduml, send that to the planttext engine, and just add the HTML <img> link to the generated SVG to the comment text.

I'll file an FR to improve our hook code to make it easier to plug in a comment processor like this.