Inner classes can divert from those rules, but should never be exported to outside the containing compilation unit. Declare all inner classes as package-private, i.e. no visibility modifier. If declared private, Java needs to generate synthetic accessor methods.
To find out what's wrong with a text annotation (it's created, but nothing can be seen in the text viewer), set a break point on org.eclipse.jface.text.source.AnnotationPainter
, method getDecoration(Annotation annotation, Decoration decoration)
. It can be found around line 826 in 3.6.2.