I can come up with the following scenarios (for C#):
1) existing: one file with a class not partial
a) move members to a NEW related/depending file:
Will make class partial, adds a new file to the project, sets its dependency to the originating file, adds required usings and the partial class with the selected members.
Sample.cs
Sample.NewTopic.cs
b) move members to an existing file (suggesting all related files for the current class + other, in which case the user selects the file where to put it):
Will make class partial, adds required usings to the selected file and the partial class with the selected members.
c) move members to an unrelated file (suggesting all related files for the current class + other, in which case the user selects the file where to put it):
Sample.cs
AnotherTopic.cs (unrelated file)
2) existing: one or many files with a partial class
a) move members to a NEW file:
Adds a new file to the project, sets its dependency to the originating file, adds required usings and the partial class with the selected members.
Sample.cs
Sample.designer.cs
Sample.Topic1.cs
Sample.Topic2.cs
Sample.NewTopic.cs
or
Sample.cs
Sample.designer.cs
Sample.Topic1.cs
Sample.Topic2.cs
AnotherTopic.cs (unrelated file)
Note: The dependency status can be inferred from the file name chosen.
b) move members to an existing file (suggesting all related files for the current class + other, in which case the user selects the file where to put it):
Adds required usings to the selected file and the partial class with the selected members.
Sample.cs
Sample.designer.cs (removed from here)
Sample.Topic1.cs (moved to here)
Sample.Topic2.cs
I guess that should cover it. Might require Roslyn though. For C++ the thing should work similar.