emacs-devel
[Top][All Lists]
Advanced

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

Re: Does CEDET work?


From: Eric M. Ludlam
Subject: Re: Does CEDET work?
Date: Wed, 18 Apr 2012 21:50:30 -0400
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.3a1pre) Gecko/20091222 Shredder/3.1a1pre

On 04/18/2012 05:39 PM, Leo wrote:
On 2012-04-19 06:05 +0800, address@hidden wrote:
This type of humour is sometimes funny in #emacs, but does not translate
at all well to emacs-develop where people are trying to be productive.

Indeed. But the question is genuine. I have been comparing two python
editing environments: PyCharm (commercial) and Emacs. And the former got
decent parser for everything remotely related to python: js, html, xml,
css, sass, sql, coffeescript etc. etc not to mention python specific
stuff. I can appreciate such an intelligent environment and the enormous
productivity it enables.

CEDET suffers in that it is pretty good in a fairly narrow band, ie - the band that I've worked in, and a few areas other people have helped with. As I wrote it, I wanted to create a framework to make sure new support for these tasks could be added for other languages/projects. Sort of the way you always use GUD to write a debugger, you can use CEDET to do project management, parsing, or code gen.

Anyway, I think folks pick up CEDET, see a reference to their favorite language, and the most complex feature (smart completion) doesn't work as they expected because they are outside the well supported band, and configuring it is too much of a challenge because they have never seen it work in areas where it does work well to even know what the reward is.

Python is a fine example. There's a pretty good parser, but if it can't find system libraries, and if it doesn't understand a typical python project structure, then the smart completion is kind of lacking. Hooking in all the external tool support in really needs someone who loves the language to stick their nose in to complete the feature.

I recently picked up Android programming as a hobby to see what I could do, and immediately found the lack of direct support for Android projects and java system libraries meant very few features worked. It took a little while to build up the support, teaching CEDET where directories are, and getting system libraries hooked so I can extract symbols from them, and tying it all into smart completion. Now it will complete almost anything in Java with android libraries. Nifty, but also took a couple days since I'm not an expert in either Android or Java. Arduino support went a lot quicker since the language was C++, but their command line Make system was a bit baffling to me for a while.

Anyway, there is the beginnings of support for many languages, but a combination of developing project support and hooking in external tools to derive system symbol libraries is needed to really make the system work well. As has been said many times, configuring CEDET can be a real challenge. That's why tools that do work well often are very persnickety about how you lay out your project. It is rare for a tool to try and "just work" in some arbitrary code blob the way CEDET does.

Eric



reply via email to

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