25

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?

Vincent Robert
  • 35,564
  • 14
  • 82
  • 119

6 Answers6

70

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
  • 11,080
  • 1
  • 33
  • 32
  • 2
    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 Jun 26 '09 at 00:20
  • hi, I'm following this pattern (copying from java sysout template) in PHP in Eclipse PDT, but template keeps replacing selected word instead of wrapping it.. any ideas how to have it wrap what was selected? – Jakub P. Oct 18 '11 at 10:17
  • As an answer to @BillK, I just achieved that by editing the sysout template (to get to there, use as @sadhasivam pointed out SHIFT+ALT+Z -> Configure templates -> sysout -> Edit) to `System.out.println("${word_selection} " + ${word_selection}${});${cursor}` – Mariana May 23 '16 at 14:54
3

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

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

John Hartsock
  • 85,422
  • 23
  • 131
  • 146
  • Surround with does not offer the option to surround with System.out.println – Vincent Robert Jun 20 '09 at 00:29
  • 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 –  Jun 22 '09 at 13:45
0

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
  • 829
  • 4
  • 10
0

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
  • 38,619
  • 8
  • 86
  • 96
0

Preference>General>Keys. then search "content assist" or "content" in "type filter text". don't press Enter. choice "content assist". type Binding and set your own shortcuts. such as "control+space".

vino777
  • 1
  • 1
0

The main part is into:

Java->Editor->Templates

This can accessed by:

  • Preferences window: into Java->Editor->Templates.
  • Surrounding a text and press:

    Windows: SHIFT + ALT + Z (as sadhasivam said)
    Mac: CMD + OPT + Z 
    

    to display the Preferences Window