And even the C++ intellicode/parser extension is proprietary.
But no, last time this was mentioned, it was downvoted to oblivion. "But, you see, they put the intellicode C++ extension in Github, so it must be opensource!"
Wrong. They are just using Github to distribute binaries. If you download the vsix file from either github or the vscode extension repos, you will find a 10MB binary called cpptools that was not there in the source tarball. The extension does nothing without it.
> If you download the vsix file from either github or the vscode extension repos, you will find a 10MB binary called cpptools that was not there in the source tarball. The extension does nothing without it.
I've seen people try a similar maneuver when discussing Pocket. If you point out that the reported plans/expected outcome of Pocket being made open source have never come to fruition, even though it's now been 3 and a half years since Mozilla Corp acquired them, there's a certain type of person who will do a cursory search and point to the Pocket org on GitHub in an attempt to score some points and say you're wrong...
... without ever actually checking that the code in question is even there.
"The extension has platform-specific binary dependencies, therefore installation via the Marketplace requires an Internet connection in order to download additional dependencies. If you are working on a computer that does not have access to the Internet or is behind a strict firewall, you may need to use our platform-specific packages and install them by running VS Code's "Install from VSIX..." command. These "offline' packages are available at: https://github.com/Microsoft/vscode-cpptools/releases."
No, not at all . Platform specific does not mean proprietary. In fact, the same vsix also contains a lldb and a mono binary ( which are platform dependent) but these are opensource and in fact build scripts are provided.
It is the hidden cpptools binary which has no source that is the problem. And that one is not that well announced. So lot of people think the extension is opensource when the important bits are not.
Unless somebody needs to change how the C++ sources are processed, doesn't its mere presence allow the extension to function? I.e. if you modify the source of the extension, wouldn't that modified extension still function with the unchanged binary?
I fail to see, from the perspective of some user of VS Code: what are the issues of not having the sources for the binary that does C++ parsing?
It seems to me comparable to not having a source of Google, but being able to make as many queries as you want (Google wouldn't even allow you that, by default).
This looks flamebait since it seems you are literally asking "what are the benefits of opensource" ?. For starters, you can no longer run the extension on platforms that MS does not care for, e.g. Haiku or even ARM or RISCV on Linux. Plus the only thing I have ever modified in a C++ IDE is, actually, the C++ autocomplete component, so I do have a reason to want to modify this extension.
> It seems to me comparable to not having a source of Google, but being able to make as many queries as you want
This analogy does not work at all. This is a local component and there are no online services whatsoever involved.
> I do have a reason to want to modify this extension.
And it is...? It's a completely honest question, I really like to know what you'd want to achieve and modify but is hidden from you for being in that binary. I'm not interested in the "benefits of open source" but in the specific use cases.
I surely agree that you are limited to the platforms MS is building that binary for, but if you are already using the platform for which they provide the binary, what would you like to change but you can't since it is in the binary and not in the rest of the extension for which there is existing source?
I'm asking as somebody whose job was for many years actually implementing these kinds of software (parsers, compilers, real time parsers for help during editing, etc.). I am really interested in specific use cases, to know if working on the development of some alternative could be justified.
Back in 2016, my team started using the structured binding declaration (C++1z, yes) in our codebase, aka "auto [a, b] = ...".
At the point I was using Qt Creator which had two C++ parsers: a custom one which was very fast but not keeping up with the times and (optionally) a clang-based one. I was using the "custom" parser because it would take 2 minutes to scan a small 10MLOC codebase where the clang one would take almost a day (and still takes multiple hours, and so does the Eclipse CDT parser and others).
That small custom parser would choke on structured binding declarations, and it would recover in the most terrible way possible as it would skip entire functions. Thereby I was starting to lose autocomplete on huge chunks of the codebase.
Now, I have quite a bit of experience on parsers, so it was trivial for me (one weekend) to change the QtCreator one to handle these declarations like (a series of) auto declarations (which it did not do that well, but it was workable). I was able to get another 2 years out of QtCreator with that fix. By then I didn't care.
But this is just my particular example.
I really don't understand why usecases for an opensource IDE would be surprising, specially since this is _developers_ we are talking about, the most likely group of people to feel comfortable editing the IDE to their liking.
But no, last time this was mentioned, it was downvoted to oblivion. "But, you see, they put the intellicode C++ extension in Github, so it must be opensource!"
Wrong. They are just using Github to distribute binaries. If you download the vsix file from either github or the vscode extension repos, you will find a 10MB binary called cpptools that was not there in the source tarball. The extension does nothing without it.