The ?BDS? symbol is defined, the code sample is:
-----------------
#if DEVENV
return _instance ?? (_instance = new DevenvSolutionHelper());
#elif BDS
return _instance ?? (_instance = new BdsSolutionHelper());
#else
#error There is no IDE selected for support, consider defining one of the symbols on the project.
#endif
-----------------
Of these three choices, R# displays the second and the third as active (BDS and #else) by color, and highlights the #error tag as an error. C# compiler passes the compilation and from its point of view only the second choice is active.
I think that even in the current R# parsign mode for the defines this case should work OK, as it does for the two-choice case.