Class TextUtilities


  • public class TextUtilities
    extends java.lang.Object
    Contains several text manipulation methods.
    • Bracket matching
    • Word start and end offset calculation
    • String comparison
    • Converting tabs to spaces and vice versa
    • Wrapping text
    • String case conversion
    • Constructor Summary

      Constructors 
      Constructor Description
      TextUtilities()  
    • Method Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static java.lang.String escapeText​(java.lang.String text)
      Escapes a given string for use in a java.util.regex pattern.
      static int findMatchingBracket​(JEditBuffer buffer, int line, int offset)
      Returns the offset of the bracket matching the one at the specified offset of the buffer, or -1 if the bracket is unmatched (or if the character is not a bracket).
      static int findWordEnd​(java.lang.CharSequence line, int pos, java.lang.String noWordSep)
      Locates the end of the word at the specified position.
      static int findWordEnd​(java.lang.CharSequence line, int pos, java.lang.String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace)
      Locates the end of the word at the specified position.
      static int findWordEnd​(java.lang.String line, int pos, java.lang.String noWordSep)
      Locates the end of the word at the specified position.
      static int findWordEnd​(java.lang.String line, int pos, java.lang.String noWordSep, boolean joinNonWordChars)
      Locates the end of the word at the specified position.
      static int findWordEnd​(java.lang.String line, int pos, java.lang.String noWordSep, boolean joinNonWordChars, boolean eatWhitespace)
      Locates the end of the word at the specified position.
      static int findWordEnd​(java.lang.String line, int pos, java.lang.String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace)
      Locates the end of the word at the specified position.
      static int findWordStart​(java.lang.CharSequence line, int pos, java.lang.String noWordSep)
      Locates the start of the word at the specified position.
      static int findWordStart​(java.lang.CharSequence line, int pos, java.lang.String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace)
      Locates the start of the word at the specified position.
      static int findWordStart​(java.lang.CharSequence line, int pos, java.lang.String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace, boolean eatOnlyAfterWord)
      Locates the start of the word at the specified position.
      static int findWordStart​(java.lang.String line, int pos, java.lang.String noWordSep)
      Locates the start of the word at the specified position.
      static int findWordStart​(java.lang.String line, int pos, java.lang.String noWordSep, boolean joinNonWordChars)
      Locates the start of the word at the specified position.
      static int findWordStart​(java.lang.String line, int pos, java.lang.String noWordSep, boolean joinNonWordChars, boolean eatWhitespace)
      Locates the start of the word at the specified position.
      static int findWordStart​(java.lang.String line, int pos, java.lang.String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace)
      Locates the start of the word at the specified position.
      static java.lang.String format​(java.lang.String text, int maxLineLength, int tabSize)
      Formats the specified text by merging and breaking lines to the specified width.
      static int getCharType​(char ch, java.lang.String noWordSep)
      Returns the type of the char.
      static char getComplementaryBracket​(char ch, boolean[] direction)
      Given an opening bracket, return the corresponding closing bracket and store true in direction[0].
      static int getStringCase​(java.lang.CharSequence str)
      Returns if the specified string is all upper case, all lower case, or title case (first letter upper case, rest lower case).
      static int getStringCase​(java.lang.String str)
      Returns if the specified string is all upper case, all lower case, or title case (first letter upper case, rest lower case).
      static Token getTokenAtOffset​(Token tokens, int offset)
      Returns the token that contains the specified offset.
      static int ignoringWhitespaceIndex​(java.lang.String str, int index)
      Inverse of indexIgnoringWhitespace().
      static int indexIgnoringWhitespace​(java.lang.String str, int index)
      Inverse of ignoringWhitespaceIndex().
      static void indexIgnoringWhitespace​(java.lang.String text, int maxLineLength, int tabSize, java.lang.StringBuffer buf)  
      static java.lang.String join​(java.util.Collection<?> c, java.lang.String delim)
      Deprecated.
      use String.join(CharSequence, CharSequence...) or String.join(CharSequence, Iterable), thos methods are available since Java 8 and are faster in all situations
      static java.lang.String spacesToTabs​(java.lang.String in, int tabSize)
      Converts consecutive spaces to tabs in the specified string.
      static java.lang.String tabsToSpaces​(java.lang.String in, int tabSize)
      Converts tabs to consecutive spaces in the specified string.
      static java.lang.String toTitleCase​(java.lang.String str)
      Converts the specified string to title case, by capitalizing the first letter.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TextUtilities

        public TextUtilities()
    • Method Detail

      • getTokenAtOffset

        public static Token getTokenAtOffset​(Token tokens,
                                             int offset)
        Returns the token that contains the specified offset.
        Parameters:
        tokens - The token list
        offset - The offset
        Since:
        jEdit 4.0pre3
      • getComplementaryBracket

        public static char getComplementaryBracket​(char ch,
                                                   boolean[] direction)
        Given an opening bracket, return the corresponding closing bracket and store true in direction[0]. Given a closing bracket, return the corresponding opening bracket and store false in direction[0]. Otherwise, return \0.
        Since:
        jEdit 4.3pre2
      • findMatchingBracket

        public static int findMatchingBracket​(JEditBuffer buffer,
                                              int line,
                                              int offset)
        Returns the offset of the bracket matching the one at the specified offset of the buffer, or -1 if the bracket is unmatched (or if the character is not a bracket).
        Parameters:
        buffer - The buffer
        line - The line
        offset - The offset within that line
        Since:
        jEdit 2.6pre1
      • join

        @Deprecated
        public static java.lang.String join​(java.util.Collection<?> c,
                                            java.lang.String delim)
        Deprecated.
        use String.join(CharSequence, CharSequence...) or String.join(CharSequence, Iterable), thos methods are available since Java 8 and are faster in all situations
        Similar to perl's join() method on lists, but works with all collections.
        Parameters:
        c - An iterable collection of Objects
        delim - a string to put between each object
        Returns:
        a joined toString() representation of the collection
        Since:
        jedit 4.3pre3
      • findWordStart

        public static int findWordStart​(java.lang.String line,
                                        int pos,
                                        java.lang.String noWordSep)
        Locates the start of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
      • findWordStart

        public static int findWordStart​(java.lang.CharSequence line,
                                        int pos,
                                        java.lang.String noWordSep)
        Locates the start of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        Since:
        jEdit 4.3pre15
      • findWordStart

        public static int findWordStart​(java.lang.String line,
                                        int pos,
                                        java.lang.String noWordSep,
                                        boolean joinNonWordChars)
        Locates the start of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        Since:
        jEdit 4.2pre5
      • findWordStart

        public static int findWordStart​(java.lang.String line,
                                        int pos,
                                        java.lang.String noWordSep,
                                        boolean joinNonWordChars,
                                        boolean eatWhitespace)
        Locates the start of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        eatWhitespace - Include whitespace at start of word
        Since:
        jEdit 4.1pre2
      • findWordStart

        public static int findWordStart​(java.lang.String line,
                                        int pos,
                                        java.lang.String noWordSep,
                                        boolean joinNonWordChars,
                                        boolean camelCasedWords,
                                        boolean eatWhitespace)
        Locates the start of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        camelCasedWords - Treat "camelCased" parts as words
        eatWhitespace - Include whitespace at start of word
        Since:
        jEdit 4.3pre10
      • findWordStart

        public static int findWordStart​(java.lang.CharSequence line,
                                        int pos,
                                        java.lang.String noWordSep,
                                        boolean joinNonWordChars,
                                        boolean camelCasedWords,
                                        boolean eatWhitespace)
        Locates the start of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        camelCasedWords - Treat "camelCased" parts as words
        eatWhitespace - Include whitespace at start of word
        Since:
        jEdit 4.3pre15
      • findWordStart

        public static int findWordStart​(java.lang.CharSequence line,
                                        int pos,
                                        java.lang.String noWordSep,
                                        boolean joinNonWordChars,
                                        boolean camelCasedWords,
                                        boolean eatWhitespace,
                                        boolean eatOnlyAfterWord)
        Locates the start of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        camelCasedWords - Treat "camelCased" parts as words
        eatWhitespace - Include whitespace at start of word
        eatOnlyAfterWord - Eat only whitespace after a word, in effect this finds actual word starts even if eating
        Since:
        jEdit 4.4pre1
      • findWordEnd

        public static int findWordEnd​(java.lang.String line,
                                      int pos,
                                      java.lang.String noWordSep)
        Locates the end of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
      • findWordEnd

        public static int findWordEnd​(java.lang.CharSequence line,
                                      int pos,
                                      java.lang.String noWordSep)
        Locates the end of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        Since:
        jEdit 4.3pre15
      • findWordEnd

        public static int findWordEnd​(java.lang.String line,
                                      int pos,
                                      java.lang.String noWordSep,
                                      boolean joinNonWordChars)
        Locates the end of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        Since:
        jEdit 4.1pre2
      • findWordEnd

        public static int findWordEnd​(java.lang.String line,
                                      int pos,
                                      java.lang.String noWordSep,
                                      boolean joinNonWordChars,
                                      boolean eatWhitespace)
        Locates the end of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        eatWhitespace - Include whitespace at end of word
        Since:
        jEdit 4.2pre5
      • findWordEnd

        public static int findWordEnd​(java.lang.String line,
                                      int pos,
                                      java.lang.String noWordSep,
                                      boolean joinNonWordChars,
                                      boolean camelCasedWords,
                                      boolean eatWhitespace)
        Locates the end of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        camelCasedWords - Treat "camelCased" parts as words
        eatWhitespace - Include whitespace at end of word
        Since:
        jEdit 4.3pre10
      • findWordEnd

        public static int findWordEnd​(java.lang.CharSequence line,
                                      int pos,
                                      java.lang.String noWordSep,
                                      boolean joinNonWordChars,
                                      boolean camelCasedWords,
                                      boolean eatWhitespace)
        Locates the end of the word at the specified position.
        Parameters:
        line - The text
        pos - The position
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway
        joinNonWordChars - Treat consecutive non-alphanumeric characters as one word
        camelCasedWords - Treat "camelCased" parts as words
        eatWhitespace - Include whitespace at end of word
        Since:
        jEdit 4.3pre15
      • getCharType

        public static int getCharType​(char ch,
                                      java.lang.String noWordSep)
        Returns the type of the char.
        Parameters:
        ch - the character
        noWordSep - Characters that are non-alphanumeric, but should be treated as word characters anyway, it must not be null
        Returns:
        the type of the char : WHITESPACE, WORD_CHAR, SYMBOL
        Since:
        jEdit 4.4pre1
      • spacesToTabs

        public static java.lang.String spacesToTabs​(java.lang.String in,
                                                    int tabSize)
        Converts consecutive spaces to tabs in the specified string.
        Parameters:
        in - The string
        tabSize - The tab size
      • tabsToSpaces

        public static java.lang.String tabsToSpaces​(java.lang.String in,
                                                    int tabSize)
        Converts tabs to consecutive spaces in the specified string.
        Parameters:
        in - The string
        tabSize - The tab size
      • format

        public static java.lang.String format​(java.lang.String text,
                                              int maxLineLength,
                                              int tabSize)
        Formats the specified text by merging and breaking lines to the specified width.
        Parameters:
        text - The text
        maxLineLength - The maximum line length
        tabSize - The tab size
      • indexIgnoringWhitespace

        public static int indexIgnoringWhitespace​(java.lang.String str,
                                                  int index)
        Inverse of ignoringWhitespaceIndex().
        Parameters:
        str - a string (not an empty string)
        index - The index
        Returns:
        The number of non-whitespace characters that precede the index.
        Since:
        jEdit 4.3pre2
      • ignoringWhitespaceIndex

        public static int ignoringWhitespaceIndex​(java.lang.String str,
                                                  int index)
        Inverse of indexIgnoringWhitespace().
        Parameters:
        str - a string (not an empty string)
        index - The index
        Returns:
        The index into the string where the number of non-whitespace characters that precede the index is count.
        Since:
        jEdit 4.3pre2
      • getStringCase

        public static int getStringCase​(java.lang.CharSequence str)
        Returns if the specified string is all upper case, all lower case, or title case (first letter upper case, rest lower case).
        Parameters:
        str - The string
        Since:
        jEdit 4.4pre1
      • getStringCase

        public static int getStringCase​(java.lang.String str)
        Returns if the specified string is all upper case, all lower case, or title case (first letter upper case, rest lower case).
        Parameters:
        str - The string
        Since:
        jEdit 4.0pre1
      • toTitleCase

        public static java.lang.String toTitleCase​(java.lang.String str)
        Converts the specified string to title case, by capitalizing the first letter.
        Parameters:
        str - The string
        Since:
        jEdit 4.0pre1
      • escapeText

        public static java.lang.String escapeText​(java.lang.String text)
        Escapes a given string for use in a java.util.regex pattern.
        Since:
        jEdit 4.5pre1
      • indexIgnoringWhitespace

        public static void indexIgnoringWhitespace​(java.lang.String text,
                                                   int maxLineLength,
                                                   int tabSize,
                                                   java.lang.StringBuffer buf)