appeal for usability Follow
We are planning to put dedicated efforts to greatly improve the user
experience in IDEA 7. So, as always, we ask for feedback from our
beloved EAP users.
At first, please answer the following questions:
1. Do you find something hard/annoying to do in IDEA?
2. Do you find something hard to find/understand in the IDEA interface?
3. Do you find something inconsistent in different places, which has
different look and interaction scenarios?
4. (Optional) Do you find something what you can say about: "it's not
modern, no good program does it this way". This is kind of emotional
experience from IDEA, but we want IDEA to be emotionally attractive as well.
All you responses are valuable, as always.
"Develop with pleasure!"
Please sign in to leave a comment.
1. project settings has become too click-intensive to dig into the tab I'm interested in
3. settings dialogs use slightly different UI (e.g. rounded vs. non-rounded borders), "add/remove" is mostly done via symbols "+"/"-" but still there's some labeled buttons with "Add" and "Remove" in some places
'open project in new frame' dialog' default (and most frequent used) button
That always makes me stop pressing Enter and re-read the text and think. I
don't like to think.
JetBrains, Inc, http://www.jetbrains.com
"Develop with pleasure!"
"Kirill Kalishev" <email@example.com> wrote in message
While we're at the point: I never ever choose 'No' here. I always open
the project in a new frame. And if I don't want to keep the previous
project I close it before opening another one. So it would be very handy
for me to have a possibility to set my own default and/or to skip the
whole dialog completely.
Alexey Kudravtsev (JetBrains) wrote:
Fuhrer Engineering AG
Yes and No buttons are not very friendly. It means I have to read the entire message every time or memorize it exactly. I keep forgetting if it asks to open in the same frame or a new frame... I would suggest buttons like so and an option to not ask again:
Also, cancellable project loading is still very much needed:
- Linux-specific (perhaps b6111 specific):
- when I press 'down' in editor, and line contains underscores, underscores disappear. (Editor font settings: Courier/Courier 10 pitch, size 16, spacing 0.85)
- In Project Structure, AltIns does nothing (expected - if pressed on 'modules' node, open 'New Module' dialog, just like AltIns in project toolwindow creates classes/interfaces, etc... It means: AltIns on a node should filter choices to artifact types allowed in the node, or skip choices menu if there is obvious/1 choice) There is 'Ins' shortcut that displays a menu - fine with that, but Alt+Ins should also work whenever possible.
Not os specific:
- Modules are configured in one place, and their VCS settings in other. Would it more natural just to have 'VCS' tab for module?
- Browsing svn history is not usable. I use my own FAR plugin :( (Filed bug "VCS changes toolwindow"). No wish to pass thru 3 dialogs. If modules are nested into each other in the filesystem, there is a bunch of VCS roots (like 100 in my case - impossible to find anything), whereas there is only realy just one "top" root.
Subversion integration can be much better.
For example if you checkout a project from Subversion:
http://www.xxx.net/svn/BookStore Idea doesn't create BookStore folder.
If you do it from commandline:
svn co http://www.xxx.net/svn/BookStore you will get BookStore/
I'm sure there are lots of opinions whether it should create or not, but
make it please clear to the user, what is going to happen, what
directories will be created and so on.
When you import a project into subversion, you can't specify files and
directories you want to import. I agree that the same happens with
svn.exe but it's a different case, because if you have your command
line, you can prepare a project for an import, however if you are using
Idea you can't delete certain files, or actually you can but you have to
be very quick because they will be regenerated again (I'm talking about
.class and .iws). Include ignored resources option never worked for me,
I always get at least .iws file.
It will be nice if IDE replace imported project with the one from
repository, for example subclipse does that. Or make it possible to do
inside Idea without opening command prompt.
Parsing non java files is quite annoying. I wrote about it several weeks
Since we're going to move away from module-based VCS configuration and towards
specifying VCSes for parts of the project directory structure, this is not
A new UI for browsing changes (with a toolwindow) is already implemented
in Selena. I'm looking forward to hearing feedback on it once the first EAP
of Selena is released.
"Develop with Pleasure!"
I would like to revert to configuring libraries as an 'IDE Setting' instead of always going through the project/module settings.
The biggest remaining inconsistency is in the handling of action scope. "Find", "Find Usages", "Inspect code", and "Run Tests" all have completely different answers to the "define a bunch of files to act upon" sub-problem, and there are probably still others that I can't even remember now. These should be unified, and a bunch more common scopes ("Open Files", "Current Changelist") should be available.
I take that back. The biggest remaining inconsistency is in handling browse/import/checkout from Subversion and CVS. Having to learn three interaction paths for connecting to a repository is quite annoying, and the fact that search history isn't shared between these is really annoying. Fortunately it's not something that has to be done often.
Changelist handling is way clunkier than it needs to be. Functionality like the ChangesBar plugin (but better) should be included OOTB.
Initial project set up is harder than it needs to be, but the Selena roadmap gives me hope.
One more thing.
Was coding some RCP recently and noticed that Eclipse puts some
suggestions it thinks relevant on top of code suggestions list. In idea
if you want a code completion you will do the following:
1) Press ctrlshiftspace - for smart completion
2) Press ctrlspace (or ctrlalt+space, don't remember frankly, if smart
completion fails I'm pressing all kind of ctrl, alt, space combinations)
- for basic completion if 1st returned nothing. It returns nothing quite
often, actually, but most of the time in one case: you didn't import
I would propose to have one common action (ctrl-space) for all
completions. Possible solutions:
1) Put all completions into one list, smart goes first, then basic and
2) Put smart completion first, if you hit ctrl-space again show basic
and so on.
This one annoys the heck out of me every time:
When I need to add a new module library, the dialog for "Choose Library
Classes" doesn't let me simply enter the entire library path by keyboard
(a path which I often have ready on the clipboard for pasting- but I
can't take advantage of this because the dialog has no field for just
entering the path!), I have to slowly and painfully use the mouse to
navigate down the file/folder structure manually. Even the standard
windows file dialog would be light years ahead of this dialog...
Here is an old one:
If there is an error in the argument list of a method call, only the argument containing the error should be highlighted (like in IDEA 4.5:-).
It is quite confusing to see one error highlighted twice in method calls. Make a mistake in an argument and not only is that argument highlighted, the entire argument list is highlighted with a "cannot be applied to null" message.
Even a quick fix is offered to create a new method matching the "null" signature, which, of course, does not help one bit.
This problem often tricks me into thinking I am calling a method on an object of the wrong type. And the correct method is present in the correct type. When in fact it usually is just a typo in a variable reference.
Or the other way around, a call is highlighted red and I am thinking I made a typo in the call again, when actually the object on which I am calling is of completely the wrong type.
And some more:
There needs to be some way to remove an intention from a list when there is an inspection quickfix that does the same thing. Duplicate entries are always a bit jarring.
The TeamCity plugin always seems to require one too many clicks to do anything useful. Select entries by default, and then have toolbar actions available based on selection.
The nifty new "Permute arguments" intention works for method calls, but not constructor calls.
There needs to be some way for intention authors to weight their intentions based on likelihood of use. Random order causes too many confusing or suboptimal placements.
Unnecessary editor tab right-click actions should become invisible, not just disabled. ("Unsplit all" when nothing is split.
KK> 3. Do you find something inconsistent in different places, which has
KK> different look and interaction scenarios?
KK> 4. (Optional) Do you find something what you can say about: "it's
KK> modern, no good program does it this way". This is kind of emotional
KK> experience from IDEA, but we want IDEA to be emotionally attractive
KK> as well.
Since you asked, the new module wizard (http://www.jetbrains.net/jira/browse/IDEABKL-4701)
never ceases to annoy me every time I have to use it. You'd think one would
get used to this after a few years, but no...
-option to hide Tool Window buttons. some tools i never use and I even want to see the button for it. Even for tools I do use, I still want to hide the buttons to save screen real estate.
-mark module paths like "Source" directly using the Project tool window. Right click on a directory and choose "Set As Source" etc. Should not have to go to module settings to do this.
-the red X to close windows are all over the place. it should be in a consistent location like upper left or right.
1. Replacing a 3rd party component with a new version is annoying.
Switching from Jetty 5.1.10 to 5.1.12.
We have a components directory on Perforce where we put whole
distribution with their full directory name. Thus, for Jetty it is the
directory as it is in the Jetty distribution, for example "jetty-5.1.12".
What I need to do now:
a. Add the new Jetty 5.1.12 component. To do that I go to Settings -->
Project Structure, press Insert and choose the Jetty directory.
Problems in this step:
- Even though all of our libraries reside in a specific directory, the
dialog for choosing the directory initially shows the drives. It could
be smarter and deduct the directory from the common denominator of the
existing libraries or (when there are no libraries) start at the project
- IDEA removes what is beyond the last '.' by default, so the default
name that jetty-5.1.12 gets is jetty-5.1 and I always need to fix it.
- On an on-going project, libraries are often upgraded instead of added.
Thus, the dialog that asks which modules to add the library to is in
those cases just in the way. What IDEA should do is ask if this library
replaces another (and may be even realize that jetty-5.1.12 replaces
jetty-5.1.10). That way instead of going through our modules (11),
removing dependency on Jetty 5.1.10 and adding 5.1.12 that would be done
- The resulting library for an added library is meaningless. The library
default definition is something not fit to any library we're using
(Apache XML-RPC, JTDS, Jetty, ini4j, commons-*, just to name a few),
which forces me to delete the dubious default classes directory which
just points to the directory I specified for the library and then add
the real classes (usually JARs), source and documentation. There is also
a pretty good observance of conventions, such as src for sources, doc or
javadoc for docs, etc. IDEA is so smart in understanding Java, it could
be much smarter here.
b. Switch from the old library version to the new one. This step is
necessary for testing and fixing any issues with integrating the new
library version before we commit. To do that I have to remove usage of
the old library and add usage of the new library. This can be tedious
An improvement here would be to add an operation for library switching,
which would switch the library dependencies and maintain the same order
The above improvements will make maintaining libraries be much more in
line with the ultra smart editing.
4. Some issues:
- The Run/Debug configurations control in the main toolbar would be much
better off as an editable combo box. It looks archaic and is a hassle to
use if you need to change active configurations. It also grows and
shrinks which looks weird and I'd like to just click there and start
typing a configuration name just like I can in many list or tree views.
- Dockable panes don't fit well when docking orientation changes. For
example, take the Debug pane and attach it on the left. The toolbar
stays vertical even though it would make much more sense real-estate
wise to make the toolbar horizontal. On the same subject, instead of a
rigid toolbar structure (2 columns for Debug, for example), make it wrap
according to the size of the pane, configurable to be horizontal or
vertical (or auto, as the beginning of this paragraph), show/hide the
toolbar for keyboard fanatics like myself, or use the Microsoft paradigm
of a >> symbol for toolbar buttons that don't fit. Another option is to
show the complete toolbar when the mouse hovers above what is visible
from it. There are many potential options, but the way it is now it's
- Plug-ins - PLEASE, please, make it possible to load and unload
plug-ins without restarting. It is annoying. At least, bare minimum,
allow disabling of plug-ins without completely deleting them. Since no
piece of software is perfect, sometimes, especially during EAPs, I need
to look into what's causing something (slowness, flickering, etc.) and I
just want to disable plug-ins.
OK, that's what I have for now.
Kirill Kalishev wrote:
I am not sure these comments are related this post. I want to see more demos or sample projects for how to setup the project (web, ejb and application modules) deploy and debug for websphere and weblogic servers. If we look at the documentation it says IDEA supports the all major vendors and me always having problems setting up project and deploys, debug the application. I called support ask whether we have sample project for websphere or weblogic and I always gets the answer no. when I create the project some times jsps are not get resolved, ejbs are not recognized and application will not easily deployable. It is very hard to figure it out which works and not with IDEA.
Could you guys consider this for next release?
Dave Griffith wrote:
Glad you've found the plugin useful Dave. Any suggestions for
improvements to the ChangesBar plugin in the meanwhile would be much
As far as improving ChangesBar, it needs to work and play better with the Deferred Commit/Remote Run capability of TeamCity. If a remote run fails, the way the TeamCity plugin juggles changelists conflicts with your conflict detection policy, and everything goes kerflooey. Fixing this properly probably means that changelists need a real life-cycle and history, so that deferred commit alter the metadata of a changelist rather than having to create a new one. Adding that would require JetBrains work, and would open up a huge amount of possible functionality.
For what it does, ChangesBar works great, and I recommend it to everyone.
Ooh, and one more inconsistency that's been around since the dawn of time. Every Java keyword is available for completion, except for 'true', 'false', and 'null' .
In general: Have much more options (which are right now available in the settings dialog) also available "on-the-fly" in those actions/dialogs that use them.
- when "compile" progress dialog pops up: Have an option there to always put compilation in the background (with the text also hinting at the settings in case the user wants to toggle it later). There are other such dialogs that should have a similar option.
- this one annoys me often: go to the declaration of a library class that has no source attached. Idea opens a decompiled source stub. Now pleeeeaase provide a straightforward option (maybe intention, but better something more visible, e.g. a button in the file header) to add sources to this class's library. Even Eclipse can do this (though in eclipse the source stub isn't a real source file - you cannot use it to navigate further (e.g. up the class hierarchy) or find usages of methods - which annoys me even more).
- Module libraries should not be so different from other library kinds: For project and global libraries I can bundle multiple jars using one libary and add a single source folder which is used for all jars. No such possibility for module libraries. I have come across quite a few projects now that have a single source folder and use ant with complicated include/exclude patterns to generate multiple jars from that. Now if I want to add these jars as module libraries I have to configure source folder for each and every jar.
Besides it's also quite confusing in general that module libraries differ so much from other libraries.
I am sure that esp. in the project setup area there are more of these on-the-fly-options that could be added.
Also there should be many, many Jira issues (some of them very old) that can improve usability if implemented.
I wholeheartedly agree. It is just too much trial-and-error to figure out
how to configure projects.
Dave Griffith wrote:
Hmm, I never felt the need to complete any of them. Before doing something useless like
that just for the sake of consistency, consider fixing the completion of
"sync<ctrl-space>" that always ends up as "synchronized(|)" instead of "synchronized(|)".
And that's been around since forever as well...
Sascha Weinreuter wrote:
Ehm, I meant "synchronized (|)" of course...
Kirill Kalishev wrote:
Well, that's simple: Editing JSPs, especially JSPX sometimes goes even beyond just being
annoying. There's no other area in IDEA that throws so many exceptions, behaves so
unexpectedly and often simply doesn't work.
After my co-workers switched to 6.0, I had a very hard to time to explain the behavior and
the reasoning behind the new project configuration interface. It's far from
self-explaining and only makes sense after thinking about it for along time. And having to
think about how to use UIs is apparently not very popular ;)
The configuration of the error-highlighting schemes is a bit odd as well. It can take a
while until one discovers where and how to set the project's profile. It suffers a bit
from the same problem the project roots UI has as well: The attempt to put everything into
a tree. It's certainly an efficient way to organize things, but it really hurts the
It is also quite frustrating to realise I want to use the error-highlighting of another project and it is saved as a project profile. That means I have to load the other project, copy the profile to IDE level and close the project again. A task which should have taken a few seconds suddenly takes more than 5 minutes.
I also use ChangesBar and find the conflict detection invaluable. The
only annoying thing is when I have several changelists and I update from
SVN: if a file in one of the non-default changelists gets merged (i.e.
local changes and changes on the server), it automatically goes into a
conflict list, which is never what I want.
Is it the way you intend it to work?
The annoying things(TM):
- Fixing IDEA-10930 (http://www.jetbrains.net/jira/browse/IDEA-10930) would be a good start for me.
- My major bug-bear is project/module/scope views. We have a few large projects with a lot of reusable modules and to keep code consistent when refactoring, we create a large project and then split the modules into module groups. Most of the time I'd like to be able to hide a majority of those module groups, as depending on the project that I'm working on the rest of the non-shared code is irrelevant to me.
This brings me onto my other major problem - Scope views. At the moment they are completely unusable as they just break constantly. Half of our code-base is missing from the default scopes which are created (some entire module groups are just empty). Also, randomly IDEA just switches the scope you're viewing, or switches you back to the Project view.
- IDETalk. Possibly the slowest instant messenger ever created. We had a message which took 6 days to arrive the other day :) Message sending/receiving seems completely random on our intranet - we've resorted to sending test messages with the date in the message, to make sure we're talking on the same day! In fact I've just had the following message from a colleague "I just got the most random 12 messages from you" (of course I have no idea when he sent that ;) )
- Apart from that, I'm actually really happy with IDEA 6. I've found it a lot nicer to use than IDEA 5
Robert Gibson wrote:
Ah yes good point... no it shouldn't do this. Should be pretty easy to
fix if there is a way to detect that a vcs operation is happening... I
have no idea how though - any suggestions welcome.