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: Tue, 13 Oct 2015 18:29:50 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 10/12/2015 11:18 AM, Dmitry Gutov wrote:
On 10/11/2015 08:37 PM, Eric Ludlam wrote:
If you have a tool that parses already (such as exuberent
CTags), you can instead just start at the high level tagging parser and
skip all the lower level stuff.

Right.

If you have an existing completion engine for cases where you happen to
have an interpreter with completion, or something else, you can just
override the completion engine directly.

You haven't answered the question about the advantage of doing it this way. If I override the completion engine directly, what main benefits of using CEDET are left? I mean, are they worth working on defining a grammar for the language, and keeping it up-to-date. A grammar can take a lot of effort by itself.

The primary reason is that having tag information in a buffer so you can access it quickly is helpful.

The reason you'd want a tag-level parser at all is to provide:
1) a database of tags in the buffer, plus positional information
2) a database of tags across a project to search through
3) a standard way of knowing where you are in relation to other tags

Simple things like showing the function you are editing, highlighting tags with various features in different ways,or knowing what class the method you are in are handy and quick little features that can be built generically on top of CEDET, but which require piles of code to do individually without that type of support. imenu, etags, ctags, global, ident, etc all exist because it is useful, but none of those tools get bound into a buffer, so their level of usefulness is limited to "jump to a location" instead of handy inline features.

The srecode tool does this,
and there is an experimental clang version in CEDET's repository as well.

srecode overrides the completion engine? Why?


Because it is a multi-mode buffer, so sometimes you want to complete srecode symbols, and sometimes you want to complete from a different language.

Eric



reply via email to

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