Automatic detection of actual source roots when attaching sources to a library
Select a zip with sources like:
and IDEA will scan it for actual source roots:
Basic Spring AOP pointcut expressions injection and keyword completion.
Custom Search Scope in Find in Path
Find in Path works for library sources and jar files.
It is now possible to read/write Eclipse project dependencies on-the-fly, without manual import/export. This means that every change in module settings is automatically reflected in .classpath file, and every change in externally updated .classpath file is reflected in IDEA.
This is a per-module setting. There are 3 ways to activate it:
1. For an individual module: from Dependencies pane of Module settings. This is where you can switch back to native IDEA format.
2. For several modules, when importing Eclipse projects (click a checkbox in "Link" column).
3. Export to Eclipse action now lets you select projects to export. In addition, if you click on the checkbox in the "Link" column, IDEA module will be switched to Eclipse format and newly generated .classpath file will be used on-the-fly.
You may now choose where to store converted .iml files (useful if you want to version them separately, or just hide them from Eclipse-using colleagues
- Renaming IDEA module does not rename Eclipse project (and vice versa)
- If a project uses jar located under another Eclipse project, this dependency may be imported incorrectly.
- IDEA allows to create extra content roots which might not be properly converted to Eclipse format.
- IDEA updates.classpath files even if the difference is only in whitespace (will be fixed soon)
- IDEA setting which Eclipse does not support (test sources, excluded directories, output paths) are written in a separate file (.eml) colocated with .iml file. The file is not created for trivial set of settings. These settings will be written to .iml in the future.
It's now possible to switch from default button-like style to alternative by specifying "-Didea.breadcrumbs=true".
UI Designer Code Generation Change
For better compatibility with custom component creation, the call to the UI initialization method ($$$setupUI$$$()) is inserted in the constructor before the first reference to a UI-bound field or the first method call, rather than at the beginning of the constructor. When source code generation is used, the new generation logic is used only when custom-create components are present on a form, in order to avoid spurious code changes.
Here's some example code:
This code doesn't work in IDEA 6.0 because the call to $$$setupUI$$$() is generated immediately after the super constructor call, and the myProject field is not initialized by the time createUIComponents() is called. In IDEA 6.0, it was necessary to write an empty $$$setupUI$$$() method (which would be replaced by the generated code) and to call it explicitly from the constructor. Since this build, the $$$setupUI$$$() call is generated immediately before
mySourceUrlLabel.setText(myURL.toString()), so the createUIComponents() implementation receives correctly initialized field values.
Redesigned "Clear Read-only Status" dialog