IDEA Background Tasks (As of 5261)
or How to make Demetra "Ready for DualCores"
In some of the previous topics, I had mentioned with Inspect Code, Locate
Duplicates, and the Find commands, you need to be able to run these tasks
in the background. Actually, that should be the default.
All long-running tasks should:
1) Run in the background by default.
2) Don't steal the focus or interfere with user while running or after completion
3) Don't show progress bar covering the editor.
progress should be shown the status bar or in a status/progress toolwindow
4) If the results window for the task is being updated to reflect the currently
found results, it should also give indication that the command is still running
and have toolbar button to stop it.
Users never want to see a modal progress bar; And the users with dual core
workstations are even more annoyed because they have one cpu sitting idle
while IDEA is blocking input! I personally use the Inspect Code feature less
than I would like because I can't launch it in the background while I do other
I have seen Jetbrains make some positive changes in this area in Demetra, and I hope
more are coming.
Demetra has a new option General->Search in the background. If enabled, when you do
a Search, Search & Replace, Structural Search, or Structural Search & Replace (but not
a Find Usages), the modal progress dialog is not shown. Instead, the progress is displayed
in the status bar along with a red button to cancel the operation.
Currently, it looks like IDEA is behind Eclipse in this area. Eclipse did a major overhaul
in 3.0 M9 to add a new UI framework for background operations. See
In particular, Eclipse properly shows two or more background tasks in the Progress Dialog or Progress
In the following sections, I am going to cover some of the main areas which need to be improved
to make IDEA more pleasurable by getting rid of modal progress dialogs and making all long
tasks run in the background.
Ant Requests: http://www.intellij.net/forums/thread.jspa?threadID=210841
Find Requests: http://www.intellij.net/forums/thread.jspa?threadID=197579
JSP Requests: http://www.intellij.net/forums/thread.jsp?forum=22&thread=190614
Inspection UI Requests: http://www.intellij.net/forums/thread.jsp?forum=22&thread=193582