Maybe CNCDrive need to speak up.
No point in having M3, M4 and M5 editable macros if they are not used when "M3", "M4" and "M5" are called from Gcode / MDI
for the avoidance of doubt and rumor
yes there are other ways to turn the spindle on + off (such as calling DospinCW() / DospinCCW() / Stopspin() which will not be called be either gcode or MDI but maybe a poor macro / plugin which would be better written as exec.Code("M3") or exec.Codesync("M3") which will then correctly call the actual "M3" etc macros and not just control the spindle directly....