README
A theme dedicated for C/C++ programer.
C/C++ Theme utilizes the power of VSCode semantic highlighting engine to recognize more token types and provide a fluent, systematic C/C++ syntax highlighting experience.
The dark theme bases on Dracula Official, the light theme bases on Bluloco Light, so supposedly it should work with other language as well.
C/C++ Theme recognizes more C/C++ syntax symbols and renders them in a opinionated but thoughtful way. Below are some screenshots.
C/C++ Theme with MS C/C++ extension
C/C++ Theme with clangd extension
C/C++ Theme supports both MS C/C++ and clangd LSP, and provides a consistent(similar but not exactly same) rendering result. If you want to learn the token set that C/C++ Theme supports, please refer to below image:
Beside of recognizing of so many tokens, C/C++ Theme tries to have kind of design logic. It has these built-in principles to achieve the goal:
- Priority Design
- Scope has highest priority
- Then type
- Then readonly, or declaration, or other attributions
- Consistency Design
- Consistency between similar concepts, e.g., static variable shares similar UI with global variable
- Consistency between C and C++
- Consistency between MS C/C++ and clangd. C/C++ Theme leverages the two LSP to get semantic tokens, they generates different semantic token set and names, C/C++ Theme aggregate them into a uniform rendering.
- Consistency with the based theme Dracula Official. All the colors C/C++ Theme used are from the based theme.
- Style Design
underline
is a very strong style, it was limited for kind of special tokens. e.g. static variable or static functions.
Q&A
Why this name?
Similar with the Microsoft's C/C++ Themes? :) Just that theme are not so C/C++, I made this one. I believe this theme is more C/C++ than it, Just give my theme a chance, you'll love it.
Support of C++.
I don't use much of C++, so there's only basic support to C++(maybe already enough). If you have better idea to render C++ tokens, welcome to contribute(PR or issue).
Differentiation between MS C++ extension and clangd extension.
Both are the top end C/C++ LSPs, clangd offers more precise token types than MS C++, especially to variable
and function
types, and it's fast. MS C/C++ offers a more appropriate token set and better compatibility(only my personal experience based on daily usage).
Development
To contribute or modify the theme, please refer to Here.