As you have found out, it is not easy. If you just reload the plugin, the original will still be running and you have two versions of the same plugin running. However it has also annoyed me to restart Graph every time a small change is made in a plugin.
I have just uploaded a new beta version at https://www.padowan.dk/beta/
It has a lot of improvements in the plugin interface. Some things to notice:
- Graph now comes bundled with Python 3.6, so you no longer need to install Python.
- You can call Graph.Reload() to reload all plugins. The function will try to undo common things plugins do and then reload all plugins. It is not perfect, but good enough in most cases. The only sure solution is still to restart Graph.
- The documentation installed with Graph should be up to date with all new features.
- The sMin, sMax, sMin2 and sMax2 properties of Graph.TShading have been renamed to Min, Max, Min2 and Max2.
- There is a new event OnFunctionListChanged, which might be better than OnNewElem for you question about listing all functions.