org.gjt.sp.jedit

## Class TextUtilities

- java.lang.Object
- - org.gjt.sp.jedit.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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `BRACKET_MATCH_LIMIT`
    `static int` | `LOWER_CASE`
    `static int` | `MIXED`
    `static int` | `SYMBOL`
    `static int` | `TITLE_CASE`
    `static int` | `UPPER_CASE`
    `static int` | `WHITESPACE`
    `static int` | `WORD_CHAR`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TextUtilities()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and 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)` Similar to perl's join() method on lists, but works with all collections.
    `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`

- - ### Field Detail

    - #### BRACKET_MATCH_LIMIT

          public static final int BRACKET_MATCH_LIMIT

      See Also:
        Constant Field Values

    - #### WHITESPACE

          public static final int WHITESPACE

      See Also:
        Constant Field Values

    - #### WORD_CHAR

          public static final int WORD_CHAR

      See Also:
        Constant Field Values

    - #### SYMBOL

          public static final int SYMBOL

      See Also:
        Constant Field Values

    - #### MIXED

          public static final int MIXED

      See Also:
        Constant Field Values

    - #### LOWER_CASE

          public static final int LOWER_CASE

      See Also:
        Constant Field Values

    - #### UPPER_CASE

          public static final int UPPER_CASE

      See Also:
        Constant Field Values

    - #### TITLE_CASE

          public static final int TITLE_CASE

      See Also:
        Constant Field Values

  - ### 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

          public static java.lang.String join(java.util.Collection<?> c,
                                              java.lang.String delim)

      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)