ide bake off intellij idea 3.0

26
IDE Bake Off IntelliJ IDEA 3.0 Austin Java Users Group Razvan Surdulescu March 25, 2003

Upload: louise

Post on 11-Feb-2016

56 views

Category:

Documents


0 download

DESCRIPTION

IDE Bake Off IntelliJ IDEA 3.0. Austin Java Users Group Razvan Surdulescu March 25, 2003. IDEA Overview. IDEA is ~1.5 years old. Current version is 3.x. IDEA’s primary strength is refactoring : Rename/move/copy classes/methods/packages Extract field/method Many others … - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: IDE Bake Off IntelliJ IDEA 3.0

IDE Bake OffIntelliJ IDEA 3.0

Austin Java Users GroupRazvan Surdulescu

March 25, 2003

Page 2: IDE Bake Off IntelliJ IDEA 3.0

IDEA Overview IDEA is ~1.5 years old. Current version is

3.x. IDEA’s primary strength is refactoring:

Rename/move/copy classes/methods/packages Extract field/method Many others …

Excellent (and unobtrusive) “assistance”: parses the current source file provides hints, underlines errors, etc.

Page 3: IDE Bake Off IntelliJ IDEA 3.0

IDEA Overview cont’d Many useful plug-ins written by the

developer community Not free: $499 (.com), $99 (.edu) Swing application

Startup time: TogetherJ < IDEA < Eclipse Memory footprint: ~100MB when “warm” Processor: PIII equivalent or better

Page 4: IDE Bake Off IntelliJ IDEA 3.0

Bake Off Environment Windows 2000 SP3 Sun J2SE 1.3.1_06 IntelliJ IDEA 3.0.2 ANT 1.5.1 (built-in to IDEA) JUnit 3.8.1 (built-in to IDEA) CVS 1.11.2 Tomcat 4.0.6 Electric XML 6.0.3

Page 5: IDE Bake Off IntelliJ IDEA 3.0

1a. Projects Setup new project

You can change the “default project” properties

You can use an existing source tree or create a new one.

IDEA stores all project settings in a.IPR and .IWS file: very clean and unobtrusive.

Page 6: IDE Bake Off IntelliJ IDEA 3.0

1b. Projects Changing the default editor

Not possible, although you can obviously edit the source files outside IDEA

The editor is very powerful and configurable:

Auto-complete, auto-indent, auto-import Class templates, code templates Many others …

Page 7: IDE Bake Off IntelliJ IDEA 3.0

1c. Projects Configuring the class path

Add/remove JAR/ZIP/directories to the class path.

All class path “elements” become candidates for auto-complete, code navigation, etc.

You can setup “libraries”: Define associated classpath, JavaDoc, and source

directory Use the library for compilation, documentation or

source code navigation Share libraries across projects

Page 8: IDE Bake Off IntelliJ IDEA 3.0

2a. Integration ANT 1.5.1 comes packaged with IDEA

You can add an existing build.xml to your project

IDEA will allow you to execute, filter and log ANT targets through the GUI

In case of error, you can double click on the error line and go to the code that caused it

IDEA can validate the ANT build file (find mistakes, unreferenced variables, etc.)

Page 9: IDE Bake Off IntelliJ IDEA 3.0

2b. Integration JUnit 3.8.1 comes packaged with

IDEA You can setup JUnit test targets and

execute them In case of failure, you can double-click

on the error line and go to the assertion that failed

Page 10: IDE Bake Off IntelliJ IDEA 3.0

2c. Integration CVS

IDEA comes with support for CVS and Star Team

If your sources are imported into CVS, you can do all CVS operations directly from the GUI

If you rename or delete a source file, IDEA will prompt you to keep the CVS repository in sync

IDEA comes with a nice visual diff tool, but you can use an external diff tool as well

Page 11: IDE Bake Off IntelliJ IDEA 3.0

3. Refactoring IDEA’s refactoring is exceptional:

Rename/move package Rename/move/copy/delete class Rename/move/copy/delete method Rename/move/copy/delete field Extract method Change method signature Many others

Page 12: IDE Bake Off IntelliJ IDEA 3.0

3. Refactoring cont’d Once I started refactoring in IDEA, I

could never go back to another IDE!

Page 13: IDE Bake Off IntelliJ IDEA 3.0

4. Debugging Local

Full-featured debugger: Code breakpoints (normal, conditional, counted) Exception breakpoints Thread, field inspector, watches

Remote Connect to a remote JVM via JPDA Source path permits source breakpoints and

navigation while debugging

Page 14: IDE Bake Off IntelliJ IDEA 3.0

5. Time Savers Code navigation

Go to class/file (ctrl+(shift)+N) Go to type/variable declaration (ctrl+(shift)+B) Go to override Go to JavaDoc (ctrl+Q) Class structure (ctrl+H, ctrl+F12)

Code format, layout (optimize imports) Standardized formatting => easy diffs

Refactoring (rename, move, delete, etc.)

Page 15: IDE Bake Off IntelliJ IDEA 3.0

5. Time Savers cont’d Search (usages, text in file, text in path) Code generation

Live templates (“psf-TAB”, “soutv-TAB”) Implement methods (interface) Generate getX()/setX() accessors Generate equals()/hashCode() Surround with Smart complete

Page 16: IDE Bake Off IntelliJ IDEA 3.0

5. Time Savers cont’d Logical layout

Almost everything can be done without the mouse

Key combinations and menus are very logical Configurable key bindings (e.g. Emacs, Visual

J++, …) Able to save multiple code styles, and use

them per-project. Really useful if you have multiple teams with

different coding standards.

Page 17: IDE Bake Off IntelliJ IDEA 3.0

5. Time Savers cont’d XML support

Text format Auto-complete DTD, XML Schema validation Validation of XML references/external

resources

Page 18: IDE Bake Off IntelliJ IDEA 3.0

5. Time Savers cont’d CVS Integration (operations, parse output) JUnit, ANT integration (parse output) Easy debugging (break points, source

path) JAVAC launched in process (fast) Inspect code (critique) Many useful plug-ins written by the

community (Plug-in Manager)

Page 19: IDE Bake Off IntelliJ IDEA 3.0

6. Visual Modeling No built-in features SimpleUML plug-in covers the

basics

Page 20: IDE Bake Off IntelliJ IDEA 3.0

7. Build a GUI No built-in features

Page 21: IDE Bake Off IntelliJ IDEA 3.0

8. Build/deploy a JSP Strong JSP and Tomcat 4.x support

Java syntax checking, code completion, and refactoring in scriptlets

Integrated JSP and Servlet debugging Web application file management Pre-deployment JSP compilation checks JSP tag completion and syntax

checking, including custom tag libraries

Page 22: IDE Bake Off IntelliJ IDEA 3.0

8. Build/deploy a JSP cont’d No support for packaging WAR

IDEA expects un-expanded WAR-like directory structure

Easy to package this directory structure from ANT (using the <war …> task)

Page 23: IDE Bake Off IntelliJ IDEA 3.0

9. Deploy an EJB Nominal support for creating new EJBs

Automatic management of deployment descriptor

Easy to add/delete EJBs Easy to setup Entity CMP relationships Functionality is still somewhat buggy/hokey

No support for packaging/deploying EJBs This is always container specific anyway

Page 24: IDE Bake Off IntelliJ IDEA 3.0

10a. Customization/Extension Installing/using plug-ins

Copy the .JAR file to /{idea_home}/plugins

Start IDEA The plug-in “Plug-In Manager” allows

you to see what plug-ins exist, download and install them directly from the GUI

Page 25: IDE Bake Off IntelliJ IDEA 3.0

10b. Customization/Extension Writing a plug-in

IntelliJ Plug-in Documentation Plug-in FAQ Two kinds of plug-ins: application-level

(created and initialized at start-up) and project-level (created for every project)

The plug-in configuration is provided in {plug-in JAR}/META-INF/plugin.xml

Page 26: IDE Bake Off IntelliJ IDEA 3.0

10b. Customization/Extension cont’d<idea-plugin>    <name>VssIntegration</name>    <description>Vss integration plug-In</description>    <version>1.0</version>    <vendor>Foo Inc.</vendor>    <idea-version min=”3.0” max=”3.1”/>

    <application-components>        <component>            <interface-class>com.foo.Component1Interface</interface-class>            <implementation-class>com.foo.Component1Impl</implementation-class>        </component>    </application-components>

    <project-components>        <component>            <interface-class>com.foo.Component2</interface-class>        </component>    </project-components> </idea-plugin>