Module jEdit

Class TextUtilities

java.lang.Object
org.gjt.sp.jedit.TextUtilities

public class TextUtilities extends 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
Version:
$Id: TextUtilities.java 25308 2020-05-03 22:08:41Z kpouer $
Author:
Slava Pestov
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
    static final int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    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(CharSequence line, int pos, String noWordSep)
    Locates the end of the word at the specified position.
    static int
    findWordEnd(CharSequence line, int pos, String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace)
    Locates the end of the word at the specified position.
    static int
    findWordEnd(String line, int pos, String noWordSep)
    Locates the end of the word at the specified position.
    static int
    findWordEnd(String line, int pos, String noWordSep, boolean joinNonWordChars)
    Locates the end of the word at the specified position.
    static int
    findWordEnd(String line, int pos, String noWordSep, boolean joinNonWordChars, boolean eatWhitespace)
    Locates the end of the word at the specified position.
    static int
    findWordEnd(String line, int pos, String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace)
    Locates the end of the word at the specified position.
    static int
    findWordStart(CharSequence line, int pos, String noWordSep)
    Locates the start of the word at the specified position.
    static int
    findWordStart(CharSequence line, int pos, String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace)
    Locates the start of the word at the specified position.
    static int
    findWordStart(CharSequence line, int pos, String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace, boolean eatOnlyAfterWord)
    Locates the start of the word at the specified position.
    static int
    findWordStart(String line, int pos, String noWordSep)
    Locates the start of the word at the specified position.
    static int
    findWordStart(String line, int pos, String noWordSep, boolean joinNonWordChars)
    Locates the start of the word at the specified position.
    static int
    findWordStart(String line, int pos, String noWordSep, boolean joinNonWordChars, boolean eatWhitespace)
    Locates the start of the word at the specified position.
    static int
    findWordStart(String line, int pos, String noWordSep, boolean joinNonWordChars, boolean camelCasedWords, boolean eatWhitespace)
    Locates the start of the word at the specified position.
    static String
    format(String text, int maxLineLength, int tabSize)
    Formats the specified text by merging and breaking lines to the specified width.
    static int
    getCharType(char ch, 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
    Returns if the specified string is all upper case, all lower case, or title case (first letter upper case, rest lower case).
    static int
    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
    Inverse of indexIgnoringWhitespace().
    static int
    Inverse of ignoringWhitespaceIndex().
    static void
    indexIgnoringWhitespace(String text, int maxLineLength, int tabSize, StringBuffer buf)
     
    static String
    join(Collection<?> c, 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 String
    spacesToTabs(String in, int tabSize)
    Converts consecutive spaces to tabs in the specified string.
    static String
    tabsToSpaces(String in, int tabSize)
    Converts tabs to consecutive spaces in the specified string.
    static String
    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 Details

  • Constructor Details

    • TextUtilities

      public TextUtilities()
  • Method Details

    • 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 String join(Collection<?> c, 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(String line, int pos, 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(CharSequence line, int pos, 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(String line, int pos, 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(String line, int pos, 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(String line, int pos, 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(CharSequence line, int pos, 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(CharSequence line, int pos, 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(String line, int pos, 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(CharSequence line, int pos, 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(String line, int pos, 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(String line, int pos, 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(String line, int pos, 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(CharSequence line, int pos, 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, 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 String spacesToTabs(String in, int tabSize)
      Converts consecutive spaces to tabs in the specified string.
      Parameters:
      in - The string
      tabSize - The tab size
    • tabsToSpaces

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

      public static String format(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(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(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(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(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 String toTitleCase(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 String escapeText(String text)
      Escapes a given string for use in a java.util.regex pattern.
      Since:
      jEdit 4.5pre1
    • indexIgnoringWhitespace

      public static void indexIgnoringWhitespace(String text, int maxLineLength, int tabSize, StringBuffer buf)