Hi Dmitry Trofimov, thanks for your work!
I think the Heading can be formatted in more detail, for example, ## and Head use two labels indicate, Which is more convenient to control their style like this,

then, a more accurate definition of the type. For example, Heading of the tokenizer from keyword to markup.heading, which is consistent with VSCode.
This is just one example, there are other labels.
How do you think?
If you agree with me, I can try to submit a PR. But I'm not sure exactly if I can do.