The Holy Java

Building the right thing, building it right, fast

Eclipse

Eclipse notes and tricks.

Check also my blogs in the eclipse category.

My favorite Eclipse magic

(Shortcuts under Mac – under Linux they’re likely the same only having Ctrl instead of Command key icon)
(| indicates position of the cursor; Command key icon is Command, Shift icon is Shift, Option or Alt key icon is Alt, ^ is Control)

  • Open Type (Command key iconShift iconT) – quickly find any class on the classpath
  • Open Resource (Command key iconShift iconR) – quickly find any file in the project
  • Quick Outline (Command key iconO) – opens a pop-up similar to the Outline view but filterable with support for the * wildcard – useful for jumping quickly to a method/member (much better than search)
  • Smart Complete(^Space) – complete just about anything (variables, methods, types, …) including predefined Code Templates and more
    • Class-level completion (press ^Space anywhere outside of a method for all proposals or type first few letters of what you want first)
      • Override/implement method: start typing the name of the method, e.g. “toS” for toString() – or just press ^Space and select the proposition you want
      • Quick constructor creation:  if the class has no constructor, just press ^Space, it should come first
      • Quick setter/getter generation: as above
    • Create for/foreach loop to loop over Iterable/Collection/array – type “for” and ^Space
    • Surround with try-catch or another block statement (do/while/for loop, try-catch, synchronized, if, runnable) – select at least two lines and ^Space, go to the end of the proposition list (via up arrow in the list)
    • Print to sysout/syserr: select 1 line and ^Space, go to the last propositions
  • Quick Fix (Command key icon1) – proposes things you are likely to do; experiment with how the proposals differ based on where exactly your cursor is and what is or is not selected
    • Create new field initialized in a constructor: declare the constructor’s parameter (leaving cusrsor just behind the name), press Command key icon1 and select Assign parameter to new field.
    • Introduce local variable: select a statement and Command key icon1
    • Complete definition of a new local variable – type: type e.g. “a = new String();|” and Command key icon1, select “Create local variable ‘a’” (notice also the other options – field and parameter).
    • Convert local variable to field (cursor behind variable’s name), also Inline local variable
    • Many other – just experiment
  • Open Call Hierarchy – right-click, select it
  • Organize Imports (Command key iconShift iconO)
  • Minor
  • Completion – swtich between insert (default) and override – hold Ctrl (see Java – Editor – Content Assist – Insertion)

Other noteworthy things:

  • When you search for class name (Open Type, completions), Eclipse is clever enough to deal with abbreviated forms like IA, IAE, IllArgEx etc. when searching for IllegalArgumentException.
  • Quick Access (Command key icon3) – search in open windows, options, views, commands, …
  • Word completion (useful e.g. in JavaDoc): Alt+/  (this and previous tips are from K. D. Sherwood)
  • Copy/Move Line (Command key iconOption or Alt key iconShift icon/Option or Alt key iconShift icon or down)

Johannes Brodwall: Some eye-openers that people enjoy learning (copy/move line and other valuable things – check it out!).

Coding help

Various

Simple import of static methods

If you have some static methods that you use often – such as JUnit’s Asserts Mockito’s fluent API – you may enable Eclipse to add the necessary static imports by adding these types to your Favorite imports:

Java -> Editor -> Content Assist -> Favorites, click [New Type...] and select the class defining the static method.

Normally when you type the name of a static method defined in another class, Eclipse will complain about non-existing method and doesn’t offer you to create a static import for the method, unless it is among the favorite imports.

My favourites:

org.hamcrest.CoreMatchers.*;
org.hamcrest.Matchers.*;
org.junit.Assume.*;
org.junit.Assert.*;
org.mockito.Mockito.*;
org.mockito.Matchers.*;

Source: Piotr Jagielski’s blog Working With
Static Imports in Eclipse
.

Templates

Logging

From the article The Dark Art of Logging (2010).

Variant A: commons-logging

Window -> Preferences -> Java -> Editor ->Templates.

Log declaration (“logdef”):

${:import(org.apache.commons.logging.Log, org.apache.commons.logging.LogFactory)} private static final Log LOG = LogFactory.getLog(${enclosing_type}.class);

“debug”:

if (LOG.isDebugEnabled()) {
   LOG.debug("${enclosing_method}: ${msg}");
}

Variant B: Java logging

As above except the templates themselves.

logdef:

${:import(java.util.logging.Logger)} private static final Logger LOG = Logger.getLogger(${enclosing_type}.class.getName()) ;

Default action in a catch block

Change the action on exception in the template for try-catch blocks through Window -> Preferences -> Java -> Code Style -> Code Templates. Change the Code -> ‘Catch block body’ and  ‘Code in new catch blocks’  template to the following.

LOG.error("${msg}", ${exception_var});

(Default is exception.printStackTrace().)

Various

Test method

A slight modification of the default “Test” template:

@${testType:newType(org.junit.Before)}
public void setUp() throws Exception {
	//MockitoAnnotations.initMocks(this);
	${cursor}
}

Also setUp may be useful:

@${testType:newType(org.junit.Test)}
public void ${testname}() throws Exception {
	${staticImport:importStatic('org.junit.Assert.*')}fail("not yet implemented");${cursor}
}

Favorite Plugins

Experimenting with:

  • Crap4j
  • CodePro AnalytiX

Using Eclipse at Presentations

  • Increase font size
    • Text font: Ctrl+ and Ctrl- with Tarlog’s plugin or Preferences – General – Appearance – Colors and Fonts (or just search for Fonts) – select Basic – Text Font and edit it
    • Tab labels: View and Editor Folders – Part title font
    • Content of views (e.g. Package Explorer): this cannot be set from Eclipse, it’s taken over from the windowing system so you need to change the font size in your desktop environment (in GTK/..)
  • Hide clutter – the best way is to create a new Perspective for presentations without unnecessary toolbar and menu elements
    • Right-click the top toolbar and select Hide Toolbar (redisplay: menu Window – Show Toolbar)
  • Try one of the Fullscreen plugins for Eclipse, f.ex. U. Sangiorgi’s Eclipse-Fullscreen plugin (download into dropins/, 9/2011 in E3.6, Pref. – General – Full Screen – choose whether to hide menu and/or status bar, see Window – Full Screen and Alt+Ctrl+Z or Esc) or M. Scharf’s Eclipse Mode plugin (12/2009, tested in E3.6) – hides the title bar (but not the status bar)

Beware that the settings are valid for a workspace -> you may want to create a new one for the presentation.

You may also want to try the Eclipse Presentation Theme by Zoltán Ujhelyi to make switching to a bigger font size easier.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: