1 / 26

IDE Bake Off IntelliJ IDEA 3.0

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 …

louise
Download Presentation

IDE Bake Off IntelliJ IDEA 3.0

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IDE Bake OffIntelliJ IDEA 3.0 Austin Java Users Group Razvan Surdulescu March 25, 2003

  2. 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.

  3. 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

  4. 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

  5. 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.

  6. 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 …

  7. 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

  8. 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.)

  9. 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

  10. 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

  11. 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

  12. 3. Refactoring cont’d • Once I started refactoring in IDEA, I could never go back to another IDE!

  13. 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

  14. 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.)

  15. 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

  16. 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.

  17. 5. Time Savers cont’d • XML support • Text format • Auto-complete • DTD, XML Schema validation • Validation of XML references/external resources

  18. 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)

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

  20. 7. Build a GUI • No built-in features

  21. 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

  22. 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)

  23. 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

  24. 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

  25. 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

  26. 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>

More Related