As someone who still routinely uses VS, I cannot think of the last time I used the restart button and, as far as the "continue" goes, I find it ambiguous, "continue" what ? ... is it single step ? ... is it till the function ends ?... something else ?
I find "run" to be much clearer. what does "run" mean ?... easy... run the program... doh!
Well, we could make "run" more verbose in all cases.
We already have "run" vs "run
without debugger".
Or depending on build mode: "run" vs "run
with debugger".
Which mean that "run" (while not paused in debugger) is always the opposite of the other entry.
Background: if you are in release mode, and have no debug info, then you 99.9% don't want to run the app in the debugger (especially since currently that would ask you to enable debug info). So in "release mode", "run" will not use the debugger. ("run with debugger" will then work, with other debug backends).
Actually "release mode"..., Project options have a checkbox that indicates what run should do.
Now there the default-"Run" could then also have the verbose wording... But IMHO, it is much easier to identify, if it is just "Run" (and does what you most likely wanted to do)
As for "Continue", it could be "Continue running".
(But then "Single step" doesn't say "Continue a single step".)
In the end, each IDE has difference in their user interface. That also includes controlling the debugger.
IMHO the aim should be to offer as many of the features that are available, we don't always need to mimic how to access the feature. (So long as our method can be used with a similar amount of steps, or a lesser amount).
We already go a really far way by offering complete config of all key combos. So any user can set up the same keys that they use in whatever other IDE they use. (As long as the features do the same thing)