emacs-devel
[Top][All Lists]
Advanced

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

Re: IDE


From: Eric Ludlam
Subject: Re: IDE
Date: Sat, 10 Oct 2015 12:48:49 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 10/10/2015 04:59 AM, Dmitry Gutov wrote:
On 10/10/2015 11:30 AM, Eli Zaretskii wrote:

I was talking about working on IDE, not on completion.  And for the
most popular languages in the industry, not just for some a few niche
languages.

You quoted the message that said "accurate code completion and powerful
refactoring support". I can agree that the latter is barely touched (*),
but it looked like you ignored the former.

Let's not reiterate past discussions: you forget CEDET.

I was enumerating external programs. But sure, CEDET is a yet another
option for completion. Though not too "accurate" one, if we're talking
anything but C.

I had always intended CEDET to be a baseline for IDE like features. Looking just at tagging files, those familiar with it's internals recognize that it can use external tools as weak as ctags or GLOBAL, and can use a more powerful external tool for parsing as well, such as using JAVAC for decompiling .jar files into tags. As a backup, it also has in-buffer parsing for when you've only half-written your code, or when no external tool is available.

The same philosophy is throughout CEDET. Unfortunately, those who are interested in tooling who brush casually past CEDET only see that people complain that it doesn't always complete right, or that the C++ part is hard to setup, and don't see that the cool piece they want integrated into Emacs could use CEDET as a framework.

A side effect is that every completion engine out there has a custom way of integrating random tools in. In theory, completion engines could call into CEDET, and let CEDET dispatch to the other tools. In that world, bootstrapping new tools is simpler with only one backend to worry about, and there would be more language independent creativity for IDE like features.

If we look at the two starting key features listed for IDEs, "completion" and "refactoring", the basics are all there. CEDET has a completion engine, but it is only as good as the input data. If better external tools (like GCC) or easier to configure tools could feed it, it would be more accurate. CEDET also has 'srecode' which is about generating code. This bit is trickier, as the intention is you could write one highlevel tool that might extract tag data from your file, permute the language-independent tags, and then write them back out with srecode. There are tests showing this working, but they are simple and proof of concept and not stuff someone would depend on day-to-day.

What it needs is folks who care about cross language tooling, and not just the language specific part. While I continue to maintain CEDET, I don't code for a living anymore, so do not run into CEDET's rough corners enough to know to fix them.

Eric



reply via email to

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