icecoder/ICEcoder

Site overview diagram plugin

Opened this issue · 0 comments

Create a new plugin that makes use of the new data created by indexer as detailed in #901 and #902.

The plugin when clicked on could show a overlay screen with 2 tabs shown as modes - "Class/Function Use" and "File Linking".

Class/Function Use
With this option selected, it would take the list of files and class/function usages to determine if a directory is mainly a "user" and give it a likelihood score from 0 to 100. So it would start at 50 (average as unknown to start) and in the case of class files, it would find that it's class and methods are used and the score drop bit by bit, and anywhere it's making use of something else, raise the number and finally we say end up at 18. In the case of a page such as my-page.php it would again start at 50, find it only uses and so end up with a score of say, 92.

With the list of uses taken into consideration and scores given we can determine that anything under say 25 is a provider and over 25 is a user. (The dirname and if it contains only a classes/functions may also help determine this and override score). Show list of providers on the left and users on the right, grouped into their top level dir names (eg classes, public etc).

You can click the dirs to expand them and drill down. If you hover over a provider or user it also highlights (or draws diagram lines?) where it is uses something. eg, hover over login.php on the right and it may highlight the loginProccess.php class file on the left. Maybe everything else could dissapear to help focus on what it uses? We could also increase the size of the items on the left like a word-cloud where the more it's used the larger it is shown. It could potentially also show the total number of usages as a counter at each dir level?

We may also want to consider drawing up this data as part of ICEcoder itself and not just the plugin, so we have the possibility of hitting a shortcut on something and have it show a list of the places it's used, which you can click on to jump to.

File Linking
With this option selected it could show a list of files and filename usages as diagram links between files. eg, the my-page.php file could show links to banner-anim.js and template.css and my-page.css.