emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: clang/emacs/ecb/semantic


From: David Engster
Subject: Re: clang/emacs/ecb/semantic
Date: Thu, 29 Nov 2012 21:27:47 +0100
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2.50 (gnu/linux)

Dmitry Gutov writes:
> Ramneek Handa <address@hidden> writes:
>
>> Would anyone like to collaborate on an advanced c++ browsing capabilities in
>> emacs using clang?
>>
>> I have some basic code ready which can provide very intrusive data about a
>> program which can be used to build a source file outline, semantic 
>> highlighting,
>> jump to declaration , jump to definition et all.. i am not very good with 
>> elisp
>> and don't have much time to devote on it.. 
>>
>> I would be very happy if i can find like minded developers who would like to 
>> get
>> it done..
>
> According to this, there already is a semantic-clang.el in the CEDET
> trunk: http://sourceforge.net/mailarchive/message.php?msg_id=27383453

That one only does completion. It was more or less a proof-of-concept
and I'm not sure if it's working with latest clang binaries. This is
also the reason why this feature isn't available in the CEDET version
that ships with Emacs.

Regarding the OP's mail: There are already projects out there using
libclang for code completion and navigation:

https://github.com/Andersbakken/rtags
https://github.com/Golevka/emacs-clang-complete-async

I did look into using libclang and also libtooling for better C++
support in CEDET. Its main drawback is that it isn't fault-tolerant at
all. If you're editing a C++ file and an #include cannot be found, or a
closing brace is missing, you cannot get a proper AST to visit. Also, I
think libtooling is more flexible than libclang, but compiling stuff
with it is *really* cumbersome.

What I would be very interested in is to have a parser based on libclang
or libtooling, which can output a simplified AST from C++ files. Maybe I
should just try gcc-xml again...

-David



reply via email to

[Prev in Thread] Current Thread [Next in Thread]