Post Ariadna Features

I thought I would start a thread on what folks might want to see in a post-Ariadna world. (i.e. 4.0). Perhaps out of this discussion we could write a set of Change Requests to be considered (or perhaps all the good ideas, are already there, and I just need to be pointed to them :)

1) More effective use of free screen space. I seem to be continuously fighting with IDEA on how to lay out things. I find the psuedo tabbed model a little akward, in that I usually have a significant amount of wasted space in the "corners". I would love to be able to split the screen, and see (for example), debug frame and find usages on the left side. (top/bottom layout), with the code on the right. I've tried the "undocked" mode, and just don't like it.

2) More effective filtering models for the debugger. I want to be able to build custom "renderers", for data types, and when I encounter the datatype, just display those things that I am interested in. This would be most useful in the "Frame" display, where we browse the active variables.

I'm sure there are others, just can't think of them off the top of my head.

Anyone else?

Mike

0
46 comments
Avatar
Permanently deleted user

When error messages appear, allow jumping to the next message using F2 (or some other key stroke). Currently, you can use F2 to go to the next error in the current file. If you want to jump to the next file, you have to use the mous to select a message in that file. Less mouse, more keyboard.

Allow selection of files and directories without using the mouse. Also when opening a project, you can select a directory that starts with a ".". An option to show or hide hidden directories would be a Good Thing.

0
Avatar
Permanently deleted user

I would really like to see a GUI tool to build swing apps a la VisualAge VCE or Tekadence Magik.

I would also like to be able to work with multiple projects at once a la Eclipse. Refactoring could then search references across projects.

Intellij is awesome and I love it. These are just wish list items.

0
Avatar
Permanently deleted user

Can't we work with multiple projects already? When you reopen a project (file->reopen->]]>), it asks me if I want to open it in another frame.

Or were you thinking of something else. I'm not familiar with eclipse.

Mike

0
Avatar
Permanently deleted user

Features desired:

Ability to have more than one project open (in the same window)

Class Foldouts to see methods in left pane.
packages fold open to see classes
classes should fold open to see methods (eclipse)

Better VCS integration, (see eclipse for CVS)
a PVCS plugin

weblogic support
+ jsp debugging
+ deployment
+ ejb creation + mgmt (thru ejbgen maybe?)



0
Avatar
Permanently deleted user

-- Class Foldouts to see methods in left pane.
-- packages fold open to see classes
-- classes should fold open to see methods (eclipse)

IDEA does that already.

Project Tab (Left)
Top buttons: Flatten Packages, Show Members, Autoscroll to source...

0
Avatar
Permanently deleted user

1) Multiple projects.
2) Add some sample (popular?) colour schemes.

0
Avatar
Permanently deleted user

1. Emacs style multiple editors open and viewable simultaneously
2. Wild card based class/file search (this was originally in the ariadna list, but later moved)
3. Search for a file name based on "class contains a method like this name" kind of functionality
4. Emacs style incremental search where alt+f3 (or your keymap) searches the next occurrence of the search string
5. Ability to search in find/messages window. I believe this can be done in run window but not some of the others.
6. A small bug/enhancement in ctrlw (ctrlw on catch and again will select the entire try/catch rather than just the catch block. I think the 3rd ctrl+w should select entire try/catch
7. Ability to determine the scope of the idea generated local variable (the local variable currently goes to the most local scope which should be default)

0
Avatar
Permanently deleted user

ASPECTJ support and joinPoint visualization.

0
Avatar
Permanently deleted user


*Code inspection for declarations whose type can be weakened (much like current inspection for declarations whose visibility can be weakened).

*A "Move local variable to innermost correct scope" intention, and a corresponding "yellow line" warning for locals that are declared at too high a scope.

*Spell checker (for comments), ideally linked in with inspections

*Class reordering as part of code layout (first static variables, then instance variables, then constructors...)

*Better control of variable naming conventions, including inspections to check whether conventions are followed and intentions to fix 'em when they aren't.

*Code layout setting to automatically wrap bodies of if/while/for statements in blocks, turning

if(foo)
bar();

into

if(foo)
{
bar();
}

*Something like the (ass-kickingly good) Workspaces plugin made part of the core application, with all that that implies ('Search in current workspace', 'Inspect current workspace', yum).

*A good code metrics tool (although this could be a plugin).

Looking over this list, I'm struck by how fiddly most of these are. 3.0 is looking to be damn close to my "best of all possible worlds" development tool

--Dave "And for god's sakes don't add a Swing screen painter" Griffigh






0
Avatar
Permanently deleted user

As I think about how I use IDEA, I find that decomposing tangled code is one of its greatest strengths. (non-linear navigation, find usages, etc).

It would be useful, therefore, to possibly add more support for analyzing dependencies between classes, methods, etc.

1) Package Dependencies. Have the ability to analyze (I don't really care if its graphical or not. I could probabaly get away with a tree). Perhaps have the ability to establish project rules for what dependencies are allowed, and disallowed, those a warning could be created when the rule is violated.

2) Method call structure - I would love to be able to select a method, and say. What methods does this call, and so forth and so on, and get a tree, where I can browse the call-graph. Its sort of a high-level find-usages.

3) run-time (during debug) method call structure. Same as above, except, this would record the calls actually made. (not instances, just relationships)

4) Variable state graph. - In existing code, I want to "decompose" a state machine, so right now, I will watch a variable, set a breakpoint on the "change" to that variable, and stap through the debugger. It would be useful if IDEA would "record" the changes, and allow me to display them after the run.

I think others use IDEA for the same basic concept. Can anyone else offer techniques that help them refactor, understand and decompose tightly coupled, and poorly written code?

Mike

0
Avatar
Permanently deleted user

+1 for swing

0
Avatar
Permanently deleted user

And a couple more

*Project templating, including project properties, initial directory structure and some initial file contents (i.e., build.xml). One template like this would be great. Multiple templates would be outstanding.

*Some understanding on IDEA's part of the difference between product code and test code, used to drive inspections, and possibly navigation. Eventually, this could be used to produce skeleton test plans and (ideally) coverage matrices.


0
Avatar
Permanently deleted user

+10

0
Avatar
Permanently deleted user

+100 for aspectj support

-10000000 for GUI builder or at least implement it as a plug-in. Don't want IDEA to be another JBuilder/Forte with a lot of useless feature.

0
Avatar
Permanently deleted user

Velocity integration for those of us who don't like JSP!

0
Avatar
Permanently deleted user

Beyond just Velocity support, having a wysiwyg editor for web pages a la Visual Studio .NET. This appears to be one thing that is missing for IDE's out there.

Related to this, I think it would be great to have features like this be enabled as plugins that can be left off when a developer does not need them. This way, people can get the functionality they want, but those who don't want it will not have to be impacted.

0
Avatar
Permanently deleted user

+100 for aspectj support

-10000000 for GUI builder or at least implement it as
a plug-in. Don't want IDEA to be another
JBuilder/Forte with a lot of useless feature.


+2^31 for GUI builder!

Even if it is useless for you, it could be of a great use for me and others. I do not use webapp/EJB support. AspectJ support is completely useless and unneeded/unwanted for me, but I've never said "Oh, I don't want this crap!"

I vote for a richer OpenAPI and a further decomposition of IDEA into plugins. I vote for some kind of a plugin manager that will allow me to download, update from the web, install, uninstall, load, unload plugins on the fly. This way everyone will be able to create a customized installation of IDEA with the features (s)he needs and without the features (s)he does not need.

0
Avatar
Permanently deleted user

In addition to what's been already mentioned, I could use some more flexible indentation schemes, particularly for HTML and XML files: My company wants us to align element attributes which are spread over more than one line:
]]>
Since the amount of indentation is dynamic (depends on the length of the element name), this can currently not be done yet.

0
Avatar
Permanently deleted user

Check out NetBeans "Form Editor".
( http://form.netbeans.org/ )

It lets you edit SWING GUIs very easily, and generates very clean Java code. (Like if I did it myself ;)

With NetBeans, you can easily manage layouts, edit widget properties, ... etc...
( Check the "Main Features" section at http://form.netbeans.org/ )

It really makes your life easier, but most important of all, it drastically speeds up the development time, without compromising quality !

Dan.

0
Avatar
Permanently deleted user

Michael Kirby wrote:

As I think about how I use IDEA, I find that decomposing tangled code is one of its greatest strengths. (non-linear navigation, find usages, etc).

It would be useful, therefore, to possibly add more support for analyzing dependencies between classes, methods, etc.

1) Package Dependencies. Have the ability to analyze (I don't really care if its graphical or not. I could probabaly get away with a tree). Perhaps have the ability to establish project rules for what dependencies are allowed, and disallowed, those a warning could be created when the rule is violated.

you wish it was a tree :) :)
what if it's a cyclic graph ??

jdepend does some of that. jdepened plugin ?

2) Method call structure - I would love to be able to select a method, and say. What methods does this call, and so forth and so on, and get a tree, where I can browse the call-graph. Its sort of a high-level find-usages.


ctrl-alt-H in ariadna


3) run-time (during debug) method call structure. Same as above, except, this would record the calls actually made. (not instances, just relationships)

4) Variable state graph. - In existing code, I want to "decompose" a state machine, so right now, I will watch a variable, set a breakpoint on the "change" to that variable, and stap through the debugger. It would be useful if IDEA would "record" the changes, and allow me to display them after the run.

I think others use IDEA for the same basic concept. Can anyone else offer techniques that help them refactor, understand and decompose tightly coupled, and poorly written code?

Mike



--
Edoardo Comar
Cape Clear Software
http://www.capeclear.com

Register for our Web Services Seminar tour - "Lowering the Cost of
Business Integration".
See http://www.capeclear.com/seminars for details

0
Avatar
Permanently deleted user

you wish it was a tree :) :)
what if it's a cyclic graph ??

jdepend does some of that. jdepened plugin ?


I would expect the leaf node of the tree would indicate circular vs. terminal end-point. (perhaps circular could be in red??)

2) Method call structure - I would love to be able

to select a method, and say. What methods does this
call, and so forth and so on, and get a tree, where I
can browse the call-graph. Its sort of a high-level
find-usages.

ctrl-alt-H in ariadna



Uhgg.. I can't beleive I didn't know this was there. This is great.


Mike

0
Avatar
Permanently deleted user

That goes for me too.

Vince.

0
Avatar
Permanently deleted user

2) Method call structure - I would love to be able to
select a method, and say. What methods does this
call, and so forth and so on, and get a tree, where I
can browse the call-graph. Its sort of a high-level
find-usages.


You already can. Ctrl-Alt-H on a method name.

0
Avatar
Permanently deleted user

4. Emacs style incremental search where alt+f3 (or your keymap) searches

the next occurrence of the search string
After alt-f3, use down/up arrow to go to next/previous




0
Avatar
Permanently deleted user

Guys,

Maybe you should consider filing enhancements in the tracker
(http://www.intellij.net/tracker/idea/browse)

If you are not familiar with it, it allows SCR specific email notification
and voting. But more importantly the tracker is the source for JetBrains
next release features...

Jacques


0
Avatar
Permanently deleted user

I hate, GUI builders, they slow down the IDE.

But I love the generation of uml-diagrams. Maybe it's possible to build a plugin for uml-class-diagram generation into the JavaDocs. It would be nice, I think.

Yours,

Mark Monster

0
Avatar
Permanently deleted user

-- I hate, GUI builders, they slow down the IDE.

I'm sorry, but I have to reply to this ! How can a GUI builder slow down the IDE ?!!? It's a separate module that you can call only if you feel like using it. Anti-GUI-editors won't even see it's here

A lot of Java applications rely on good Human-Machine interface design, but this is one aspect the corporate developer doesn't want to spend much time on (I'm talking implementing here, not designing !). If the form editor really increases productivity by providing efficient ways of building the GUI (Interactive widget placement/preview, properties editing, automatic methods/messages/callbacks listing...etc), and if the generated code is neat (Not like VisualC++), then a GUI editor is a must for many developers.

-- But I love the generation of uml-diagrams

I'm happy you say that Yes, round-trip UML engineering would be good (See Argo-UML, Poseidon ...)

Cheers.
Dan.

0
Avatar
Permanently deleted user

-- I hate, GUI builders, they slow down the IDE.

I'm sorry, but I have to reply to this ! How can a
GUI builder slow down the IDE


By increasing the size of the application, thus requiring more memory resources, and slower startup times. The classic failure mode of programming environments is to attempt to become all things to all people, and in the process become bloated and slow. GUI builders in particular have been notorious for this, which is why anti-GUI builder sentiment is so strong.

There's also a second-order effect. IntelliJ/JetBrains has a limited amount of development resources, and anything spent building a GUI builder won't be spent doing integrated metrics/profiling/UML generation/whatever-your-favorite-extension is, and also won't be spent tuning, optimizing, testing, and debugging the core application.

Ideally, IDEA would be so modular that one could pick and choose which pieces you want (yes to Ant integration, no to any J2EE features), but we're a long way from an ideal world.

0
Avatar
Permanently deleted user

Actually it does not. Try Alt+f3, search for a string, change the file and now how do I continue the incremental search? Works in Emacs

0

Please sign in to leave a comment.