Re: Potential GNOME IDE



libclang is likely to be bad idea for GNOME because the complexity of
gtkmm. As far as I know, clang itself does not support incremental
parsing yet, and a simple C++ source (using boost or gtkmm) after
preprocessing can up to the size of 10MB. Clang might have improved
performance now, but last time I tired, it still takes around 1 second
to complete a method when using gtkmm, (unless you choose to use PCH,
which had a lot of other restrictions). Also, clang can't
auto-complete or index macros.

Clang is pretty cool stuff, but using them as live completion/parser
is likely to be bad idea though. IDEs in the Qt world like kdevelop
and QtCreator wrote their own C++ lexer/parser and type inference
system, but by no means that's an easy task.

Parsing Python and Javascript is easier, but code completion and type
inference would be really hard to do because of duck typing.


On Sun, Jan 5, 2014 at 6:52 PM, Maciej Piechotka <uzytkownik2 gmail com> wrote:
On Sun, 2014-01-05 at 17:55 -0500, Mike wrote:
I understand we need a IDE build on top of gtk, and I also want to see
that personally.

However building a usable IDE is very hard and complex: live parsing
and indexing accurately takes significant amount of effort.Especially
indexing and parsing complex language like C++ (which I believe a lot
of developers would want this IDE to support) . Also, core features
such as code completion will be even hard for language like Python. I
guess that's why there are users perfer to use "ugly" IDE like
netbeans rather than a good looking Anjuta.


Wouldn't libclang solve the 'hard' parts you mentioned for C++? I
believe there was a GUADEC talk[1] and there seems to be at least some
work for gedit already[2].

(That does not solve the problem for Python, JavaScript etc. of course)

[1] https://www.guadec.org/session/clang-llvm-and-gnome/
[2] https://git.gnome.org/browse/gedit-code-assistance




-- 
Thanks
Mike


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