Macros should not be shown as markup in the gui editor rather the result of what the macro is doing should be shown. If one selects a macro to change then the markup can be shown or preferable a form for the input parameters based on the arg parser arguments.
The Macro could be rendered by wikiutil.renderText, but then the region where it displays needs to become immutable. If the parameter of the macro become changed, the immutable result must be exchanged by the new one.
If you make some suggestion about how to implement that, we will either get a great idea how to do that or you will notice that this is not easily possible.
I do think we can create forms based on http://formbuild.org/ (FormBuild is a package designed to help with the generation of HTML forms. It does not deal with form validation or conversion which are handled excellently by FormEncode which FormBuild is designed to complement). We can start with some of the macros (currently I am not sure if it will go well with all or does make sense). The result of the macro or an icon near by needs to become a link which does point to the input form.
refactoring all forms to formbuild could be also a nice project.