IntelliJ IDEA 8.0 New Features
IntelliJ IDEA 8 fully supports JBoss Seam, Struts 2, FreeMarker, Velocity, Spring 2.5, smart debuggers for Javascript and Flex, JetBrains' own code coverage engine, support for multiple dialects of the SQL language, REST WebServices, and countless other improvements and additions, including new intention actions, quick-fixes, code inspections, greater performance and more stability than ever before.
Greater Performance
IntelliJ IDEA is based on an all-new platform that provides better performance by accelerating the file system operations via the intellectual caching engine, and boosts overall IDE speed with optimized memory management and the new, extensible and efficient data indexing engine. Plus, IntelliJ IDEA's performance on multiprocessor and multicore systems is better than ever!
JBoss Seam
IntelliJ IDEA 8 provides dedicated support for JBoss Seam out-of-the-box, with comprehensive facilities for full-cycle development of Seam applications.
Seam support includes:
- Coding assistance with smart completion
- Syntax and annotation highlighting
- Wide range of Seam-aware code inspections, plus quick-fixes
- Visual editors for page flow and page navigation rules, including Seam components dependencies graph
- Advanced navigation with dedicated structure views
- Seam-specific nodes in Project View
- Support for Seam elements (annotations, conversations, EL, observers, etc)
- Seam-aware Find Usages and project navigation actions
- All of the IntelliJ IDEA automatic refactorings are Seam-aware
Debuggers for JavaScript and Flex
IntelliJ IDEA's debugger now supports JavaScript and Flex debugging with a complete range of features — watches, conditional breakpoints, dependent breakpoints, expression evaluation and more.
- Breakpoints in HTML, JavaScript/ActionScript and JSP/MXML files
- Customizable breakpoint properties: suspend mode, conditions, pass count and more
- Frames, variables and watches views
- Runtime evaluation of JavaScript expressions
Flex Code Editing
IntelliJ IDEA ActionScript and MXML editor is beefed up with new features like implement/override methods, generate accessors and constructors, auto-import and optimize imports, etc. IntelliJ IDEA 8 also supports Flash 10 ActionScript generics.
Struts 2
Version 8 offers better Struts support, extended to fully support Struts 2 via the full range of productivity-boosting features:
- Configuration via dedicated Struts 2 facet
- Struts 2 facet includes the fileset manager, library validator and is capable of automatically detecting the configuration settings
- Dedicated Struts 2 structure tool windows
- Multiple code inspections that spot Struts 2-specific code issues
- Support for inplace Javascript and CSS code
- Coding assistance with smart completion
- Struts 2-aware project navigation across Java, JSP and XML files
- Struts 2-ready refactorings
Spring 2.5
Spring support has been upgraded with version 2.5 and a set of new and improved features.
- Spring WebFlow support, including visual designer and coding assistance in both XML configuration files and
Java annotations
- Support for Spring 2.5 stereotypes with qualifiers (@Component, @Service, @Repository, @Controller,
@Qualifier)
- Support for Spring 2.5 autowiring
- More Spring model code inspections, with automatic quick-fixes
- Optimized dependencies diagram
- Spring MVC
- Smart code completion and resolution is provided for Spring MVC controller URLs.
- Code completion also recognizes MVC model attributes.
- Smart code completion and resolution is provided for Spring MVC controller URLs.
- Spring Dynamic Modules
- Full-fledged coding assistance, with smart completion and syntax highlighting
- Code inspections with error highligting
- Advanced nagigation, with usage search
- Template beans and numerous live templates for automatic code generation
- Full-fledged coding assistance, with smart completion and syntax highlighting
Support for SQL-92 and MySQL
IntelliJ IDEA now supports SQL scripts with the complete range of its coding assistance features: smart completion for keywords, table and column names, syntax and error highlighting and more. Plus, Rename refactoring also recognizes and updates table and column names. IntelliJ IDEA recognizes generic SQL (SQL-92), MySQL and SQLite.
Dedicated SQL Console is provided to run SQL scripts right from the IDE.
- Smart JDBC console, with complete SQL coding assistance, for running SQL queries directly from IntelliJ IDEA
- Easly invoked from the Database toolwindow
- Use it as a dedicated toolwindow
or as the full-scale SQL query editor
- Easly invoked from the Database toolwindow
- SQL data sources support
- SQL data source is an sql file containing the Create Table statement. IntellJ IDEA recognizes the
code and offers coding assistance based on its structure.
- IntelliJ IDEA treats SQL data sources the same way as JDBC.
- SQL data sources can include tables from other data sources.
- You can drag and drop sql files from project view to Database toolwindow to quickly create SQL data source.
- SQL data source is an sql file containing the Create Table statement. IntellJ IDEA recognizes the
code and offers coding assistance based on its structure.
FreeMarker and Velocity
IntelliJ IDEA now completely supports FreeMarker and Velocity: code completion, syntax and error highlighting, implicit variable declarations in comments, parameter info and quick documentation, and the others. Moreover, the complete support is provided for HTML and CSS code embedded in the templates.
- Explicit variable definition for better coding assistance
- Code completion in comments for implicit dynamic variables
XSLT/XPath support
- Smart XSL and XPath code completion for:
- Tag and attribute names, and their values
- User-defined variables, template and stylesheet parameters
- Axes
- Functions
- XSL and XPath syntax and error highlighting
- Instant quick-fixes for spotted problems
- XPath-based search for XML files
GWT 1.5
GWT support has been extended to GWT 1.5, with new code inspections, annotations, quick-fixes and improved coding assistance, including smart completion which now recognizes the @Key annotation.
GWT projects navigation has been improved: you can jump between corresponding synchronous and asynchronous methods.
REST WebServices
IntelliJ IDEA support for WebServices has been extended with Representational State Transfer (REST) WebServices, integrated through a set of its productivity-boosting features to let you easily and effectively write, debug and deploy REST WebServices applications. IntelliJ IDEA supports version 0.8 of the JSR-311 specification and its reference implementation, Jersey.
- Coding assistance with code completion and syntax highlighting
- Multiple on-the-fly code inspections with instant quick-fixes
- Dedicated tool window for live debugging of the service with GET, POST, DELETE, PUT and HEAD requests. It
allows you to customize requests with parametes, support proxies and is capable of generating URL patterns
from Java code.
- Automatic generation of WADL descriptors from REST WebServices Java code
UML-like class diagram with navigation to the source code and refactorings
- Visual code autoring: create classes, fields, methods, etc.
- Supporting Drag'n'Drop to:
- Create relationships between classes (extend classes, implement interfaces)
- Add new elements by dragging them from Project View
- Code analysis and refactorings applicable from the diagram view
- Visual dependencies representation, with fully customizable view, both on the class level
and the package level
Core Java Development
- The new code coverage engine lets you track specific tests covering each line of the code. Per-branch coverage information is collected and analyzed, letting you see how many times each condition branch was executed.
- Per-file encoding support
Configure file encoding individually for a file, set of files, or an entire project. - Unwrap/Remove action
Quickly extract or remove statements from for, foreach, if..elseif...else, try...catch...finally, while...do, do...while, and lone braces. - Revert Committed Changes action
Revert any arbitrary code change, commited by you or your colleagues, by applying a reverse patch to the current source code
- Use existing implementation quick-fix
Invoke it on an abstract method to copy an existing implementation to places where implementation is missing. - The grouping by usage type in the Find Usages toolwindow has been improved and now detects recursive and delegating method calls, allowing you to quicker find the usages you are looking for.
- Google Guice dependency injection framework is now supported, with a number of specific inspections and code generation actions.
- Unit testing support has been improved, with a new action for automatically creating tests for a class, and another action for navigating between a class and its tests.
- The project configuration now allows you to view all facets of your multi-module project in a single
convenient view. You can also turn off facet autodetection for specific modules or facet types.
- Thread dump analyzer
Analyze largest thread dumps in a very convenient way.
- Extract Method Object refactoring, a more powerful alternative to Extract Method, can be used when you have, multiple return values in an extracted method, or too many parameters passed to it.
- Type Migration refactoring allows you to automatically propagate changes across your codebase when you want to change a filed type from one to another (e.g. from integer to string). It also lets automatically convert variable or method return type between arrays and collections.
- Extract Class refactoring enables extracting some of the fields and methods of a class into a separate, newly created class. This refactoring is useful, when a class has grown too large, too incoherent, or does too many things.
- Inline Superclass refactoring places superclass' methods into the class where they are used, and removing the superclass.
- Introduce Parameter Object refactoring selects a set of parameters to a method, and either create a wrapper class for those parameters, or use an existing compatible wrapper class.
- The Remove Middleman refactoring allows you to replace all calls to delegating methods in a class with the equivalent calls directly to the field delegated to. Additionally, you can automatically remove the classes delegating methods, which will now be unused.
- Wrap Return Value refactoring allows you to select a method, and either create a wrapper class for its return values, or use an existing, compatible wrapper class.
- Introduce constant refactoring improved: now it can replace all occurrences of an expression with the constant.
Before:
After:
- The smart code completion becomes even smarter. Pressing Ctrl-Shift-Space twice allows you to find values of
the expected types which are "two steps away" (can be retrieved through a chained method call). It can also
automatically insert conversions from collections to arrays and back.
- Maven: create new module from archetype, Repository Browser, pom.xml validation and editing assistance
- Server-based, remotely loadable personal settings
- Dataflow to this command - see the where an arbitrary parameter comes from
Groovy and Grails
Groovy
- Advanced coding assistanceeditor features
- Extended code completion wit Smart Enter
- Move class/statement action
- Intention actions for generating equals/hashcode methods and constructors
- Multiple Groovy/Grails SDK configuration support
- MissingReturn inspection
- Go to symbol action for Groovy files
- Support for domain classes in packages
- Groovy-aware refactorings
- Convert method parameter to map-parameter entry
- Dynamize invalid interface instantiation
- Support for static dynamic methods
- Gant build tool support
- Auto-generation of run configuration for Groovy Script with Ctrl-Shift-F10
Grails
- Grails-specific coding assistance
- Completion of attributes for default Grails tags, based on project Tag Library Descriptor
- Completion for Domain classes' dynamic methods and finders
- Completion of attributes for default Grails tags, based on project Tag Library Descriptor
- Quick invoke for Grails Scripts
- Convenient Grails plugins management
- Run configuration for Grails tests
Ruby and Rails
Ruby debugger, capable of debugging Ruby and Rails applications and Rake tasks
- Works with Matz Ruby and JRuby interpreters
- Supports breakpoints both in Ruby files and in view templates
- Call stack, local and global variables, watches and threads view
- Expression evaluation and smart display of arrays and hashes with highlighting of recently modified values
- GUI runner for Test::Unit and RSpec tests with support for Rake tasks.
Improved Ruby coding assistance
- Goto Super (Ctrl-U), Goto Type Declaration (Ctrl-Shift-B) navigation actions
- Supertypes hierarchy for Ruby classes (Ctrl-H)
- Previous/Next Method navigation (Alt-Up/Down)
- Correct filtering of static and instance members in autocompletion
Better Ruby code inspections
- Type inference for block variables within block calls
- Incomplete hashes detection (with value missing after =>)
- Spot unreachable code
Enhanced Rails coding assistance
- Rails-aware completion generally improved
- Completion for find_by_* methods is provided
- Completion and resolution of methods defined by named routes and resource routes
- Completion of parameters for special Rails calls, such as render_to, url_for, etc.
- Datasource table and column names completion
Improved Rails navigation
- Navigation between model, controller, helper, unit/functional/RSpec tests (Alt-Shift-N)
- Context toolbar for opening the corresponding page in a browser from Rails views
- View navigation actions suggest to create a view if none is found (Ctrl-Alt-W)
Extended RHTML coding assistance
- Improved support for embedded CSS in RHTML files
- Surround With (Ctrl-Alt-T) can enclose and RHTML fragment with an XML tag or with a Ruby control statement
- Smart Enter (Ctrl-Shift-Enter) can inserts the closing <% end %> tag for a control statement
Enhanced JRuby Support
- Auto-import of Java classes
- Inspection to check for correct top-level packages
HTML, XML, JSP, CSS
- Rename CSS color value (Shift+F6) refact
- Quick preview of colors defined in CSS styles on gutter
- Preview of HTML or JSP files in arbitrary browser via context popup
- Extended support for browser-specific CSS properties
- Redesigned Web preview for HTML, RHTML and JSP files
- Improved Show Applied Styles tool window
Displays all the styles that apply to an arbitrary tag in HTML/XHTML or JSP/JSPX. - Automatic namespace import for XML, JSP and JSPX
Type a tag with an unbound namespace prefix, and IntelliJ IDEA offers a set of namespace choices that you can import.
Improved JPA, Hibernate and EJB Visual ER Diagram
You now can merge inherited & embedded attributes with a single click
Before:
After: