C++ Semantic highlighting and YouCompleteMe


Sorry if this email is off topic.

Today I’ve got this sticky idea, to do a semantic highlighting of C++ source in Vim using YouCompleteMe’s infrastructure.
For the start I would like to be able get class, namespace, enum… names and highlight them.

So I dug in, and didn’t find anything similar in the libclang C API (the one used by YCM).
I’m not sure how to do it right with the C++ API: to traverse the whole AST or there is a better/cheaper way to do it? (for example judging by its name ASTContext::getTypes() is doing something similar)

So if anyone is interested in the topic and is willing to help me by giving initial direction or guiding me, and if I will be allowed to add such functionality into the libclang C API :slight_smile: I will be glad to work on this.

Davit Samvelyan

There is color_coded [1] which does semantic highlighting in vim via
libclang, maybe you can take some ideas from it.

- Ben

[1] https://github.com/jeaye/color_coded

Thanks a lot,

After looking at the color_coded and a little more research I found these 2 functions created specifically for the syntax highlighting purpose:
clang_tokenize() and clang_annotateTokens()