1. My favorite Eclipse magic
  2. Coding help
    1. Various
      1. Simple import of static methods
    2. Templates
      1. Logging
        1. Variant A: commons-logging
        2. Variant B: Java logging
        3. Default action in a catch block
      2. Various
        1. Test method
  3. Favorite Plugins
  4. Using Eclipse at Presentations

Eclipse notes and tricks.

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.

imageimageimage


Copyright © 2019 Jakub Holý
Powered by Cryogen
Theme by KingMob