Platform Text 3.4 Plan

Platform Text 3.4 Plan

Last revised 11:18 CEST July 2, 2008

This plan is under continuous refinement. Please send comments about this plan to the developer mailing list.

Note: The JDT Text plan is now hosted on the Combined JDT Text and JDT UI Plan.

Overall Goals

This section lists the goals for Eclipse 3.4 for the Platform Text component as listed on the Eclipse Project 3.4 Plan.

[1] Performance. Reduce temporary memory used when typing and investigate faster ways to iterate over annotations. In addition overall performance and memory consumption will be monitored which includes the addition of new performance tests for new features.

[2] Reliability. Provide APIs for clients where needed, make various improvements to printing support, the vertical and overview rulers and fix outstanding issues with regex support.

[3] Keep Eclipse vibrant and attractive. Deliver new productivity features like rich hovers and SWT templates.

Work Items

This section lists the possible work items for Eclipse 3.4 for the Platform Text component with the [corresponding theme]. Some of those items have a higher priority than others.

  • Rich Hovers (experimental) (bug 200838) [3]

    • links support in hovers so that you can navigate to things from there
    • investigate better interaction for making hovers sticky (mouse path)
      if the hover is made sticky via mouse then it must disappear automatically if the mouse leaves the hover.
    • [>3.4] investigate to use hovers as affordance for context sensitive actions (quick assist/fix, surround with...)
    • allow seamless transition from hover > sticky hover > Javadoc view
  • Find/Replace [2]

    • find a solution to use line delimiters, tabs, etc. in regex replace (bug 80667)
    • allow regular expressions to match across lines (bug 44766)
    • handle dangerous regex replaces more gracefully (e.g. by restarting the line tracker) (bug 130843)
    • escape regex patterns in selection used as find string (bug 44422)
    • offer case preserving replace (bug 217060)
    • [>3.4 - waiting for contribution] improve Find/Replace dialog: merge into editor area, ... [mentor GSoC project]
  • Hyperlinking [3]

    • allow to present more than one hyperlink target for a given text range (bug 215473)
    • [>3.4] allow hyperlink to show a hover
  • Ruler improvements [2]

    • [>3.4] investigate improving the usability of icons in the vertical ruler [experimental]
      • fix most common layering problem (breakpoints) by changing their layer
      • alpha blending so that underlying icons can be seen
      • down-size images so that we can show 4 instead of one
      • allow to increase ruler width
      • allow users to configure the annotation presentation layer for each annotation
      • finish/cleanup the roll-over annotation work that was kicked off during 3.0
    • allow to configure annotations directly in the vertical and overview rulers
      → works now directly from overview ruler but can currently not be done directly from vertical annotaton ruler column as we do not know on which ruler column the context menu is opened (see bug 157638). This will only be fixed if we have time left at the end.
    • Go to line when clicking in overview ruler (bug 91722)
    • [>3.4] improve overview ruler arming and size of active area
    • fix washed out color problem of overview ruler (bug 69053)
  • Spell Checking [2]

    • fix the most severe bugs
    • [>3.4] allow to spell-check a set of resources (write your own builder?)
    • [>3.4] push down spelling engine from JDT to Platform
  • Printing [2]

    • print line numbers (bug 6877)
    • turn off line highlighting when printing (bug 14954)
  • Performance [1]

    • [>3.4] investigate to reduce garbage when typing
    • provide API to retrieve annotations in a certain range from an annotation model
      → with this, clients no longer need to iterate over all annotations
    • mprove performance when closing an editor (don't remove each annotation one by one)
    • [>3.4] revisit the text viewer's support for redraw, compound updates, and selection preservation
      • check all setRedraw(on/off) users whether they really need that expensive operation (e.g. undo)
    • constantly watch performance test results and act when red
    • continue to provide new tests
  • Miscellaneous

    • update web page regarding RCP text editor
    • review and commit new Templates view (bug 69581)
    • [>3.4] show context when dragging the vertical scroll bar (e.g. method name) [experimental]
    • [>3.4] quick diff usability improvements in hover (Next/Prev support etc.)
      depends on the Rich Hovers item above
    • [>3.4] change folding paradigm: no longer eat first key stroke [experimental] (bug 67500, bug 66264)
    • show more context about what's currently being edited (e.g. in a header):
      • bread crumb trail bar to show the context of the current selection:
        the idea is to have a bar inside the editor area at the top that shows me the path to the current selection: project > src folder > package > class > inner class > method
      • each of the segments of the bread crumb trail would be clickable and and navigate to the corresponding element. A drop down would show all available targets. 'Show in...' could be used for elements that are outside the editor [experimental]
    • [>3.4] provide LTK layer for text editing support (bug 125825, bug 149817, ...)
    • provide RegExContentProposalProvider as API (bug 149884)
    • enrich content assist's additional info and make it accessible (bug 38710 and bug 112921)
  • General Items [2]

    • 3.3.x maintenance work
    • look at bugs with patches and review those

Cross Team Issues

This section contains cross team issues that have to be clarified. The concrete outcome affects the plan items listed above.

  • Adopt SWT's New Text Styles
    • rework Platform Text's annotation painting so that the new text styles can be used
    • test the new text styles
    • replace drawing strategies with the new text styles
    • add support for the new UNDERLINE_ERROR style
      → we want that this can be chosen by the user and that out of the box this is only used for errors and warnings.
  • more TBD
Milestone Planning

Previous Milestones

Previous 3.4 milestones can be reviewed here.

See also the Combined JDT Text and JDT UI 3.4 Milestone Plans.

Bug Tracking
item is under development. item is under investigation.
item is finished. ( ) item is time permitted.
[xyz] item is deferred (>) from xyz or continues in xyz. new