Well, my checker doesn't have anything against multiple declarations per se. There are cases where they are not considered a problem.
int a, b;
Here, both variables are already declared just before they are used so there is nothing to do, and no diagnostic is generated.
I would like to keep it like that, as any change suggested here, even if's just splitting the declarations, would be confusing to the user.
The only problem is when variables from multiple declaration statement must be moved, possibly to different locations.
In such case, since we are already changing the line with declaration, we might as well do as you suggest and split the declaration.
Actually, it would be quite simple to implement as well: remove the whole declaration and then insert individual variables as single declarations,
either somewhere else if they are to be moved, or in the place of old declaration if they are to be left behind as they were.
However, if we go this way, there is a problem with generating the diagnostics in a sensible way.
So far, the idea was to have:
1 diagnostic = 1 variable = 1 FixIt hint removal from old location = 1 FixIt hint insertion at new location.
If we decide to do the splitting of multiple declarations the way I described, it would have to be:
1 diagnostic = 1 (multiple) declaration statement = 1 FixIt hint removal from old location = 1 or more FixIt hint insertions for the individual variables.
I'm not sure if it is better or worse from the user's POV.
Perhaps you are right and the easiest way out would be to assume that all declarations are single declarations,
and let the user deal with multiple declarations by running another checker to split them.