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

Argyrios Kyrtzidis akyrtzi at gmail.com
Thu Dec 13 10:36:03 PST 2012


Hi Yossi,

On Dec 12, 2012, at 11:49 PM, Yossi Kantor <yossi.kantor at samsung.com> wrote:

> 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_reparseTranslationUnit.
> 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?

Not sure what you mean, you'd like to supply a buffer with any text encoding ?

> 
> 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 ?

Reparsing is currently a requirement; for tokenizing you can specify a source range as well.

> 
> Thank you very much,
> Yossi.
> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

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


More information about the cfe-dev mailing list