Plugin Compatibility
Due to a major internal refactoring, we have made a significant number of backward incompatible changes to the plugin API. Please refer to Diana Plugin Migration Guide for help in updating existing third-party plugins.
Seam Support
1. Seam Facet and Seam Components Structure(Java EE)
2. Alt-F7, Shift-F6 and EL everywhere
3. Inspections
4. Conversations, Observers and many others
5. Pageflow Designer: inplace editing, DnD, Alt-F7, Shift-F6, F4 in graph
6. Pages Navigation Graph (DnD of web pages from ProjectStructure)
7. etc.
FreeMarker Support
Parsing of .ftl files
Reference completion
Rename support
Implicit variables support:
JavaScript Debugging
Run configuration to debug local html files:
Browser opens in separate frame:
Breakpoints in html- and js-files:
Breakpoints dialog allows to change properies of breakpoint:
Debug toolwindow (frames, variables, watches):
Evaluate expression dialog:
Show value in tooltip on mouse over:
SQL Support
Per-file SQL Dialect Settings (See Per-file Encoding Support screenshot below).
SQL92 DDL and query and MySQL DDL dialects support.
DDL DataSource
JDBC API & iBatis XML SQL language injection
Reference navigation and highlighting.
Flex Support
1. New module type for Flex development:
2. Flex SDK is added for Flex modules:
3. Flex run configuration
4. Flex debugging:
5. Package name and class name is checked to be the same as directory or file name respectively:
Per-file Encoding Support
You can configure file encoding individually for the file, all files in the directory, or all files in the project.
Settings are stored in the per-project configuration file which can be shared among the team and version controlled.
"Unwrap/Remove" action (delete enclosing statement)
You can use the action to quickly extract or remove statements from an enclosing statement (such as if, while, for, etc.).
The supported statements are: for, foreach, if..elseif...else, try...catch...finally, while...do, do...while, and lone braces.
The statements to be extracted are highlighted with blue, to be removed - with grey.
Unwrap Example:
The code before unwrapping the first else branch:
The code after unwrapping:
Remove Example:
The code before removing the first else branch:
The code after removing:
Struts 2
The Struts 2 plugin by Yann Cebron is now bundled. See here for more information on the plugin.
Other Improvements
"Revert Changes" action
Action in context menu of a committed changelist applies the reverse patch of that changelist to the current source code. Can be used to revert changes committed by any user, even if it's not the last checkin.
"Use existing implementation" quickfix
For an abstract method with some missing implementation, allows to copy one of the existing implementations to all the places where an implementation is missing. Invoked on the abstract method.
Highlighting of implicit parameters for anonymous classes
New Show Applied Styles window
Tag name completion in XML & JSP
Start a new tag and press Ctrl-Alt-Space:
Choose an item:
Namespace auto-import in XML & JSP
Type a tag with not bound namespace prefix:
Press Alt-Ins and choose a namespace:
Namespace declaration is inserted:
109 Comments
Boris Kirzner
Are you planning to add Spring Web Flow support to Diana (in the same spirit as Seam support - flow designer, navigation graph etc) ?
Dmitry Jemerov
We would like to, but we don't have a definite plan for this yet.
Anonymous
I would give a +1 for this and since it is fairly similar to seam, you might get a lot of reuse.
Sergey Vasiliev
Spring Webflow Designer is under construction and will be added soon
Anonymous
Add Scala !!! (please)
Dmitry Jemerov
Our Scala plugin is developed independently, and most likely it won't be ready for bundling into IntelliJ IDEA by the time version 8 ships.
Anonymous
+1
Anonymous
+1
Anonymous
+1 to scala support, or some snapshots would be nice.
Anonymous
+1
Anonymous
+42
Anonymous
+1
Anonymous
+1 for scala from me, too
Anonymous
+1
Anonymous
+1
Anonymous
+1 I'm thinking of jumping back to Eclipse now that the eclipse scala plugin is stable
Dmitry Jemerov
http://plugins.intellij.net/plugin/?id=1347
Anonymous
Any plans for Velocity templates? At least syntax highlight ...
Dmitry Jemerov
Yes, Velocity is planned.
Anonymous
Thanks...Thanks...
Erik Pragt
Just a small note: I really like these releasenotes pages! Much better than the Jira version. Really nice, thanks!
Anonymous
Great to see support for JBoss Seam.
Anonymous
Is there any plan for supporting Python?
Dmitry Jemerov
Yes, there is.
Anonymous
Would it be feature rich like the support you have for Ruby?
Dmitry Jemerov
We don't initially plan to support any Web frameworks (unlike the Ruby plugin which supports Rails), but otherwise yes.
Anonymous
Please consider adding Velocity support to IDEA !
Dmitry Jemerov
Please consider reading existing comments to this page, as well as replies to them, before posting a new one.
Roman Swoszowski
Will Flex debugger be available only for ActionScript (i.e. ActionScript classes and code within SCRIPT tag in mxml) or also for MXML itself (e.g. for debugging bindings) ?
David Levitt
How about generated code support? [see IDEABKL-2735 IDEABKL-2874 ]
Dmitry Jemerov
We still do not understand clearly enough what kind of support exactly is desired. Many of the requested features are achievable with existing IDEA features (e.g. generated code can be attached as a library).
Anonymous
Any support for Google Android planned?
Dmitry Jemerov
Not for now, but hopefully the existing plugin will see some updates.
Anonymous
Will Drools will be supported? Or Jess?
Need some rule engine support.
Dmitry Jemerov
No plans for anything like that yet. Third-party plugins are welcome.
Anonymous
Something new in this topic: plugin support for drools or jess? (i need rule engine support, too)
frankie kuo
will support Hibernate HQL editor in the features?
Dmitry Jemerov
Hibernate HQL is fully supported in version 7.
Anonymous
I would like to see expanded supported for domain specific languages. I know Jetbrains has worked on a very ambitious project to that effect, but perhaps it was before the market wanted it? Even simpler stuff like being able to provide a grammar for error and syntax highlighting would be fantastic.
Dmitry Jemerov
Our very ambitious project is alive and well, thanks.
Most of traditional grammar files are not a good fit for error highlighting because they don't really support error recovery: after one error they get into an error state and the rest of the file cannot be highlighted correctly. Hand-coded recursive descent parsers, which we use for our own language plugins, do not suffer from this problem, and our plugin API allows you to write such parsers for your own languages since IDEA version 5. So it's not exactly clear what additional support could be provided.
Anonymous
Is the JSP WYSIWUG is planned in near future or distant future. At least a way to navigate between the JSP designer elements and it's JSP code counterpart like RAD is very much welcome. I have requested this for so many times. Please include this in Diana.
Dmitry Jemerov
No, JSP WYSIWYG is not planned for Diana. Can't say anything about versions beyond that.
Anonymous
Here comes my "WYSIWYG, Please!"
Anonymous
I'm glad seeing Seam so comprehensively supported!
Anonymous
Will you be supporting SQLServer dialect?
Jon Steelman
Besides parsing & such, will you be adding support for execution of SQL in .sql files? Maybe it is there but I didn't discover it.
Anonymous
Great the SQL support...
Any support for Spring 2.5 ?
Dmitry Jemerov
Not in the current EAP, but it's definitely planned for 8.0 final.
Anonymous
How about OSGi support?
Jacques Morel
+10
Any response from JetBrains?
Anonymous
My 2 cents: as multicore machines are getting more common, I would like some ability to run JUnit tests in multiple threads at once, to speed them up. (Such test runner threads would have to run in separate JVMs then, to avoid breaking tests that rely on static variables). (If this is something that can easily be achieved with a plug-in, I might consider writing such a plug-in myself.)
Anonymous
Don't make your tests rely on static variables.
Michael Hüttermann
You may give TestNG a try for advanced testing strategies.
Anonymous
Wish somebody would build a Java IDE that is optimized for pure Java source coding and that is super fast, without tons of J2EE, external framework, you name it here, features that makes it slow and hard to use. Kinda like IntelliJ 2 from 2002.
Actually, can JetBrains re-release older versions?
Dmitry Jemerov
Most of the J2EE and external framework features in IntelliJ IDEA are provided as plugins, and you can just turn them off if you feel that they make IDEA slow or hard to use.
Anonymous
The basic features were faster 5 years ago than in the most recent release, so I don't think turning off the plugins would make it happen.
Mario Arias
Why don't give a try??
I disabled some plugins and modify my idea.vmoptions as this
-server
-Xms500m
-Xmx1500m
-XX:MaxPermSize=400m
-ea
-XX:+UseConcMarkSweepGC
And is pretty fast comparing with 5 or 6 versions
Anonymous
I have tried different things, but not exactly what you have here, so I will do that.
IntelliJ is still the best Java IDE out there and it's worth the effort to get the good feeling back.
Anonymous
Tried these settings and IntelliJ 7.0.3 is still freezing left and right. Especially when it looks up class definitions in the background (for new objects). This behavior was much better in the past and it is really annoying since it is breaking the flow of coding.
So, I still think they should release a pure Java source code only editor that is optimized for that only. All the other stuff we can do with ant and other proven techniques.
Dmitry Jemerov
Sorry, what exactly do you mean by "looking up class definitions in the background"?
Also, to let us understand why exactly a certain performance problem is happening, you can send us a CPU snapshot as described in http://support.jetbrains.com/kb/entry.jspa?externalID=192&categoryID=5
Hugo Palma
Is a Flex visual designer in the roadmap for Diana ?
Dmitry Jemerov
No, we don't have the resources to implement it in Diana (and most likely after Diana too).
Anonymous
Hopefully this will be elevated on the roadmap as more and more project are adopting Flex and Silverlight as core components of their development moreso than the 'langauge of the moment'.
Anonymous
I'd like to see multimode xml files, or correct traversal of relax-ng xml, as used in OpenLaszlo, essentially to be able to use both their declarative XML and the Javascript code inspections.
Dmitry Jemerov
Unfortunately I don't understand what "multimode XML files" are. For Relax-NG support, there's a third-party plugin available in the plugin manager.
Anonymous
I'm sorry about being unclear. This is really to be able to edit openlazslo files, they
can look like this: They essentially are a combo of declarative XML and Javascript, I know
there was talk about a plugin for OpenLaszlo, this is really based on a relax-ng schema that can
expend. Unfortunately this is an either / or, and what I'm really after is IDEA's awesome
xml parsing as well as the JS syntax checking.
This whole thing I know is tricky as the classing in openlaszlo leads to an extensible
schema, not a beautiful thing in a xsd/dtd, but the relax-ng plugin will not allow me to
parse this correctly either.
(Example)
<view name="letterclipper" clip="true" width="330" height="100" x="93" y="336" bgcolor="white">
<method event="oninit">
this.setAttribute("relX",0);
</method>
<view name="lettercontainer" x="45" y="0"
bgcolor="gray" width="102" height="0">
<wrappinglayout axis="x" spacing="12"/>
<dataset name="lds" src="http:titles_test.xml" type="http" request="true"/>
<handler reference="lds" name="ondata">
Debug.write("Current width : " + canvas.letterclipper.lettercontainer.getWidth());
<![CDATA[
Debug.write("remotedata test data loaded", this);
Debug.write(this.lds);
Debug.write(this);
var id;
var name;
var iconUrl;
var nodes = lds.getElementsByTagName("titles")[0].childNodes;
for (n in nodes)
]]>
</handler>
<method event="oninit">
this.animate( "x", 0 , 1, false );
</method>
<method name="scrollRight" args="pixels">
<![CDATA[
var distX = Math.round(parent.getAttribute("relX") - pixels)
var actualX = Math.max( Math.min(distX,0) , -this.width/2 );
Debug.write("Current width: " + this.getWidth());
if (actualX > distX)
else
Debug.write("Distx: " + distX + " to: " + actualX );
]]>
</method>
<method name="scrollLeft" args="pixels">
<![CDATA[
var distX = Math.round(parent.getAttribute("relX") + pixels)
var actualX = Math.max( Math.min(distX,0) , -this.width/2 );
this.animate( "x", actualX, 1000, false );
parent.setAttribute("relX",actualX);
Debug.write("Distx: " + distX + " to: " + actualX );
]]>
</method>
</view>
</view>
Sascha Weinreuter
Sounds like you should try the IntelliLang plugin to get support for editing JavaScript inside XML tags.
BTW: Your code fragment works just fine for me when it is associated with the RELAX-NG schema for OpenLaszlo available here (well, it shows "wrappinglayout" as incorrect, but in fact this tag is not present in the schema either). You need to put your root tag into OpenLaszlo's namespace and associate this with the schema file. This will give full error checking and completion based on the schema.
If there are specific problems with either the IntelliLang or the RELAX-NG plugin, don't hesitate to ask me either per mail or in the plugin forum. Please note that both plugins are not available for the Diana EAP yet.
Anonymous
Thank you!!!
Btw, how did you setup the schema validation of that file?
If I associate the namespace via a xlmns='' it is still 'failing'
could be the rnc file I guess?
IntelliLang was what I needed, many thanks!
Sascha Weinreuter
The target namespace of the rnc file is "http://www.laszlosystems.com/2003/05/lzx" so you need to add
xmlns="http://www.laszlosystems.com/2003/05/lzx"
to your XML document like this:and configure IDEA to let the namespace point to the rnc file in Settings | Resources.
Jean Seurin
After all the efforts injected to integrate Maven based project in IDEA 7, I think it'd be great to continue on the Maven integration road.
It might be unclear to some but people having migrated their previous IDEA project to Maven probably understand what I mean. We've lost a few key IDEA feature on the way.
I can only name the few that comes to mind on the moment:
more may come later but I hope you understand my point. Maven is a great tool from the organizational point of view. IDEA has great features form the developer POV (lik hotswap in debug mode), it'd be so good to keep benefits from both sides at the same time.
Anonymous
Any plans for JavaFX?
Dmitry Jemerov
Not yet.
Anonymous
+1 for that.
A visual builder for JavaFX Script would be really great (and not that difficult I believe)!
Anonymous
I know it's a bit early, but support for Closures as defined by Neal Gafter et. al. (www.javac.info) would be really sweet. At least have support for that by the time the first Java 7 beta is out.
Anonymous
Any plans about Apache Wicket(http://wicket.apache.org/)?
Dmitry Jemerov
Have you tried the existing plugin (WicketForge)? Is it good enough?
Howard M. Lewis Ship
Strangely, what I'd really like to see is support for the Haskell programming language. It'd be interesting to see that inside IDEA. It has a tricky syntax because, like Python, indentation matters.
Dmitry Jemerov
That would be too exotic from our point of view.
Definitely not in the plans for version 8.
Anonymous
Eclipse has identifier highlighting. With the IntelliJ identifier higherligher plugin you can get almost the same effect. It's good but is has glitches. Any chance of cleaning it up and making it part of IntelliJ itself?
Dmitry Jemerov
Possibly. We wanted to add this highlighting as a core feature at one time, but then decided that the existing plugin was good enough.
Anonymous
How about support for for web services. love Intellij but for managing/creating wsdl-first webservices Eclipse is much better.
Dmitry Jemerov
Have you tried the built-in support available in IDEA 7? Please describe in more detail what improvements you would like to see.
Anonymous
I would love to see support for xml-based java resource bundles
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="some.message.key">Blurbs</entry>
</properties>
Anonymous
would be nice if you could make idea behave like a good citizen in mac os (maybe even in 7 without forcing paying users to upgrade)
http://www.jetbrains.net/jira/browse/IDEADEV-25376
(6 month old and nothing happening at all)
George Sharonov
What is about possibility to extend GUI components?
Dmitry Jemerov
Could you please explain in more detail what exactly you mean?
George Sharonov
I'm talking about the same thing that was already pointed out on your blog by Arik Kfir: http://blogs.jetbrains.com/yole/archives/000114.html
"The worse limitation (still present in demetra) is IDEA's inability to use custom *containers* - e.g. if I created my own class, "MyPanel extends JPanel" - I can't use it as a panel in the designer (can't place other components on it). This poses a very big limitation on large organizations (such as the one I'm at) which have existing components and frameworks which simply can't be used. Yes, I know all about the "you should *use* components, NOT extend them" argument - but it does not always hold water. There are cases when you simply have to do it - both tech-wise and organizational-wise."
In my case I have a JPanel with all common components and I want to extend it with some special components for some particular purposes. Namely this is the JTabbedPane with little bit different tabs.
PS: Finally I've found that I can do what I want if I create a Form, bind it to a class that extends my common tab JPanel and will ignore "no binding" errors of UI designer.
Anonymous
Is it possible to get back the good old search dialog box instead of Firefox style search. Please let both of them there and let users choose which one they want to use.
Dmitry Jemerov
What problems exactly do you have with the new find bar? We would prefer to fix those problems rather than clutter the product with two different UIs for the same feature.
Anonymous
Thanks for asking. Here it goes. In the old search box I get forward/backward direction to choose from which is not present in new find bar. In the old search box I get to choose the Global/Selected Text Scope which is pretty useful if you have a very long file and you just want to search the selected text. In the new find bar this is not there. Also the Origin to choose from is not present in the new find bar. Hope this helps. Once again thanks for listening.
Anonymous
I agree. The new firefox style search messed up my flow. Maybe you guys can provide the option of switching between the two.
Anonymous
Like the ="" issue below, this one is also about flow. In earlier versions, I'd press Ctrl+F, type in my string, press enter, then i can navigate around while continuously finding things. I can use alt+arrow keys to move between methods, navigate from one work to another after finding the first match, etc.
With the new firefox style search, i have to run my search, then move my hand to the mouse then click inside the editor, before i can start navigating within. I tend to press Esc instead, which cancels out the search.
I'd much prefer the older find style.
Thanks.
Anonymous
One more thing about this find bar is if you open that bar and then move to some other file then again if you come back to that file the bar is still open. I might not want to search again. Please have both the old and new search. Please give me choices to use which one is better suited for me.. It won't do any bad.
Richard Richter
I agree with the flow problem. I press Enter and start to write which break the searched string of course. Enter should close the box because now it only duplicates arrow down. I can adjust to new flow with arrows working like F3/shift+F3 (cool thing), but Enter really can close the bar - or at least return focus to editor - now Enter is no good there.
I use Idea 7 for few months now and from my experience Enter returning focus to editor would be 80% enhancements (considering ratio of cases where I enter the string and press enter without using any other options).
Richard Richter
Now I experimented more with Esc vs. Enter... and even Esc works LIKE Enter + it closes the bar and returns focus to editor. This seems completely unnatural. I have "this string" last searched... F3 searches for this - OK, now I press Ctrl+F and start "that string" and I said to myself .oO(no, I don't want to search this), press ESC. Then I press F3 for... "that string"??? What the heck? I wanted to search for "this string" because I *cancelled* searching for "that string".
Bar or dialog - doesn't really matter. I like incremental search, but ESC shoud:
- return you to previous location (or make it optional at least)
- forget that string and don't store it into history
Enter shoud (as said before) escape the bar and put caret into editor to first occurence. My two cents.
Anonymous
Can you smooth out the way attributes are added to new XML elements? Let me illustrate the problem, using the pipe character "|" to indicate cursor position:
1. I start an XML element, like c:if: <c:if |
2. IDEA adds the ="": <c:if |=""
3. I add an attribute, like "test". IDEA moves the cursor inside the quotes: <c:if test="|"
4. I type in a quote, the attribute is done, but there's no smooth way to get out of the quoted area without using the arrow key.
Pressing tab at this point inserts a tab (or spaces) inside the quoted value. I'd very much prefer typing in ="" myself and that would allow me to continuously type without moving my fingers away from the main keyboard area to the arrow keys. I tried looking for a way to turn off this auto ="" but can't find any.
Thanks.
Anonymous
Sorry, let me restate item 4:
4. I type in a value, the attribute is done, but there's no smooth way to get out of the quoted area without using the arrow key: <c:if test="$
|"
Anonymous
Once more:
4. I type in a value, the attribute is done, but there's no smooth way to get out of the quoted area without using the arrow key: <c:if test="myvalue|"
Anonymous
What about multi-monitor support ?? Please ?
I guess most developers have at least two monitors these days.
Unless they don't want to "develop with pleasure"
Jacques Morel
+10. Having multiple detachable editor group seems easy to do and would solve the problem.
I know that it would break the current MDI scheme and could be confusing if there are multiples opened but that could overcome with color scheme or a descriptive title. in any case right now multi-display has almost no value with idea imho.
Anonymous
UML editor will be great...
Anonymous
Will I be able to do some spaghetti code in the new version or do I have to use the old bolognese plugin to do that?
Anonymous
OK then, what about the AspectJ support? Are there any plans to support it in 8.0 or any future release?
Anonymous
Nice to see the additional of javascript debugging. It would be nice to see a JavaScript only project template like the Flex one I see for the times you want to edit just Javascript and HTML.
Anonymous
Boy a lot of interesting new features... but IntelliJ 7.0.3 is so very slow, with dramatically long pauses. This is a large project (6000+ java files) and I have applied very tuning suggestion for 7.0.3, and it is still painful to use when compared to 5.x which I used on the same project and the same machine months ago.
There's a lot of memory available for IntelliJ, and no swapping on my machine, I can't imagine why it's so slow... but I'm no longer enthusiastically telling people to throw away Eclipse and pay for your product :'(
Anonymous
I'd appreciate if you'll add support for Vim text editor emulation. The plugin that I've used in IDEA 7.0.* is pretty weak, not configurable and wasn't updated for 2 years.
Anonymous
Seems Great
Matt Raibert
This looks exciting. I thought I'd add a note about something which bugs me:
I would like to be able to edit the annotations on methods which are generating by file templates such as adding an @Override when I implement an abstract method or override a method.
Anonymous
Equvivalence to Netbeans Mobility Pack, i.e. preprocessing, multiple selectable configuratoins per module etc.
Plans?