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
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidaddDocumentPartitioners(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 ornullif 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 StringdetermineLineDelimiter(String text, String hint) Determines which one of default line delimiters appears first in the list.static intReturns the index of the longest search string with which the given text ends or-1if none matches.static intReturns the index of the first compare string that equals the given text or-1if none is equal.static StringgetContentType(IDocument document, String partitioning, int offset, boolean preferOpenPartitions) Returns the content type at the given offset of the given document.static StringgetDefaultLineDelimiter(IDocument document) Returns the default line delimiter for the given document.static ITypedRegiongetPartition(IDocument document, String partitioning, int offset, boolean preferOpenPartitions) Returns the partition of the given offset of the given document.static int[]Deprecated.static DocumentEventmergeProcessedDocumentEvents(List<? extends DocumentEvent> documentEvents) Returns a document event which is an accumulation of a list of document events,nullif the list of document events is empty.static DocumentEventmergeUnprocessedDocumentEvents(IDocument unprocessedDocument, List<? extends DocumentEvent> documentEvents) Returns a document event which is an accumulation of a list of document events,nullif 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 booleanReturnstrueif 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 intstartsWith(String[] searchStrings, String text) Returns the index of the longest search string with which the given text starts or-1if 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
nulland empty search strings (old accepted empty but throw onnull) - new matcher indexOf will not match empty string (old matched empty if nothing else matched)
delimiteruse 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 givensearchStringsarray, 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-1if none matches.- Parameters:
searchStrings- the strings to search fortext- the text to search- Returns:
- the index in
searchStringsof the longest string with whichtextends or-1
-
startsWith
Returns the index of the longest search string with which the given text starts or-1if none matches.- Parameters:
searchStrings- the strings to search fortext- the text to search- Returns:
- the index in
searchStringsof the longest string with whichtextstarts or-1
-
equals
Returns the index of the first compare string that equals the given text or-1if 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,nullif 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,nullif 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-trueif precedence should be given to a open partition ending atoffsetover 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-trueif precedence should be given to a open partition ending atoffsetover 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 ornullif 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
Returnstrueif the two regions overlap. Returnsfalseif one of the arguments isnull.- Parameters:
left- the left regionright- the right region- Returns:
trueif the two regions overlap,falseotherwise- 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
nullwhenarrayisnull - 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
nullwhenarrayisnull - 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.delimiterIndexis-1andAbstractLineTracker.DelimiterInfo.delimiterisnull. - Since:
- 3.10
-