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.
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.
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.
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.
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
+ jsp debugging
+ ejb creation + mgmt (thru ejbgen maybe?)
-- 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...
1) Multiple projects.
2) Add some sample (popular?) colour schemes.
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)
ASPECTJ support and joinPoint visualization.
*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
*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
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?
+1 for swing
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.
+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.
Velocity integration for those of us who don't like JSP!
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.
+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.
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.
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 !
Michael Kirby wrote:
you wish it was a tree :) :)
what if it's a cyclic graph ??
jdepend does some of that. jdepened plugin ?
ctrl-alt-H in ariadna
Cape Clear Software
Register for our Web Services Seminar tour - "Lowering the Cost of
See http://www.capeclear.com/seminars for details
I would expect the leaf node of the tree would indicate circular vs. terminal end-point. (perhaps circular could be in red??)
Uhgg.. I can't beleive I didn't know this was there. This is great.
That goes for me too.
You already can. Ctrl-Alt-H on a method name.
the next occurrence of the search string
After alt-f3, use down/up arrow to go to next/previous
Maybe you should consider filing enhancements in the tracker
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...
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.
-- 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 ...)
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.
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