Coffee-Bytes Platform Support
Welcome to the Coffee-Bytes Platform Support. Platform support is intended to be a suite of tools to aid in Eclipse Java development, although currently it is just a feature-rich (and somewhat buggy) code-folding enhancement.
Note: The latest available release is 1.0.6 and it provides Eclipse 3.2 compatibility.
Installation
For those interested in getting the latest/greatest of the Eclipse Platform Support code it is recommended to use the update site:
The Coffee-Bytes Eclipse Platform Support Update Site. Instructions for using the update site:
- Help > Software Updates > Find and Install…
- New Remote Site…
- Name: Coffee-Bytes Platform Support
Url: http://eclipse.realjenius.com/update-site - Press OK and follow prompts.
For news, bugs, and requests for enhancements, as well as ‘conventional’ un-zip style plug-in bundles for Eclipse, please visit The Coffee-Bytes Platform Support Google Project Page.
Release Notes
1.0.6
Release 1.0.6 is a re-release of 1.0.5 features with work done to make it compatible with Eclipse 3.2.
1.0.5
Release 1.0.5 has three main additions:
- Introduce custom icons - One of the complaints of the default Eclipse implementation of code folding is the use of the ‘arrow’ icons to represent the folds. Many users think it is confusing when intermingled in the editor with other icons, and that a [+]/[-] would be more appropriate (ala Netbeans/Intellij). 1.0.5 brings with it a first pass at introducing better icons in the editor.
![[Code Folding] 1.0.5 Icons](http://www.coffee-bytes.com/files/images/icons.thumbnail.gif)
- Allow user control of ‘last line filtering’ - Due to limitations in the current Eclipse API for code folding, lines that are shared by more than one fold cannot be split down the middle (in other words, folds are line-by-line, not character-by-character). Because of that, this would occur in the default implementation (before/after where after the user has folded aMethod):
![[Code Folding] Filtering Bug](http://www.coffee-bytes.com/files/images/filteringBug.thumbnail.gif)
… which is confusing and broken. The Coffee-Bytes Code Folding plug-in has always filtered the ‘last line’ to ensure this was not a bug, primarily because the sub-structures under a method (if/else/while/for) were ALSO plagued with this problem, and they are much more commonly overlapped. Just the same, many users never run into this problem because of the way they format their source. 1.0.5 introduces prefrences to turn off this bug-fix if your source code doesn’t need it. - Polish and bug-fix user-defined folding regions - The 1.0.4 release was primarily experimental in nature and as such had some bugs. Many of them are fixed in this release of the plug-in.
Along with the new features, Release 1.0.5 introduces new preference pages:
Screenshots
The first step to installing the Coffee-Bytes folding plug-in is to connect to the update site. Here is a screenshot of the Eclipse configuration page filled out:
(Image Missing)
Once installed, users should take a visit to the folding preferences page. This page can be found here:
- Window > Preferences
- Java[+] > Editor
- Folding Tab
- Select Folding To Use: Coffee-Bytes Java Folding
Here are some screenshots of the configuration pages:
Take note at how many options are available not visible in the default Eclipse folding format. Here is a short list:
- Disable folding types (strangely this isn’t available in the default installation)
- Control folds of Getters/Setters, Main Methods, Constructors, and other methods seperately
- Collapse Javadocs, Block Comments, and even contiguous line comment blocks seperately
- TRUE support for source headers (unlike the broken implementation in Eclipse today)
- Filter foldable regions based on a minimum number of lines
- Define your own folded/foldable regions based on specially defined comments
- (New!) Manually control whether the last line of a ‘fold’ for certain types is included in the fold or is omitted (fixes a bug in default Eclipse implementation)
- (New!) Select the modern icon set
In addition to the controllable features above, one additional benefit of this plug-in (and it’s original purpose) is its ability to fold other structure types (if, while, do, try, catch, switch, case, static, synchronized, etc). Here is a screenshot that captures that idea in addition to the source header functionality working in full force.
Here is a screenshot of user defined folding regions:
