I'm not sure if there's anything module-related which would make it impossible to port this to a GDScript plugin. The C++ editor plugin initialization works similarly to GDScript.
class GridMapEditorPlugin : public EditorPlugin
is quite similar to:
(you can even write this as a one-liner):
class_name GridMapEditorPlugin tool extends EditorPlugin
All other plugin-related methods reflect the current
If there are some
Controls which are not exposed to the editor via script, these need to be re-implemented unfortunately.
One of the things which is lacking is the support for documentation the way it's done via modules, but this isn't a priority anyway.
I haven't done any existing module ports to GDScript yet, but you can take a look at this repository as a proof that there are certainly some classes which can be ported from C++ back to GDScript. If you do manage to port GridMap to GDScript, feel free to contribute before doing your custom modifications to it. :)
If you talk about
GDNative plugins specifically, I think that's also doable.
Checkout editor plugins documentation too. I haven't seen C++ specific documentation for this.