开发者

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 a开发者_开发技巧t 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...


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.


First: Go to Window > Preferences > Java > Code Style > Formatter

And set my formatting style like so:

  • Tab Policy - Spaces Only
  • Tab Size - 4

Then:

  • Select code
  • Ctrl+Shift+F for fixing tabs
  • Tab for 4 additional spaces on each line
  • Ctrl+C to copy to clipboard

I am sure that, nonetheless, emacs has some M-x stackify command that ridicules all the commands above :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜