Class Document
- All Implemented Interfaces:
IDocument
,IDocumentExtension
,IDocumentExtension2
,IDocumentExtension3
,IDocumentExtension4
,IRepairableDocument
,IRepairableDocumentExtension
GapTextStore
wrapped
inside a CopyOnWriteTextStore
as text store.
The used line tracker considers the following strings as line delimiters: "\n", "\r", "\r\n". In
case of a text replacement across line delimiter boundaries and with different line delimiters,
the line tracker might have to be repaired. Use
isLineInformationRepairNeeded(int, int, String)
before doing the text replace if you
have the need to discover such a situation.
The document is ready to use. It has a default position category for which a default position updater is installed.
Performance: The implementation should perform reasonably well for typical
source code documents. It is not designed for very large documents of a size of several
megabytes. Space-saving implementations are initially used for both the text store and the line
tracker; the first modification after a set
incurs the cost to transform the
document structures to efficiently handle updates.
See GapTextStore
and TreeLineTracker
for algorithmic behavior of the used
document structures.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.jface.text.IDocumentExtension
IDocumentExtension.IReplace
-
Field Summary
Fields inherited from interface org.eclipse.jface.text.IDocument
DEFAULT_CATEGORY, DEFAULT_CONTENT_TYPE
Fields inherited from interface org.eclipse.jface.text.IDocumentExtension3
DEFAULT_PARTITIONING
Fields inherited from interface org.eclipse.jface.text.IDocumentExtension4
UNKNOWN_MODIFICATION_STAMP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
isLineInformationRepairNeeded
(int offset, int length, String text) Tells whether the line information of the document implementing this interface needs to be repaired after replacing the given text.Methods inherited from class org.eclipse.jface.text.AbstractDocument
acceptPostNotificationReplaces, addDocumentListener, addDocumentPartitioningListener, addDocumentRewriteSessionListener, addPosition, addPosition, addPositionCategory, addPositionUpdater, addPrenotifiedDocumentListener, checkStateOfPartitioner, completeInitialization, computeIndexInCategory, computeIndexInPositionList, computeIndexInPositionList, computeNumberOfLines, computePartitioning, computePartitioning, containsPosition, containsPositionCategory, doFireDocumentChanged, doFireDocumentChanged, doFireDocumentChanged2, fireDocumentAboutToBeChanged, fireDocumentChanged, fireDocumentPartitioningChanged, fireDocumentPartitioningChanged, fireDocumentPartitioningChanged, fireRewriteSessionChanged, get, get, getActiveRewriteSession, getChar, getContentType, getContentType, getDefaultLineDelimiter, getDocumentListeners, getDocumentManagedPositions, getDocumentPartitioner, getDocumentPartitioner, getDocumentPartitioningListeners, getLegalContentTypes, getLegalContentTypes, getLegalLineDelimiters, getLength, getLineDelimiter, getLineInformation, getLineInformationOfOffset, getLineLength, getLineOffset, getLineOfOffset, getModificationStamp, getNumberOfLines, getNumberOfLines, getPartition, getPartition, getPartitionings, getPositionCategories, getPositions, getPositions, getPositionUpdaters, getStore, getTracker, ignorePostNotificationReplaces, insertPositionUpdater, registerPostNotificationReplace, removeDocumentListener, removeDocumentPartitioningListener, removeDocumentRewriteSessionListener, removePosition, removePosition, removePositionCategory, removePositionUpdater, removePrenotifiedDocumentListener, repairLineInformation, replace, replace, resumeListenerNotification, resumePostNotificationProcessing, search, set, set, setDocumentPartitioner, setDocumentPartitioner, setInitialLineDelimiter, setLineTracker, setTextStore, startRewriteSession, startRewriteSessionOnPartitioners, startSequentialRewrite, stopListenerNotification, stopPostNotificationProcessing, stopRewriteSession, stopRewriteSessionOnPartitioners, stopSequentialRewrite, updateDocumentStructures, updatePositions
-
Constructor Details
-
Document
public Document()Creates a new empty document. -
Document
Creates a new document with the given initial content.- Parameters:
initialContent
- the document's initial content
-
-
Method Details
-
isLineInformationRepairNeeded
public boolean isLineInformationRepairNeeded(int offset, int length, String text) throws BadLocationException Description copied from class:AbstractDocument
Tells whether the line information of the document implementing this interface needs to be repaired after replacing the given text.- Specified by:
isLineInformationRepairNeeded
in interfaceIRepairableDocumentExtension
- Overrides:
isLineInformationRepairNeeded
in classAbstractDocument
- Parameters:
offset
- the document offsetlength
- the length of the specified rangetext
- the substitution text to check- Returns:
true
if the line information must be repaired after replacing- Throws:
BadLocationException
- if the offset is invalid in this document- See Also:
-