emacs-devel
[Top][All Lists]
Advanced

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

Re: What IDE features do we need?


From: Eli Zaretskii
Subject: Re: What IDE features do we need?
Date: Thu, 24 Apr 2008 06:21:16 +0300

> From: Tassilo Horn <address@hidden>
> Date: Wed, 23 Apr 2008 22:29:04 +0200
> 
> Well, *intellisense* is an intelligent completion.  For example, let's
> say in Java I have an instance of a class foo, then typing
> 
>    myFooInstance.<completion-key>
> 
> will complete all field and method names, that are applicable in that
> context, e.g. they're defined in the class Foo or one of its super
> classes and they have the correct visibility.  The same can be done when
> completing function parameters.  For example, if there's a method
> doMagic(Bar bar) in class Foo, then
> 
>    myFooInstance.doMagic(<completion-key>
> 
> will only propose local and global variables of class Bar or
> function/method calls that return a reference to a Bar instance.
> 
> With *browsing* one means the ability to quickly grasp all informations
> of the classes and functions.  For example, if point is on an instance
> of Foo, a simple command should take me to its definition.  Some more
> advanced queries could be
> 
>   - Find all places in subclasses of Foo, where the method
>     Foo.doMagic(Bar bar) is overwritten.
> 
>   - Find all function calls of Foo.doMagic()
> 
> *Refactoring* basically means restructuring the code, so that it's more
> clean and maintainable.  Some common refactorings are:
> 
>   - Extract method: Mark a region in a long method, say "Extract
>     method", the IDE asks for a name and then creates a new method which
>     contains the code of the region.  The parameters and the new
>     function call replacing the extracted code are figured out
>     automagically.
> 
>   - Simple renaming: You say rename at any part of the code, may it be a
>     variable, a class or a function.  That will rename every occurence
>     in a semantic correct manner.  If you rename doMagic(), every call
>     in the whole project will be renamed, default or overwriting
>     definitions in super/sub classes will be renamed, the JavaDoc source
>     documentation will be adapted and so on.  In Java, if you rename a
>     class, the file has to be renamed as well.
> 
>   - Change the signature of a method, ...
> 
> All these features (and much more) work out of the box with the Eclipse
> IDE for Java.

Emacs already has infrastructure for most of those features (in etags
and in Ebrowse), sometimes even more than one package that offers a
different implementation of the same functionality, but we need better
UI for them and better graphical methods of presenting the output.




reply via email to

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