yoshimkd / swift-auto-diagram

A Ruby script that scans all swift code from the specified folders and files and automatically generates an entity diagram (similar to a class diagram) which can be viewed in a browser.
MIT License
496 stars 57 forks source link

Html entity boxes fixes #21

Closed andreinagy closed 5 years ago

andreinagy commented 5 years ago

HI all,

I had some free time today and decided to take a look over swift-auto-diagram. First of all I want to thank you for making it, it's a super nice tool.

Basically I wanted to find a fix to show the entities with properties and methods (like the older commit). For this I formatted the files, made a parser-output.js so I could easily edit the javascript file and moved code to files so it's easier to follow. Also, I ran rubocop -a to lint ruby code and it fixed some offences but not all.

The latest version of visjs is able to show multiline labels, so I updated it. Although it supports html strings in labels, it looks like <br> and <hr> tags don't work for labels, hence the ------ :D .

I found another set of options for the diagram (forceAtlas2Based), and it looked better for the code I checked.

I understand this pr. maybe it's not perfect, my experience with ruby and javascript is kind of low, no problem for me if you decide to reject.

Thanks, Andrei

yoshimkd commented 5 years ago

Hello @andreinagy,

Thank you very much for your interest in swift-auto-diagram! We're very happy you found this tool useful and greatly appreciate that you took the time to make it better. I checked out your branch and it looks really good. 👍 In the initial implementation, I was developing the Ruby part, so the styling changes look ok to me. @ZdravkoN was developing the visual representation, so let's see if he has to say anything about that part. Overall, every idea you had and implementation you made looks awesome! 💯 I just made one change to the master branch: removal of the logging to file feature since we'd have to improve the logging first before logging to files can become useful. So, please update your branch with the latest changes so it's mergeable again.

Best Regards, Jovan

andreinagy commented 5 years ago

Hi @yoshimkd , thanks for the reply. I'll rebase (most likely over the weekend), and I noticed there is a css with colors for entities already in, I'll try to adapt to use the original ones.

Thanks, Andrei

andreinagy commented 5 years ago

screenshot hey, @yoshimkd, the more I look at swift-auto-diagram, the more I love it.

This is such a great script... it could work on more languages, filter by entity and radius to show only concerning entities, maybe vis.js gravity can be used to order base classes at the top and make it lay out even better :)

yoshimkd commented 5 years ago

Hello @andreinagy,

I'm really glad you like the project. I checked the changes in the Ruby part again and everything looks good. Let's just wait on @ZdravkoN to see the changes in the visual part and I'm sure he'll give you a lot of information about possible improvements in that area.

yoshimkd commented 5 years ago

@andreinagy The PR is now merged. Just want to say thank you very much again for your interest in improving the tool. 💯

andreinagy commented 5 years ago

Hi @yoshimkd , @ZdravkoN , I'm glad you like the pr. I got assigned to an old Objective C project which is 150k lines of code and I thought it would be cool if swift-auto-diagram would be able to work on ObjC and mixed projects.

I started looking at how to move out the regexes so other languages can be supported, but I got very busy with work and didn't have time to continue.

However, I'll try to continue, but it may be months until I get the job project under control..

yoshimkd commented 5 years ago

@andreinagy Go for the Objective-C support if you get the time, we'd gladly accept any new feature or improvement.