Since you have generated files with the same basename I was hoping that some form of hiding derived files would work. Example for typescript/javascript:
"files.exclude": {
**/*.js: { "when": "$(basename).ts" }
}
But what to put in the key **/.js? I tried
"**/*": { "when": "$(basename).cpp } // doesn't work
"**/$(basename)": { "when": "$(basename).ts" } // doesn't work
"**/[^.]*": { "when": "$(basename).ts" } // doesn't work
"**/*[^.]*": { "when": "$(basename).ts" } // doesn't work
"**/*[^.]{1,10}": { "when": "$(basename).ts" } // doesn't work
I really thought some version of the last would work - excluding files with no extension - but no.
WARNING: dirty hack follows. As a lark I tried
"**/[^.][^.][^.][^.][^.][^.][^.][^.][^.][^.]": {"when": "$(basename).cpp"},
since smartPoint has 10 characters. That works !! But not for new - 3 characters. But you can have both:
"**/[^.][^.][^.]": {"when": "$(basename).cpp"}, // works on 3 character file names
"**/[^.][^.][^.][^.][^.][^.][^.][^.][^.][^.]": {"when": "$(basename).cpp"}, // works on 10
so yes, unless someone comes up with a better solution, you could include all the versions you need for the number of characters (for 1...10, etc.) you might have.
Ugly, but simple.