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 :)
精彩评论