diff options
30 files changed, 57 insertions, 30 deletions
diff --git a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ChildDocument.java b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ChildDocument.java index 84581bb834f..babcae3e8c9 100644 --- a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ChildDocument.java +++ b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ChildDocument.java @@ -20,7 +20,7 @@ import org.eclipse.jface.text.Position; * {@link org.eclipse.jface.text.projection.ProjectionDocument}. This class * exists for compatibility reasons. * <p> - * Internal class. This class is not intended to be used by clients. + * Internal class. This class is not intended to be used by clients.</p> * * @since 3.0 */ diff --git a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ChildDocumentManager.java b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ChildDocumentManager.java index f42cfbd3d6f..14463469189 100644 --- a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ChildDocumentManager.java +++ b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ChildDocumentManager.java @@ -19,7 +19,7 @@ import org.eclipse.jface.text.IDocument; * {@link org.eclipse.jface.text.projection.ProjectionDocumentManager}. This * class exists for compatibility reasons. * <p> - * Internal class. This class is not intended to be used by clients. + * Internal class. This class is not intended to be used by clients.</p> * * @since 3.0 */ diff --git a/org.eclipse.text/projection/org/eclipse/jface/text/projection/Fragment.java b/org.eclipse.text/projection/org/eclipse/jface/text/projection/Fragment.java index 085bbb7b293..5ee21c9a3b5 100644 --- a/org.eclipse.text/projection/org/eclipse/jface/text/projection/Fragment.java +++ b/org.eclipse.text/projection/org/eclipse/jface/text/projection/Fragment.java @@ -18,7 +18,7 @@ import org.eclipse.jface.text.Position; * Internal class. Do not use. Only public for testing purposes. * <p> * A fragment is a range of the master document that has an image, the so called - * segment, in a projection document. + * segment, in a projection document.</p> * * @since 3.0 */ diff --git a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocument.java b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocument.java index f5d771359b9..63b598e385a 100644 --- a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocument.java +++ b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocument.java @@ -54,7 +54,7 @@ import org.eclipse.jface.text.TextUtilities; * obtain a projection document, a * {@link org.eclipse.jface.text.projection.ProjectionDocumentManager}should be * used. This class is not intended to be subclassed outside of its origin - * package. + * package.</p> * * @since 3.0 */ @@ -485,6 +485,7 @@ public class ProjectionDocument extends AbstractDocument { * @return the first region that is not yet part of the projection document * @throws BadLocationException in case the given range is invalid in the * master document + * @since 3.1 */ private IRegion computeFirstUnprojectedMasterRegion(int offsetInMaster, int lengthInMaster) throws BadLocationException { diff --git a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocumentEvent.java b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocumentEvent.java index 19160d9c62f..f3b2cf9ee14 100644 --- a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocumentEvent.java +++ b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocumentEvent.java @@ -27,7 +27,7 @@ import org.eclipse.jface.text.SlaveDocumentEvent; * <p> * Clients are not supposed to create instances of this class. Instances are * created by {@link org.eclipse.jface.text.projection.ProjectionDocument} - * instances. This class is not intended to be subclassed. + * instances. This class is not intended to be subclassed.</p> * * @since 3.0 */ diff --git a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocumentManager.java b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocumentManager.java index 17b283f115f..f940c986b4a 100644 --- a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocumentManager.java +++ b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionDocumentManager.java @@ -40,7 +40,7 @@ import org.eclipse.jface.text.ISlaveDocumentManagerExtension; * such as position categories and position updaters. * <p> * Clients can instantiate this class. This class is not intended to be - * subclassed. + * subclassed.</p> * * @since 3.0 */ diff --git a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionMapping.java b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionMapping.java index 0cecd850c4f..370405100c2 100644 --- a/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionMapping.java +++ b/org.eclipse.text/projection/org/eclipse/jface/text/projection/ProjectionMapping.java @@ -449,6 +449,7 @@ public class ProjectionMapping implements IDocumentInformationMapping , IDocumen /* * @see org.eclipse.jface.text.IDocumentInformationMappingExtension2#toClosestImageRegion(org.eclipse.jface.text.IRegion) + * @since 3.1 */ public IRegion toClosestImageRegion(IRegion originRegion) throws BadLocationException { return toImageRegion(originRegion, false, true); diff --git a/org.eclipse.text/src/org/eclipse/jface/text/ConfigurableLineTracker.java b/org.eclipse.text/src/org/eclipse/jface/text/ConfigurableLineTracker.java index 6ecf19aee6b..e2c1c84e10f 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/ConfigurableLineTracker.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/ConfigurableLineTracker.java @@ -21,6 +21,7 @@ package org.eclipse.jface.text; * longest line delimiter is given precedence of the shorter ones. * <p> * This class is not intended to be subclassed. + * </p> */ public class ConfigurableLineTracker extends AbstractLineTracker { diff --git a/org.eclipse.text/src/org/eclipse/jface/text/DefaultLineTracker.java b/org.eclipse.text/src/org/eclipse/jface/text/DefaultLineTracker.java index 5727ffd9e6b..0d7146bf985 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/DefaultLineTracker.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/DefaultLineTracker.java @@ -18,6 +18,7 @@ package org.eclipse.jface.text; * '\r', '\r\n'. * <p> * This class is not intended to be subclassed. + * </p> */ public class DefaultLineTracker extends AbstractLineTracker { diff --git a/org.eclipse.text/src/org/eclipse/jface/text/GapTextStore.java b/org.eclipse.text/src/org/eclipse/jface/text/GapTextStore.java index c36121dea52..f5a798c5a6b 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/GapTextStore.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/GapTextStore.java @@ -16,8 +16,10 @@ package org.eclipse.jface.text; * Implements a gap managing text store. The gap text store * relies on the assumption that subsequent changes of a document are co-located. * The start of the gap is always moved to the location of the last change. The - * size of the gap varies between the low water mark and the high water mark. <p> + * size of the gap varies between the low water mark and the high water mark. + * <p> * This class is not intended to be subclassed. + * </p> */ public class GapTextStore implements ITextStore { diff --git a/org.eclipse.text/src/org/eclipse/jface/text/IDocumentListener.java b/org.eclipse.text/src/org/eclipse/jface/text/IDocumentListener.java index 7c9f38a15b7..6113babe44a 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/IDocumentListener.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/IDocumentListener.java @@ -18,7 +18,9 @@ package org.eclipse.jface.text; * they are applied and after they have been applied. It is ensured that * the document event passed into the listener is the same for the two * notifications, i.e. the two document events can be checked using object identity. + * <p> * Clients may implement this interface. + * </p> * * @see org.eclipse.jface.text.IDocument */ diff --git a/org.eclipse.text/src/org/eclipse/jface/text/IDocumentPartitioner.java b/org.eclipse.text/src/org/eclipse/jface/text/IDocumentPartitioner.java index 06b0210ee04..13e93dbcbd1 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/IDocumentPartitioner.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/IDocumentPartitioner.java @@ -35,9 +35,10 @@ package org.eclipse.jface.text; * rewrite session. It also replaces the existing {@link #connect(IDocument)} method with * a new one: {@link org.eclipse.jface.text.IDocumentPartitionerExtension3#connect(IDocument, boolean)}. * </ul> - * + * <p> * Clients may implement this interface and its extension interfaces or use the standard * implementation <code>DefaultPartitioner</code>. + * </p> * * @see org.eclipse.jface.text.IDocumentPartitionerExtension * @see org.eclipse.jface.text.IDocumentPartitionerExtension2 diff --git a/org.eclipse.text/src/org/eclipse/jface/text/IDocumentPartitioningListener.java b/org.eclipse.text/src/org/eclipse/jface/text/IDocumentPartitioningListener.java index f6c4d29873a..4cef324f71a 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/IDocumentPartitioningListener.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/IDocumentPartitioningListener.java @@ -14,9 +14,11 @@ package org.eclipse.jface.text; /** * Interface of objects which are interested in getting informed - * about changes of a document's partitioning. Clients may - * implement this interface.<p> - * + * about changes of a document's partitioning. + * <p> + * Clients may implement this interface. + * </p> + * <p> * In order to provided backward compatibility for clients of <code>IDocumentPartitioningListener</code>, extension * interfaces are used to provide a means of evolution. The following extension interfaces * exist: @@ -27,7 +29,7 @@ package org.eclipse.jface.text; * notification mechanisms. Thus, implementers up-to-date with version 3.0 do not have to implement * {@link org.eclipse.jface.text.IDocumentPartitioningListenerExtension}.</li> * </ul> - * + * </p> * @see org.eclipse.jface.text.IDocumentPartitioningListenerExtension * @see org.eclipse.jface.text.IDocumentPartitioningListenerExtension2 * @see org.eclipse.jface.text.IDocument diff --git a/org.eclipse.text/src/org/eclipse/jface/text/ILineTracker.java b/org.eclipse.text/src/org/eclipse/jface/text/ILineTracker.java index a70fb47cb16..d323386c113 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/ILineTracker.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/ILineTracker.java @@ -29,6 +29,7 @@ package org.eclipse.jface.text; * </ul> * <p> * Clients may implement this interface or use the standard implementation + * </p> * {@link org.eclipse.jface.text.DefaultLineTracker}or * {@link org.eclipse.jface.text.ConfigurableLineTracker}. */ diff --git a/org.eclipse.text/src/org/eclipse/jface/text/IPositionUpdater.java b/org.eclipse.text/src/org/eclipse/jface/text/IPositionUpdater.java index 3c6440d9140..b2e0904de8d 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/IPositionUpdater.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/IPositionUpdater.java @@ -22,6 +22,7 @@ package org.eclipse.jface.text; * <p> * Clients may implement this interface or use the standard implementation * {@link org.eclipse.jface.text.DefaultPositionUpdater}. + * </p> * * @see org.eclipse.jface.text.IDocument * @see org.eclipse.jface.text.Position diff --git a/org.eclipse.text/src/org/eclipse/jface/text/IRegion.java b/org.eclipse.text/src/org/eclipse/jface/text/IRegion.java index 95c288af69a..ed69c7dd32a 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/IRegion.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/IRegion.java @@ -21,6 +21,7 @@ package org.eclipse.jface.text; * <p> * Clients may implement this interface or use the standard implementation * {@link org.eclipse.jface.text.Region}. + * </p> */ public interface IRegion { diff --git a/org.eclipse.text/src/org/eclipse/jface/text/IRepairableDocument.java b/org.eclipse.text/src/org/eclipse/jface/text/IRepairableDocument.java index e965ae23600..add70d2c315 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/IRepairableDocument.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/IRepairableDocument.java @@ -12,7 +12,7 @@ package org.eclipse.jface.text; /** * Tagging interface to be implemented by - * {@link org.eclipse.jface.text.IDocument}implementers that offer a line + * {@link org.eclipse.jface.text.IDocument} implementers that offer a line * repair method on the documents. * * @see org.eclipse.jface.text.IDocument diff --git a/org.eclipse.text/src/org/eclipse/jface/text/ISlaveDocumentManager.java b/org.eclipse.text/src/org/eclipse/jface/text/ISlaveDocumentManager.java index fa39ceeb47b..d7f7c7e470d 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/ISlaveDocumentManager.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/ISlaveDocumentManager.java @@ -15,13 +15,13 @@ package org.eclipse.jface.text; * Slave documents are documents whose contents is defined in terms of a master * document. Thus, slave documents usually reflect a projection of the master document. * Slave documents are causally connected to the master document. This means, changes - * of the master document have immediate effect on the slave document and vice versa.<p> - * + * of the master document have immediate effect on the slave document and vice versa. + * <p> * A slave document manager creates slave documents for given master documents, manages the * life cycle of the slave documents, and keeps track of the information flow between * master and slave documents. The slave document manager defines the construction rules of the - * slave documents in terms of the master document.<p> - * + * slave documents in terms of the master document.</p> + * <p> * In order to provided backward compatibility for clients of <code>ISlaveDocumentManager</code>, extension * interfaces are used to provide a means of evolution. The following extension interfaces * exist: @@ -29,7 +29,7 @@ package org.eclipse.jface.text; * <li> {@link org.eclipse.jface.text.ISlaveDocumentManagerExtension} since version 3.0 extending the protocol * with an access to all managed slave document for a given master document. </li> * </ul> - * + * </p> * * @see org.eclipse.jface.text.IDocument * @since 2.1 diff --git a/org.eclipse.text/src/org/eclipse/jface/text/ISynchronizable.java b/org.eclipse.text/src/org/eclipse/jface/text/ISynchronizable.java index 8fb644a96d1..d5e7df01d8c 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/ISynchronizable.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/ISynchronizable.java @@ -17,10 +17,10 @@ package org.eclipse.jface.text; * <p> * In order to reduce the probability of dead locks clients should synchronize * their access to these objects by using the provided lock object rather than - * the object itself. + * the object itself.</p> * <p> * Managing objects can use the <code>setLockObject</code> method in order to - * synchronize whole sets of objects. + * synchronize whole sets of objects.</p> * * @since 3.0 */ diff --git a/org.eclipse.text/src/org/eclipse/jface/text/ITextStore.java b/org.eclipse.text/src/org/eclipse/jface/text/ITextStore.java index bd01aeba1c6..61d6356e9e5 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/ITextStore.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/ITextStore.java @@ -14,9 +14,11 @@ package org.eclipse.jface.text; /** * Interface for storing and managing text. * <p> - * Provides access to the stored text and allows to manipulate it. Clients may + * Provides access to the stored text and allows to manipulate it.</p> + * <p> + * Clients may * implement this interface or use {@link org.eclipse.jface.text.GapTextStore} and - * {@link org.eclipse.jface.text.SequentialRewriteTextStore}. + * {@link org.eclipse.jface.text.SequentialRewriteTextStore}.</p> */ public interface ITextStore { diff --git a/org.eclipse.text/src/org/eclipse/jface/text/ITypedRegion.java b/org.eclipse.text/src/org/eclipse/jface/text/ITypedRegion.java index 8edf583972d..fc8f9f14744 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/ITypedRegion.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/ITypedRegion.java @@ -17,9 +17,10 @@ package org.eclipse.jface.text; * The region consists of offset, length, and type. The region type is defined * as a string. * <p> - * A typed region can, e.g., be used to described document partitions. Clients - * may implement this interface or use the standard implementation - * {@link org.eclipse.jface.text.TypedRegion}. + * A typed region can, e.g., be used to described document partitions.</p> + * <p> + * Clients may implement this interface or use the standard implementation + * {@link org.eclipse.jface.text.TypedRegion}.</p> */ public interface ITypedRegion extends IRegion { diff --git a/org.eclipse.text/src/org/eclipse/jface/text/TextUtilities.java b/org.eclipse.text/src/org/eclipse/jface/text/TextUtilities.java index 88327f15df0..34b3fe99420 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/TextUtilities.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/TextUtilities.java @@ -22,6 +22,9 @@ import java.util.Set; /** * A collection of text functions. + * <p> + * This class is neither intended to be instantiated nor instantiated. + * </p> */ public class TextUtilities { diff --git a/org.eclipse.text/src/org/eclipse/jface/text/link/LinkedModeModel.java b/org.eclipse.text/src/org/eclipse/jface/text/link/LinkedModeModel.java index e2a38997eaa..fd0f37a20e1 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/link/LinkedModeModel.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/link/LinkedModeModel.java @@ -346,6 +346,7 @@ public class LinkedModeModel { * is called, or after the next document change. * * @param flags the exit flags as defined in {@link ILinkedModeListener} + * @since 3.1 */ public void stopForwarding(int flags) { fDocumentListener.fExit= true; @@ -415,6 +416,7 @@ public class LinkedModeModel { /** * Creates a new model. + * @since 3.1 */ public LinkedModeModel() { } diff --git a/org.eclipse.text/src/org/eclipse/jface/text/link/LinkedPositionGroup.java b/org.eclipse.text/src/org/eclipse/jface/text/link/LinkedPositionGroup.java index a09fe12c3a5..b91da025fe1 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/link/LinkedPositionGroup.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/link/LinkedPositionGroup.java @@ -195,6 +195,7 @@ public class LinkedPositionGroup { * @param event the event * @return <code>true</code> if <code>position</code> and * <code>event</code> are not absolutely disjoint + * @since 3.1 */ private boolean overlapsOrTouches(LinkedPosition position, DocumentEvent event) { return position.getDocument().equals(event.getDocument()) && position.getOffset() <= event.getOffset() + event.getLength() && position.getOffset() + position.getLength() >= event.getOffset(); diff --git a/org.eclipse.text/src/org/eclipse/jface/text/source/AnnotationModel.java b/org.eclipse.text/src/org/eclipse/jface/text/source/AnnotationModel.java index c3908cd25ae..72cbbba3847 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/source/AnnotationModel.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/source/AnnotationModel.java @@ -39,7 +39,7 @@ public class AnnotationModel implements IAnnotationModel, IAnnotationModelExtens /** * A single iterator builds its behavior based on a sequence of iterators. * - * @since 3.0 + * @since 3.1 */ private static class MetaIterator implements Iterator { diff --git a/org.eclipse.text/src/org/eclipse/jface/text/templates/DocumentTemplateContext.java b/org.eclipse.text/src/org/eclipse/jface/text/templates/DocumentTemplateContext.java index 76d31d1eac2..0a1ecac3fa1 100644 --- a/org.eclipse.text/src/org/eclipse/jface/text/templates/DocumentTemplateContext.java +++ b/org.eclipse.text/src/org/eclipse/jface/text/templates/DocumentTemplateContext.java @@ -69,6 +69,7 @@ public class DocumentTemplateContext extends TemplateContext { * @param document the document this context applies to * @param position the position describing the area of the document which * forms the template context + * @since 3.1 */ public DocumentTemplateContext(TemplateContextType type, IDocument document, Position position) { super(type); diff --git a/org.eclipse.text/src/org/eclipse/text/edits/CopySourceEdit.java b/org.eclipse.text/src/org/eclipse/text/edits/CopySourceEdit.java index f1382f2bdb8..05d8ce9a3a3 100644 --- a/org.eclipse.text/src/org/eclipse/text/edits/CopySourceEdit.java +++ b/org.eclipse.text/src/org/eclipse/text/edits/CopySourceEdit.java @@ -20,12 +20,12 @@ import org.eclipse.jface.text.IDocument; /** * A copy source edit denotes the source of a copy operation. Copy * source edits are only valid inside an edit tree if they have a - * corresponding traget edit. Furthermore the corresponding + * corresponding target edit. Furthermore the corresponding * target edit can't be a direct or indirect child of the source * edit. Violating one of two requirements will result in a <code> * MalformedTreeException</code> when executing the edit tree. * <p> - * A copy source edit can manange an optional source modifier. A + * A copy source edit can manage an optional source modifier. A * source modifier can provide a set of replace edits which will * to applied to the source before it gets inserted at the target * position. diff --git a/org.eclipse.text/src/org/eclipse/text/edits/TextEditProcessor.java b/org.eclipse.text/src/org/eclipse/text/edits/TextEditProcessor.java index b849fcfdec7..e9f485888e7 100644 --- a/org.eclipse.text/src/org/eclipse/text/edits/TextEditProcessor.java +++ b/org.eclipse.text/src/org/eclipse/text/edits/TextEditProcessor.java @@ -22,7 +22,7 @@ import org.eclipse.jface.text.IDocument; * A <code>TextEditProcessor</code> manages a set of edits and applies * them as a whole to an <code>IDocument</code>. * <p> - * This class isn't intended to be subclassed. + * This class isn't intended to be subclassed.</p> * * @see org.eclipse.text.edits.TextEdit#apply(IDocument) * diff --git a/org.eclipse.text/src/org/eclipse/text/edits/TextEditVisitor.java b/org.eclipse.text/src/org/eclipse/text/edits/TextEditVisitor.java index 0e4a44dccdb..7611b4e68e5 100644 --- a/org.eclipse.text/src/org/eclipse/text/edits/TextEditVisitor.java +++ b/org.eclipse.text/src/org/eclipse/text/edits/TextEditVisitor.java @@ -43,7 +43,7 @@ package org.eclipse.text.edits; * </ul> * </p> * <p> - * For edits with chldren, the child nodes are visited in increasing order. + * For edits with children, the child nodes are visited in increasing order. * </p> * * @see TextEdit#accept(TextEditVisitor) diff --git a/org.eclipse.text/src/org/eclipse/text/edits/UndoCollector.java b/org.eclipse.text/src/org/eclipse/text/edits/UndoCollector.java index 6df0ac8f402..0b49eba447d 100644 --- a/org.eclipse.text/src/org/eclipse/text/edits/UndoCollector.java +++ b/org.eclipse.text/src/org/eclipse/text/edits/UndoCollector.java @@ -23,6 +23,9 @@ import org.eclipse.jface.text.IDocumentListener; private int fOffset; private int fLength; + /** + * @since 3.1 + */ private String fLastCurrentText; public UndoCollector(TextEdit root) { |