I encountered similar issue, but instead using c/c++ intelligence , I am using clangd instead.
By providing
"clangd.arguments": [
"--compile-commands-dir=${PATH_TO_YOUR_compile-commands.json}"
]
my code block is not grayed out as well.