Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-ui-dev] Discussion: the outline view

I've written down some of my thoughts about the outline view in CDT into a wish-list. (http://bugs.eclipse.org/bugs/show_bug.cgi?id=26482) I think the overview is a important area where CDT has one of its greatest chances to prove its superiority over other IDEs and editors. Since this list has been rather quiet, I thought perhaps I could start a discussion of what kinds of features that would be interesting and nice to have in the outline view.

This is my current, personal wish-list (directly copied from the feature request on bugzilla):

The outline view is one of the absolute strength of the JDT, which I've been using a lot. I'd really love to see a outline view as good as the JDT one in CDT. (Note: I'm using C so not all of this is relevant to C++).

Some things that I'm missing:
* The icons from JDT. Perhaps I'm biased by using the JDT for so long, but I find the JDT icons much more expressive, easier to understand and (sorry to say) more aesthetically pleasing to look at. Some features of the JDT icons I miss: - The distinction red square/green circle between public/private (corresponding to static/non static in C). - The distinction between fields/methods (variables/functions in C) by using a "hole" in the icon.

* It would be nice to have different icons for different kinds of declarations (not only struct and union), such as:
  - variable definition
  - typedef definition
  - variables defined within a struct or union
Also, having different icons for "pure" defines and macro definitions would be helpful, since they often have different purposes.

* Also, in JDT, when a method declared in an interface is implemented, a small triangle appears as a icon "decoration". Even though the concept of implementation in Java doesn't exist in C, a definition of a previously declared function is similar to "implementation" in Java. I believe that showing this "implementation triangle" on functions in the CDT overview would be very helpful. (It helps you catch declaration problems, such as non-static methods not declared in the corresponding .h file, or when you by mistake name a function the same as a function already declared in a included .h file.)

* In JDT, the type of a variable is shown in the outline, e.g. "foo : int". I miss this in the CDT outline view. Also, the type of the arguments to a function is shown in the declaration. In Java, this is more or less required, since you can overload the same method name with different arguments, which you can't in C (ignoring C++ for now :)). But it would still be very informative and useful in the CDT view.

* In JDT, declaration attributes such as "static", "synchronized" etc are shown as icon "decorations". It would be great if C attributes such as "volatile" etc are represented in the same way.

* The #include icon is, imho, really ugly and not especially representative, in contrast to the clear and slick import icon in JDT. (Includes are not so important, and should not draw the users attention, as the big blue icon does.) Also, it would be nice if the common practice import statements at the top of the source code could be grouped together, similar to the JDT outline. (Even if this is a language requirement in Java, but not in C, making it easier to represent in the JDT.) Perhaps also showing slightly different icons for system includes (<...>) and user includes ("...").

In short, the overview should give the user a clear, concise view of all relevant structural features of the code.


/Magnus



Back to the top