In my experience, VS Code’s extension system really shines here. There are also boilerplate repos out there to get started.
Should be unnecessary (and might be outdated unless meticulously maintained) IF one chooses to just follow the VSC API docs' `yo code` approach. Which generates the project structure with a simple hello `extension.ts` IIRC.