[cfe-dev] A Question regarding the use of clang API for IDE

Yossi Kantor yossi.kantor at samsung.com
Wed Dec 12 23:49:41 PST 2012


Hi,

I'm developing an IDE which uses clang API (clang-c/Index.h). Eventually 
I intend to implement
Syntax highlighting, indentation, diagnostics and code completion. So 
clang is just perfect.

My 2 questions are :

Its seems that in the API, the only option is 
clang_parseTranslationUnit/clang_*re*parseTranslationUnit.
The thing is, that those functions receive as a parameter either a file 
name on a disk or a file name
in memory in a form of const char* pointer and length. The open file in 
my IDE is not stored in that
straightforward way in the memory (or I guess any other text editor) so 
is there a way to feed the parser from a byte stream of any sort?

The second question is: Currently I try to implement syntax 
highlighting, which means that
for every press of a key (pretty much) in the editor I need to re parse 
and tokenize the entire file, so that I'll get the updated information 
on how and what to highlight. While clang performs those action
quite fast, and for diagnostics and code completion this totally 
acceptable, I do feel that its a bit of an overkill for syntax lighting 
where simple (and maybe partial or incremental) tokinizing of an input
buffer would be sufficient.
Is there something I'm missing? Are t there are other clang methods that 
I can use ?

Thank you very much,
Yossi.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20121213/f6df6295/attachment.html>


More information about the cfe-dev mailing list