Package org.eclipse.jface.text
Class TextUtilities
java.lang.Object
org.eclipse.jface.text.TextUtilities
A collection of text functions.
This class is neither intended to be instantiated nor subclassed.
- Restriction:
- This class is not intended to be subclassed by clients.
- Restriction:
- This class is not intended to be instantiated by clients.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
addDocumentPartitioners
(IDocument document, Map<String, ? extends IDocumentPartitioner> partitioners) Connects the given document with all document partitioners stored in the given map under their partitioning name.static ITypedRegion[]
computePartitioning
(IDocument document, String partitioning, int offset, int length, boolean includeZeroLengthPartitions) Computes and returns the partitioning for the given region of the given document for the given partitioning name.static String[]
computePartitionManagingCategories
(IDocument document) Computes and returns the partition managing position categories for the given document ornull
if this was impossible.static int[]
copy
(int[] array) Returns a copy of the given integer array.static String[]
Returns a copy of the given string array.static String
determineLineDelimiter
(String text, String hint) Determines which one of default line delimiters appears first in the list.static int
Returns the index of the longest search string with which the given text ends or-1
if none matches.static int
Returns the index of the first compare string that equals the given text or-1
if none is equal.static String
getContentType
(IDocument document, String partitioning, int offset, boolean preferOpenPartitions) Returns the content type at the given offset of the given document.static String
getDefaultLineDelimiter
(IDocument document) Returns the default line delimiter for the given document.static ITypedRegion
getPartition
(IDocument document, String partitioning, int offset, boolean preferOpenPartitions) Returns the partition of the given offset of the given document.static int[]
Deprecated.static DocumentEvent
mergeProcessedDocumentEvents
(List<? extends DocumentEvent> documentEvents) Returns a document event which is an accumulation of a list of document events,null
if the list of document events is empty.static DocumentEvent
mergeUnprocessedDocumentEvents
(IDocument unprocessedDocument, List<? extends DocumentEvent> documentEvents) Returns a document event which is an accumulation of a list of document events,null
if the list of documentEvents is empty.nextDelimiter
(CharSequence text, int offset) Search for the first standard line delimiter in text starting at given offset.static boolean
Returnstrue
if the two regions overlap.static Map<String,
IDocumentPartitioner> removeDocumentPartitioners
(IDocument document) Removes all connected document partitioners from the given document and stores them under their partitioning name in a map.static int
startsWith
(String[] searchStrings, String text) Returns the index of the longest search string with which the given text starts or-1
if none matches.
-
Field Details
-
DELIMITERS
Default line delimiters used by the text functions of this class. -
fgDelimiters
Deprecated.use DELIMITERS insteadDefault line delimiters used by these text functions.
-
-
Constructor Details
-
TextUtilities
public TextUtilities()
-
-
Method Details
-
determineLineDelimiter
Determines which one of default line delimiters appears first in the list. If none of them the hint is returned.- Parameters:
text
- the text to be checkedhint
- the line delimiter hint- Returns:
- the line delimiter
-
indexOf
Deprecated.useMultiStringMatcher.indexOf(CharSequence, int, String...)
instead. Notable differences:- new matcher indexOf does not allow negative offsets (old matcher treated them
as
0
) - new matcher indexOf will tolerate
null
and empty search strings (old accepted empty but throw onnull
) - new matcher indexOf will not match empty string (old matched empty if nothing else matched)
delimiter
use the optimizednextDelimiter(CharSequence, int)
method instead.Returns the starting position and the index of the first matching search string in the given text that is greater than the given offset. If more than one search string matches with the same starting position then the longest one is returned.- Parameters:
searchStrings
- the strings to search fortext
- the text to be searchedoffset
- the offset at which to start the search- Returns:
- an
int[]
with two elements where the first is the starting offset, the second the index of the found search string in the givensearchStrings
array, returns[-1, -1]
if no match exists
- new matcher indexOf does not allow negative offsets (old matcher treated them
as
-
endsWith
Returns the index of the longest search string with which the given text ends or-1
if none matches.- Parameters:
searchStrings
- the strings to search fortext
- the text to search- Returns:
- the index in
searchStrings
of the longest string with whichtext
ends or-1
-
startsWith
Returns the index of the longest search string with which the given text starts or-1
if none matches.- Parameters:
searchStrings
- the strings to search fortext
- the text to search- Returns:
- the index in
searchStrings
of the longest string with whichtext
starts or-1
-
equals
Returns the index of the first compare string that equals the given text or-1
if none is equal.- Parameters:
compareStrings
- the strings to compare withtext
- the text to check- Returns:
- the index of the first equal compare string or
-1
-
mergeUnprocessedDocumentEvents
public static DocumentEvent mergeUnprocessedDocumentEvents(IDocument unprocessedDocument, List<? extends DocumentEvent> documentEvents) throws BadLocationException Returns a document event which is an accumulation of a list of document events,null
if the list of documentEvents is empty. The document of the document events are ignored.- Parameters:
unprocessedDocument
- the document to which the document events would be applieddocumentEvents
- the list of document events to merge- Returns:
- returns the merged document event
- Throws:
BadLocationException
- might be thrown if document is not in the correct state with respect to document events
-
mergeProcessedDocumentEvents
public static DocumentEvent mergeProcessedDocumentEvents(List<? extends DocumentEvent> documentEvents) throws BadLocationException Returns a document event which is an accumulation of a list of document events,null
if the list of document events is empty. The document events being merged must all refer to the same document, to which the document changes have been already applied.- Parameters:
documentEvents
- the list of document events to merge- Returns:
- returns the merged document event
- Throws:
BadLocationException
- might be thrown if document is not in the correct state with respect to document events
-
removeDocumentPartitioners
Removes all connected document partitioners from the given document and stores them under their partitioning name in a map. This map is returned. After this method has been called the given document is no longer connected to any document partitioner.- Parameters:
document
- the document- Returns:
- the map containing the removed partitioners
-
addDocumentPartitioners
public static void addDocumentPartitioners(IDocument document, Map<String, ? extends IDocumentPartitioner> partitioners) Connects the given document with all document partitioners stored in the given map under their partitioning name. This method cleans the given map.- Parameters:
document
- the documentpartitioners
- the map containing the partitioners to be connected- Since:
- 3.0
-
getContentType
public static String getContentType(IDocument document, String partitioning, int offset, boolean preferOpenPartitions) throws BadLocationException Returns the content type at the given offset of the given document.- Parameters:
document
- the documentpartitioning
- the partitioning to be usedoffset
- the offsetpreferOpenPartitions
-true
if precedence should be given to a open partition ending atoffset
over a closed partition starting atoffset
- Returns:
- the content type at the given offset of the document
- Throws:
BadLocationException
- if offset is invalid in the document- Since:
- 3.0
-
getPartition
public static ITypedRegion getPartition(IDocument document, String partitioning, int offset, boolean preferOpenPartitions) throws BadLocationException Returns the partition of the given offset of the given document.- Parameters:
document
- the documentpartitioning
- the partitioning to be usedoffset
- the offsetpreferOpenPartitions
-true
if precedence should be given to a open partition ending atoffset
over a closed partition starting atoffset
- Returns:
- the content type at the given offset of this viewer's input document
- Throws:
BadLocationException
- if offset is invalid in the given document- Since:
- 3.0
-
computePartitioning
public static ITypedRegion[] computePartitioning(IDocument document, String partitioning, int offset, int length, boolean includeZeroLengthPartitions) throws BadLocationException Computes and returns the partitioning for the given region of the given document for the given partitioning name.- Parameters:
document
- the documentpartitioning
- the partitioning nameoffset
- the region offsetlength
- the region lengthincludeZeroLengthPartitions
- whether to include zero-length partitions- Returns:
- the partitioning for the given region of the given document for the given partitioning name
- Throws:
BadLocationException
- if the given region is invalid for the given document- Since:
- 3.0
-
computePartitionManagingCategories
Computes and returns the partition managing position categories for the given document ornull
if this was impossible.- Parameters:
document
- the document- Returns:
- the partition managing position categories or
null
- Since:
- 3.0
-
getDefaultLineDelimiter
Returns the default line delimiter for the given document. This isIDocumentExtension4.getDefaultLineDelimiter()
if available. Otherwise, this is either the delimiter of the first line, or the platform line delimiter if it is a legal line delimiter, or the first one of the legal line delimiters. The default line delimiter should be used when performing document manipulations that span multiple lines.- Parameters:
document
- the document- Returns:
- the document's default line delimiter
- Since:
- 3.0
-
overlaps
Returnstrue
if the two regions overlap. Returnsfalse
if one of the arguments isnull
.- Parameters:
left
- the left regionright
- the right region- Returns:
true
if the two regions overlap,false
otherwise- Since:
- 3.0
-
copy
Returns a copy of the given string array.- Parameters:
array
- the string array to be copied- Returns:
- a copy of the given string array or
null
whenarray
isnull
- Since:
- 3.1
-
copy
public static int[] copy(int[] array) Returns a copy of the given integer array.- Parameters:
array
- the integer array to be copied- Returns:
- a copy of the given integer array or
null
whenarray
isnull
- Since:
- 3.1
-
nextDelimiter
Search for the first standard line delimiter in text starting at given offset. Standard line delimiters are those defined inDELIMITERS
. This is a faster variant of the equalMultiStringMatcher.indexOf(TextUtilities.DELIMITERS, text, offset)
- Parameters:
text
- the text to be searched. Notnull
.offset
- the offset in text at which to start the search- Returns:
- a
AbstractLineTracker.DelimiterInfo
. If no delimiter was foundAbstractLineTracker.DelimiterInfo.delimiterIndex
is-1
andAbstractLineTracker.DelimiterInfo.delimiter
isnull
. - Since:
- 3.10
-