views:

1530

answers:

4

I am aware of the Eclipse snippet "sysout" which is neatly replaced with System.out.println(); when tab-completed.

This is very useful but sometimes, I need to wrap some existing code in a System.out.println();

In Eclipse internals, the template is defined as being able to wrap a "selected word". But how can I use the snippet with selected text since typing "sysout" obviously removes the selected text.

Any idea?

A: 

I don't think you can do it in one go, but what about cutting the selected text and then: tab+space, ctrl+v it's just one key combination more.

quosoo
+12  A: 

The sysout template acts upon entire Java statements.

  1. Highlight a statement in the editor.
  2. Hit CTRL-SPACE (or whatever you have set up for content assist.)
  3. Type sysout then hit enter. Note that when you're typing sysout it will temporarily overwrite your statement (but it will come back wrapped by System.out.println when you hit enter.)
jimr
+1 for a cool Eclipse trick I hadn't known about. Thanks!
Carl Manaster
Awesome trick, +1. Do you know if there is a way to modify the macro to have eclipse automatically enclose everything from the cursor to the EOL inside the quotes? I always seem to want that and instead eclipse does really nasty/seemingly random stuff with text after the insertion point.
Bill K
A: 

if you use content assist (ctrl-space on Windows), at the end of the list will be the sysout option. you might want to augment the template with quotes around the word selection so you dont need to type them in.

akf
A: 

Eclipse has "Surround Width" Option which can do this for you.

SHIT + ALT + Z should get you that to see how that templates meta-data layout.

Surround with does not offer the option to surround with System.out.println
Vincent Robert
Sysout has surround width feature and its combined with macro completion too. as jimr commented CTRL+SPACE includes but surrounds with and insta complete. if you want specific sysout completion then u can create another template say sy to do this.for our logger statements i used to have custom template like lod --> log.debug kind