Package org.eclipse.jface.text
Interface IDocumentExtension
-
- All Known Implementing Classes:
AbstractDocument,ChildDocument,Document,ProjectionDocument
public interface IDocumentExtensionExtension interface forIDocument.It introduces the notion of sequentially rewriting a document. This is to tell a document that a sequence of non-overlapping replace operation is about to be performed. Implementers can use this knowledge for internal optimization.
Is also introduces the concept of post notification replaces. This is, a document listener who is informed about a document change can cause a derived document change. As the listener is not allowed to directly modify the document, it can register a replace operation that is performed directly after all document listeners have been notified.
- Since:
- 2.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceIDocumentExtension.IReplaceInterface for a post notification replace operation.
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description voidregisterPostNotificationReplace(IDocumentListener owner, IDocumentExtension.IReplace replace)Callback for document listeners to be used insidedocumentChangedto register a post notification replace operation on the document notifying them.voidresumePostNotificationProcessing()Resumes the processing of post notification replace operations.voidstartSequentialRewrite(boolean normalize)Deprecated.since 3.1.voidstopPostNotificationProcessing()Stops the processing of registered post notification replace operations untilresumePostNotificationProcessingis called.voidstopSequentialRewrite()Deprecated.since 3.1.
-
-
-
Method Detail
-
registerPostNotificationReplace
void registerPostNotificationReplace(IDocumentListener owner, IDocumentExtension.IReplace replace) throws UnsupportedOperationException
Callback for document listeners to be used insidedocumentChangedto register a post notification replace operation on the document notifying them.- Parameters:
owner- the owner of the replace operationreplace- the replace operation to be executed- Throws:
UnsupportedOperationException- ifregisterPostNotificationReplaceis not supported by this document
-
stopPostNotificationProcessing
void stopPostNotificationProcessing()
Stops the processing of registered post notification replace operations untilresumePostNotificationProcessingis called.
-
resumePostNotificationProcessing
void resumePostNotificationProcessing()
Resumes the processing of post notification replace operations. If the queue of registeredIDocumentExtension.IReplaceobjects is not empty, they are immediately processed if the document is not inside a replace operation. If the document is inside a replace operation, they are processed directly after the replace operation has finished.
-
startSequentialRewrite
@Deprecated void startSequentialRewrite(boolean normalize)
Deprecated.since 3.1. UseIDocumentExtension4.startRewriteSession(DocumentRewriteSessionType)instead.Tells the document that it is about to be sequentially rewritten. That is a sequence of non-overlapping replace operations will be performed on it. Thenormalizeflag indicates whether the rewrite is performed from the start of the document to its end or from an arbitrary start offset.The document is considered being in sequential rewrite mode as long as
stopSequentialRewritehas not been called.- Parameters:
normalize-trueif performed from the start to the end of the document
-
stopSequentialRewrite
@Deprecated void stopSequentialRewrite()
Deprecated.since 3.1. UseIDocumentExtension4.stopRewriteSession(DocumentRewriteSession)instead.Tells the document that the sequential rewrite has been finished. This method has only any effect ifstartSequentialRewritehas been called before.
-
-