Snap control point on surface

Hello everyone!
Is there a function or plugin that allows me to move curve points along a surface? Something like _SnapToMeshObject or _SnapToSubDObject, but for surfaces, or even better, for polysurfaces.

Very similar question made in another thread: Snap to Surface - #10 by Roman_Shirinov

Note that locating control points on the surface will generally result in the curve not being on the surface, and a curve on a surface will generally not have control points on the surface. An exception is planar surfaces.

I understand all this perfectly. The second step is to project this curve, then everything will match.
But the point is that if you project a curve onto a surface, it will fit perfectly. But if you need to quickly edit it and start moving the parent curve’s points, those points often either get hidden behind the surface, or the parent curve’s display simply interferes with the visual perception of its child.
Basically, something always gets in the way. But I just want to move points around the surface and not worry about some point ending up behind the surface and being invisible. I don’t want to switch display modes or make any other adjustments to improve the visual perception of the result.