Class Document
- java.lang.Object
-
- org.eclipse.jface.text.AbstractDocument
-
- org.eclipse.jface.text.Document
-
- All Implemented Interfaces:
IDocument
,IDocumentExtension
,IDocumentExtension2
,IDocumentExtension3
,IDocumentExtension4
,IRepairableDocument
,IRepairableDocumentExtension
public class Document extends AbstractDocument
Default document implementation. Uses aGapTextStore
wrapped inside aCopyOnWriteTextStore
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
andTreeLineTracker
for algorithmic behavior of the used document structures.- See Also:
GapTextStore
,CopyOnWriteTextStore
-
-
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
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
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 Detail
-
Document
public Document()
Creates a new empty document.
-
Document
public Document(String initialContent)
Creates a new document with the given initial content.- Parameters:
initialContent
- the document's initial content
-
-
Method Detail
-
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:
IRepairableDocument.repairLineInformation()
-
-