Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Eclipse, how do I script the formatting of a code snippet for Stack Overflow?

The background: I'm a dyed-in-the-wool Emacs user who dabbles in a lot of languages. Recently a Famous Engineer upbraided me for continuing to use Emacs in this day and age, and I wish to put this Famous Engineer's chiding to the test. (This Famous Engineer happens to be partial to NetBeans, but we'll let that slide for the moment. ;-) ) So I'm getting myself acquainted with Eclipse, and I want to find out just how programmable it is.

How would you go about designing a command for Eclipse that does the following to a selection of code?

  • Extend the selection so that complete lines are selected
  • Untabify the code (replace tabs with 4 spaces)
  • Insert a 4-space block at the beginning of each selected line
  • Copy the result to the clipboard, so I can paste it into a Stack Overflow answer :-)

I'm not looking for code snippets per se, but pointers to what I should be doing. Do I need to write a full-out plugin for this? Should I be looking at macro facilities? What APIs will help me out, and where are they documented (if anywhere)? Are there any examples already out there of doing this kind of ad-hoc but programmatic text manipulation in Eclipse?

For this problem, I'm looking for a solution that's as lightweight (read: easy to hack up) as possible...

like image 672
Owen S. Avatar asked Nov 05 '22 11:11

Owen S.


1 Answers

Thinking about a vanilla Eclipse installation, I think the closest you could get would be creating a formatter template for SO. There may be 3rd party plugins which give a more advanced interface though.

As far as plug-ins go however, I think this one would be pretty simple. I'd guess you could look at how the line-comment (Ctrl-/) command works to see both how to create a command and how to "extend the selection so that complete lines are selected." I would imagine "untabifying" would be some very simple string manipulation, as would inserting a 4-space block. Finally, copying to the clipboard is a pretty common Java task (see this link, or look at Toolkit.getSystemClipboard(); ). As you might guess, the real work just comes in putting together the pieces.

like image 93
Mark Peters Avatar answered Nov 12 '22 20:11

Mark Peters