"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.
https://github.com/microsoft/vscode-cpptools
"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."