Make shader preprocessor keyword colors consistent #79112
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #78799
Currently some shader preprocessor keyword colors (like #if and #else) conflict with normal shader keywords, causing some inconsistencies. The easiest way to fix these is to simply make all preprocessor keywords into control flow keywords (which most of them actually are anyway), this way all preprocessor keyword colors are consistent. Of the two imperfect color choices, this should be the better one.
The best solution would be to improve the syntax highlighter to support more comples keywords that can have symbols (like #) in them or create a custom highlighter, but that's a lot of effort for little gain.
Colors, before and after this PR. With default colors the difference was not too bad, but if you customize your keyword colors it can become confusing fast.
Before:
After: