I mean, Microsoft has been very clear about their business model of VSCode -- similar to Chromium, the base product is free and you can do whatever you want (and indeed there are lots of products reusing the core of VSCode), but extension marketplace/remote/GitHub Copilot are proprietary. It sounds like a fair deal to me -- Microsoft can't just do open source without expecting to get something in return.
Now, coming back to private APIs, it's hard to know whether this is because Microsoft intentionally wants to keep competition out, or it is just hard to standardize/finalize APIs. I do know that VSCode development team takes extreme care when it comes to their APIs -- new features can take years before they are ready (most recenly coverage APIs, for example), and they don't want to release something when it's not ready, and I respect that. And to be fair, they have a number of "inline completion" APIs standardized as both VSCode APIs and LSP protocol (upcoming). I'm sure there is a lot to be desired, but it should be a nuanced discussion instead of simply "Microsoft bad".
(I am a VSCode extension & LSP author, not affiliated with Microsoft at all)
Do you have any links or resources you could direct me toward that were more helpful than Microsoft's basic how-to pages for learning VS Code plugin development? I attempted to build a VS Code extension, but the attempt fizzled out. I managed to make some progress in creating the simplest of UI elements and populating them. I'm particularly interested in building a GUI-based editor of JSON / YAML where a user can select a value from a prepopulated dropdown menu, or validating a JSON / YAML file against a custom schema. Any help or advice you could provide would be appreciated!
Now, coming back to private APIs, it's hard to know whether this is because Microsoft intentionally wants to keep competition out, or it is just hard to standardize/finalize APIs. I do know that VSCode development team takes extreme care when it comes to their APIs -- new features can take years before they are ready (most recenly coverage APIs, for example), and they don't want to release something when it's not ready, and I respect that. And to be fair, they have a number of "inline completion" APIs standardized as both VSCode APIs and LSP protocol (upcoming). I'm sure there is a lot to be desired, but it should be a nuanced discussion instead of simply "Microsoft bad".
(I am a VSCode extension & LSP author, not affiliated with Microsoft at all)