(Note : rather longuish, but easy to read. )
Wherever there is a dialog to tune the system to your
liking/needs/obligations, there is an opportunity to save your
selection/actions as a named profile, and recall/redo it later, whether
it's motivated by laziness, company policy, project type, client demands
or personal habits
1?/ named profiles, everywhere :
Like the named profile in "Inspect Code", I wish IDEA would allow me to
store all the choices I make in dialogs, in individual, per dialog,
named profiles, and retrieve/reselect them at the touch of a combo-box.
ex: Code Style, Code Completion, Editor, ..
Basically, I think - almost - all the dialogs where you can choose
options - eg. code style, compiler, .. -, or enter values before a
command - Search, Replace, .. -, would benefit from a +
combo-box, ?-la "Inspect Code".
A 2nd usage of "named profiles" would be to group set of "items" into
smaller and logically related subsets.
- Live Templates could be separated into smaller groups :
- File Templates
- Todos, External tools, ..
This is linked to (see below "Sets of..") the ability to unload items
you don't need, to unclutter the display, or chose better suiting ones.
A 3rd usage of "named profiles" would be to group set of "actions".
Each time I create a new project, I keep repeating the same manual actions :
- create directories structure
eg. /src, /tst, /log, /build, ..
- load some default files
eg. build-std.xml, log4j.xml, ..
- load some libraries
eg. junit, httpunit
Although it's more a macro thing, than a settings thing, this 3rd kind
is part of the big picture (see below, in project wizard)
2?/ Sets/combinations of partial profiles :
Some profiles (group of settings) are mutually exclusive.
ex: Code Style
Some other profiles (group of settings) are not exhaustive, an can be
ex: Live Templates,
L.T could be split in subsets, that you could load, unload and combine
Motivation 1 :
ex. When working on a Web project, you would load
["Default LT" + "html LT" + "JSP LT" + "Velocity LT"],
"EJB LT", "WebMacro LT", ..
Motivation 2 :
When using different versions or rival products - ex. WebMacro vs
Velocity - you could keep the same LT names and shortcuts, but their
actions would be different and adapted.
3?/ Sets of Sets of profiles
On one level, you may wish to regroup all the Velocity_WebApp related
L.T. (default + html + velocity) into one entry.
On multiple levels, you may wish to regroup sets of settings from
different sections but that are logically related :
=> load Velocity L.T. (see above)
load Velocity File Templates
loat WebApp related tools
Once we have that, a relatively decent project wizard is not far :
Example : start a new Velocity based WebApp project
create typical webapp project dir. structure (/src, /tst, /log, ..)
load Velocity L.T. (see above)
load Velocity File Templates
load a build.xml suitable for VelocityWebApps
copy velocity.jar into /lib
copy HelloWorld Velocity servlet code into /src
copy basic HttpUnit tests into /tst
copy log4j.jar into /lib
copy log4j.xml into /
load default CVS pserver settings
A script or macro seems the proper way to perform this complex task.
Just some thoughts.
What do you think?