I have tested this on Windows. This is a real killer: it turns out that it not only matters which extensions are present when using nRF Connect for VS Code, the order of installation matters. I will start with the simplest way to observe this problem. Then I will show a somewhat likely scenario.
1. Install nRF Connect for VS Code Extension Pack.
2. Uninstall or disable the C/C++ extension.
3. Install or enable the C/C++ extension to reverse step 2.
You now have all the correct extensions to use nRF Connect for VS Code. You also had the correct set of extensions after step 1, obviously. However, whereas after step 1, Intellisense worked, now, after step 3, if you open a file from the active application with the editor, you will see that none of the header files can be found by Intellisense. You can even uninstall and reinstall VS Code and the problem persists.
There is a solution: disable and then reenable nRF Connect for VS Code Extension Pack or uninstall/reinstall that Extension Pack.
Here is a plausible scenario where somebody might fall into the trap: oftentimes a pop up occurs suggesting installing the C/C++ Extension Pack when the C/C++ extension is installed. Suppose I get enthused and install the C/C++ Extension Pack. Following that I will get a pop up telling me that one of the extensions in the C/C++ Extension Pack is incompatible with nRF for VS Code. So, I decide to simply remove the C/C++ Extension Pack. Now I have no Intellisense at all, and with some luck I realize that I have to reinstall the C/C++ extension. And that puts me in the post step 3 scenario: I have all the correct extensions installed for nRF Connect for VS Code, but Intellisense does not work.
Simply put, the lack of idempotency makes for a very brittle system. I spent over a day of concentrated effort to figure out why Intellisense was not working and how to fix it.
Can you do something to fix this? Thanks.
Regards,
Burt Silverman