Editing
- Syntax highlighting
- Error highlighting
- Unresolved classes marked as errors
- Unresolved unqualified properties marked as warnings
- Incompatible types assignments marked as warnings
- Inapplicable method calls marked as warnings
- Code folding
- Code formatter
- Comments and "To Do" view support
- "add missing import" intention
- Intellectual errors and warning highlighting (types incompatibility, methods defining twice etc)
Execution, Debugging & Compilation
- Debugging support (setting breakpoints, view stack)
- GDK configuration
- Grails configuration
- Run configuration for Groovy scripts
- Make or rebuild java+groovy project entire (Compilation .groovy files to java bytecode)
Code Completion
- context sensitive keyword completion
- Completion of methods, fields, classes
- Completion makes use of type inference
- Default methods completed
- Swing builder methods are completed, swing properties are completed in method argument list
- Resolve
- Resolve groovy to groovy classes, methods, fields
- Resolve groovy to java classes, methods, fields
- Resolve java to groovy classes, methods, fields
Surround with (Alt+Ctrl+T)
- (...)
- !(...)
- ((Type) ...)
- with (...)
- if() { } / else {} while ... }
- if() { ... } / else
- try / catch
- try / finally
- closure {}
- (Type) expr
...
- try / catch / finally
- while () { ... }
- { -> ... }.call()
Introduce
- Introduce variable (Alt+Ctrl+V)
- Introduce variable
- Offer the default type and variable name
- Introduce parameter (Alt+Ctrl+P)
- from expression
- from variable
- updates references in Groovy and Java
- Introduce closure parameter (Alt+Ctrl+P)
- from expression
- from several statements
- Introduce field
- Introduce constant
Extract method (Alt+Ctrl+M)
- from expression
- from several statements
Change signature (Ctrl+Shift+F6)
- updates all references (in Groovy and Java)
Inline (Alt+Ctrl+N)
- Inline variable and all occurrences
- Inline method
Rename (Shift+F6)
Renames
- packages
- classes
- local variables
- methods
- declaration case
- call case
Convert to Java
- converts Groovy code to equivalent Java
Structure view
Shows
...
- classes,
- methods,
- fields
founded in groovy file
File structure (Ctrl+F12)
- The popup window contains classes, methods, fields.
Find usage (Alt+F7)
- Implements groovy classes search
Parameter Info (Ctrl+F12)
- The usual ctrl-P shortcut shows signatures of candidate methods at method call site
Class search (Ctrl+N)
- Searches class by prefix of class groovy name
Imports Optimization (Alt+Ctrl+O)
- Delete unused imports
Builders support
- Convinient work with builder because of intellectual properties completion
Creation groovy classes and scripts
- Create groovy class or script action easy of access from every project file context menu
Notable intentions
- Grab annotation
- Declare explicit type
- String intentions
- Convert Groovy native map to class instance
- Style conversions
- Convert Java-style array creation to Groovy style
- Chage Java-style accessor invocation to Groovy-style property reference
- Convert method to property of closure type
- Convert property to method
- Add return type to method declaration
- Convert method or closure parameters to map entries
Grails
- Grails SDK configuration
- Grails controller, view, domain class, job, script, service, taglib creation
- Grails generators are built in; output to console
Coming soon
- Find Usages for methods and fields
...
Supported AST transformations
- AutoClone
- AutoExternalize
- Tupleconstructor
- Immutable
- Canonical
- Delegate
- InheritConstructor
- Log
- Commons
- Log4j
- Slf4j
- IndexedProperty
- Newify
- Singleton
- Vetoable
Other supported annotations
- Mixin
- Bindable
- Category
Resolve features
- automatic inference of types of closure parameters used in DefaultGroovyMethods methods
- mixins into metaclasses: MyClass.mixin(MyOtherClass)
- DefaultGroovyMethods.with, use