<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
   <title>Platform Text Component</title>
</head>
<body text="#000000" bgcolor="#FFFFFF">
&nbsp;
<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
  <tr> 
    <td ALIGN=LEFT VALIGN=TOP COLSPAN="2" WIDTH="100%" BGCOLOR="#595791"><font face="Arial,Helvetica"><font color="#FFFFFF">3.0 
      Milestone Plans</font></font></td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h4> <a NAME="Milestone_Planning"></a>Milestone M1</h4>
      <ul>
        <li>focus on the implementation and exploration of new functions 
          <ul>
            <li>generalized hover concept</li>
            <li>smart typing</li>
            <li>change bar vertical ruler column</li>
          </ul>
        </li>
        <li>initial round of code consolidation</li>
      </ul>
    </td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h4>Milestone M2 </h4>
      <p>Milestone M2 is the first milestone whose plan items are annotated with 
        estimates of the time it needs to fulfill them. The estimates are average 
        times, i.e., they do not distinguish between experienced and less experienced 
        developers. Also, the times does not sum up to the total time available 
        for this milestone. The developers do not exclusively work for this component.</p>
      <h2></h2>
      <ul>
        <li> change bar vertical ruler (started in M1, 6 days)</li>
        <li>smart delete (revers of Auto Indentation/ Auto Edit strategies) (3 
          days)</li>
        <li>introduce info squiggles (0.5 days)</li>
        <li>gesture reduction using content assist (2 days) 
          <ul>
            <li>autoactivation of content assist after completion insertion</li>
            <li>identify and investigate bad scenarios for content assist</li>
          </ul>
        </li>
        <li>investigate and design reconciling pipeline including nontrivial proof 
          of concept implementation (15+ days)</li>
        <li>code consolidation (10+ days) 
          <ul>
            <li>org.eclipse.text</li>
            <li>org.eclipse.jface.text (at least partially)</li>
          </ul>
        </li>
        <li>working copy plug-in (2 days)</li>
        <li>PR pass (6 days)</li>
        <li>bug fixing (9 days)</li>
        <li>testing (3 day</li>
      </ul>
    </td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h4>Milestone M3</h4>
      <ul>
        <li>functional and structural improvements to Quick Diff (2 days) 
          <ul>
            <li>move extension point to workbench text editor plug-in</li>
            <li>rework preferences</li>
            <li>additional visual indication of changed and added lines</li>
          </ul>
        </li>
        <li>improve preference handling in editors by moving it into a common 
          super class for editors (2 days) 
          <ul>
            <li>move configuration including preference keys to common super class</li>
          </ul>
        </li>
        <li>introduce reconciling pipeline based on the experience gathered in 
          the example implementation (4 days)</li>
        <li>generalize annotations (4 days) 
          <ul>
            <li>introduce the concept of temporary annotations</li>
            <li>improve navigation to and between annotations</li>
          </ul>
        </li>
        <li>introduce file buffers and adapt document providers and potentially 
          document (5 days)</li>
        <li> implement changes as outlined in the RCP proposal to enable RCP (cross 
          component dependency to Platform UI) (5 days)</li>
      </ul>
      <h4>&nbsp;</h4>
    </td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h4>Milestone M4</h4>
      <h5>Finished items</h5>
      <ul>
        <li>RCP implementation of text components (5 days)</li>
        <li>allow quick diff annotations in overview ruler (3 days)</li>
        <li>regex in Find/Replace (2 days)</li>
        <li> add annotation management for file buffers (5 days)</li>
        <li>investigate SWT Browser widget for feedback (3 days)</li>
        <li>identify and investigate concurrency issues in text infrastructure 
          (4 days)</li>
      </ul>
      <h5>Added items</h5>
      <ul>
        <li>content assist for regular expressions in Find/Replace dialog </li>
        <li>generalization of content assist to become independent from ITextViewer</li>
        <li>redesign and reimplementation of linked text positions</li>
      </ul>
      <h5>Post-poned items</h5>
      <ul>
        <li>editor splitting (7 days)</li>
        <li>background highlight painter (3 days)</li>
        <li>investigate improved support for annotation hovering and interaction 
          (4 days, to be finished in M5)</li>
        <li>investigate action hovers (5 days, to be finished in M5)</li>
      </ul>
      <h3>&nbsp;</h3>
    </td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h3>Milestone M5</h3>
      <h5>Original plan</h5>
      <ul>
        <li>provide new default implementation for content formatter supporting 
          master/slave model for formatting strategies</li>
        <li>investigate improved support for annotation hovering and interaction, 
          see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45082">45082</a>, 
          (10 days)</li>
        <li> reimplementation of text linking, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45085">45085</a> 
          (10 days)</li>
        <li>move incremental search status information into separate status line 
          item, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45124">45124</a> 
          (2 days)</li>
        <li>background highlight painter, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45089">45089</a> 
          (10 days)</li>
        <li>publish the new generalized content assist, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45096">45096</a> 
          (3 days) </li>
        <li>finish annotation handling improvements, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40784">40784</a> 
          (2 days) </li>
        <li>merge RCP version of text plug-ins into HEAD enabling RCP, see PR 
          <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45101">45101</a> 
          (3 days, cross team dependency)</li>
        <li> headless annotation model implementation see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a> 
          (5 days) 
          <ul>
            <li>submit annotation and annotation model API change request</li>
          </ul>
        </li>
      </ul>
      <h5>Finished items</h5>
      <ul>
        <li> provide new default implementation for content formatter supporting 
          master/slave model for formatting strategies</li>
        <li>move incremental search status information into separate status line 
          item, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45124">45124</a> 
          (2 days)</li>
        <li>background highlight painter, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45089">45089</a> 
          (10 days)</li>
        <li>merge RCP version of text plug-ins into HEAD enabling RCP, see PR 
          <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45101">45101</a> 
          (3 days, cross team dependency)</li>
      </ul>
      <h5>Added items</h5>
      <ul>
        <li> investigation of presentation and handling of roll-over hovers</li>
        <li>introduction of ITextPresentationListener and initial migration in 
          the course of PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45089">45089</a></li>
        <li>custom visibility of annotations in the vertical ruler</li>
        <li>responsive UI: migrate all workspace operations to minimal locking 
          scope </li>
      </ul>
      <h5>Items that continue into M6</h5>
      <ul>
        <li> investigate improved support for annotation hovering and interaction, 
          see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45082">45082</a>, 
          (10 days) </li>
        <li> reimplementation of text linking, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45085">45085</a> 
          (10 days)</li>
        <li> headless annotation model implementation see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a> 
          (5 days) </li>
      </ul>
      <h5>Post-poned items</h5>
      <ul>
        <li> publish the new generalized content assist, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45096">45096</a> 
          (3 days) </li>
        <li>finish annotation handling improvements, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40784">40784</a> 
          (2 days) </li>
      </ul>
      <ul>
      </ul>
    </td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h3>Milestone M6</h3>
      <h5>Original plan</h5>
      <ul>
        <li> reimplement text linking, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45085">45085</a></li>
        <li>prepare roll-over integration, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45635">45635</a></li>
        <li> implement headless annotation model support, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a> 
          <ul>
            <li>submit annotation and annotation model API change request</li>
          </ul>
        </li>
        <li>integrate spell checking into HEAD stream, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47333">47333</a></li>
        <li>collect and investigate solutions for language family editors</li>
        <li>memory, performance, and resource handle pass</li>
        <li>bug fixing</li>
      </ul>
      <h5>Finished items</h5>
      <ul>
        <li>reimplement text linking, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45085">45085</a></li>
        <li>prepare roll-over integration, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45635">45635</a></li>
        <li>memory, performance, and resource handle pass</li>
      </ul>
      <h5>Added items</h5>
      <ul>
        <li> incremental content assist</li>
      </ul>
      <h5>Items that continue into M7</h5>
      <ul>
        <li> implement headless annotation model support, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a> 
          for status</li>
        <li>collect and investigate solutions for language family editors </li>
      </ul>
      <h5>Post-poned items</h5>
      <ul>
        <li>integrate spell checking into HEAD stream, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47333">47333</a></li>
      </ul>
    </td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h3>Milestone M7</h3>
      <h5>Original plan</h5>
      <ul>
        <li> implement headless annotation model support, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a> 
        </li>
        <li>integrate spell checking into HEAD stream, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47333">47333</a></li>
        <li>collect and investigate solutions for language family editors</li>
        <li>typing and redraw performance 
          <ul>
            <li>optimize annotation painting</li>
            <li>reduce amount of temporary garbage</li>
            <li>adapt all annotation model implementations to send out detailed 
              annotation model change events</li>
          </ul>
        </li>
        <li>internal code cleanup</li>
        <li>bug fixing</li>
      </ul>
      <h5>Finished items</h5>
      <ul>
        <li> integrate spell checking into HEAD stream, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47333">47333</a></li>
        <li>typing and redraw performance 
          <ul>
            <li>optimize annotation painting</li>
            <li>reduce amount of temporary garbage</li>
            <li>adapt all annotation model implementations to send out detailed 
              annotation model change events</li>
          </ul>
        </li>
      </ul>
      <h5>Added items</h5>
      <ul>
        <li>overall performance 
          <ul>
            <li>improved plug-in dependency analysis used for text contributions</li>
          </ul>
        </li>
        <li>content assist affordance in Find/Replace dialog</li>
        <li>improve the generalized content assist infrastructure</li>
        <li>revisited and released roll-over hovers for vertical ruler</li>
        <li>improved annotation painting infrastructure to support custom paint 
          strategies, provided several predefined strategies</li>
      </ul>
      <h5>Items that continue into M8</h5>
      <h5></h5>
      <ul>
        <li> implement headless annotation model support, see PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a> 
          for status</li>
        <li>internal code cleanup, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48883">48883</a></li>
      </ul>
      <h5>Post-poned items</h5>
      <ul>
        <li>collect and investigate solutions for language family editors</li>
        <li>improve initial size and remembered size of the content assist popup</li>
      </ul>
    </td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h3>Milestone M8</h3>
      <h5>Original plan</h5>
      <ul>
        <li>introduce folding (to be continued in M9) (18 days) 
          <ul>
            <li>folding structure provider</li>
            <li>vertical ruler column as folding control</li>
          </ul>
        </li>
        <li>move templates to text infrastructure (3 days)</li>
        <li>move linked positions support to text infrastructure (3 days)</li>
        <li>use jobs for implementation of quick diff reference provider (1 days)</li>
        <li>provide standard way for manipulating documents in non-ui thread (1 
          day) </li>
        <li>implement headless annotation model support, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a> 
          (3 days)</li>
        <li>revisit SWT Browser widget for hovers (3 days)</li>
        <li>prepare concolidated user preferences for editors (3 days)</li>
        <li>improve initial size and remembered size of the content assist popup 
          (2 days)</li>
        <li>internal code cleanup, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48883">48883</a> 
          (1 day)</li>
        <li>bug fixing and testing (20 days)</li>
      </ul>
      <h5>Finished items</h5>
      <ul>
        <li> move templates to text infrastructure</li>
        <li>move linked positions support to text infrastructure</li>
        <li>use jobs for implementation of quick diff reference provider</li>
        <li>prepare concolidated user preferences for editors</li>
        <li>improve initial size and remembered size of the content assist popup</li>
        <li>internal code cleanup, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48883">48883</a></li>
        <li>bug fixing and testing</li>
      </ul>
      <h5>Added items</h5>
      <ul>
        <li> added support for unconfiguring SourceViewers</li>
        <li>TextEdit-based default implementation of IContentFormatter</li>
      </ul>
      <h5>Items that continue into M9</h5>
      <ul>
        <li> introduce folding</li>
        <li>provide standard way for manipulating documents in non-ui thread</li>
        <li>implement headless annotation model support, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a></li>
        <li>revisit SWT Browser widget for hovers</li>
      </ul>
      <h5>Post-poned items</h5>
      <ul>
        <li> investigate time stamped documents</li>
      </ul>
    </td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h3>Milestone M9</h3>
      <h5>Original plan</h5>
      <ul>
        <li>consolidate folding (15 days) 
          <ul>
            <li>rework annotation hovering for folding requirements</li>
            <li>adapt non-folding infrastructure to folding imposed changes</li>
            <li>introduce model-based undo managers</li>
          </ul>
        </li>
        <li>provide standard way for manipulating documents in non-ui thread (3 
          day) 
          <ul>
            <li>investigate widget issues</li>
          </ul>
        </li>
        <li>implement headless annotation model support, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a> 
          (3 days)</li>
        <li>revisit SWT Browser widget for hovers (3 days)</li>
        <li>provide adjustable text selection color in text editor framework (1 
          day) </li>
        <li>performance work to speed up TextPresentation handling (3 days)</li>
        <li>revisit typing mode changes and associated caret shapes (2 days)</li>
        <li>add proposal popup support for template completions (3 days)</li>
        <li>introduce zero-length partition support (4 days)</li>
        <li>integrate text test into build process (2 days)</li>
        <li>bug fixing and testing (12 days)</li>
      </ul>
      <h5>Finished items</h5>
      <ul>
        <li>consolidate folding 
          <ul>
            <li>rework annotation hovering for folding requirements</li>
            <li>adapt non-folding infrastructure to folding imposed changes</li>
            <li>introduce model-based undo managers (partially)</li>
          </ul>
        </li>
        <li>implement headless annotation model support, PR <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45123">45123</a></li>
        <li>revisit SWT Browser widget for hovers</li>
        <li>provide adjustable text selection color in text editor framework</li>
        <li>performance work to speed up TextPresentation handling</li>
        <li>revisit typing mode changes and associated caret shapes</li>
        <li>add proposal popup support for template completions</li>
        <li>introduce zero-length partition support</li>
        <li>integrate text test into build process</li>
        <li>bug fixing and testing</li>
      </ul>
      <h5>Post-poned items</h5>
      <ul>
        <li> provide standard way for manipulating documents in non-ui thread 
          (3 day) 
          <ul>
            <li>investigate widget issues</li>
          </ul>
        </li>
      </ul>
    </td>
  </tr>
  <tr> 
    <td></td>
  </tr>
</table>

<br>&nbsp;
</body>
</html>
