public class RSyntaxUtilities extends Object implements SwingConstants
RSyntaxTextArea
and its associated
classes.BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
Constructor and Description |
---|
RSyntaxUtilities() |
Modifier and Type | Method and Description |
---|---|
static String |
getLeadingWhitespace(String text)
Returns the leading whitespace of a string.
|
static Rectangle |
getLineWidthUpTo(RSyntaxTextArea textArea,
Segment s,
int p0,
int p1,
TabExpander e,
Rectangle rect,
int x0)
Returns the bounding box (in the current view) of a specified position
in the model.
|
static int |
getMatchingBracketPosition(RSyntaxTextArea textArea) |
static int |
getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet,
View view)
Provides a way to determine the next visually represented model
location at which one might place a caret.
|
static int |
getPositionAbove(RSyntaxTextArea c,
int offs,
float x,
TabExpander e)
Determines the position in the model that is closest to the given
view location in the row above.
|
static int |
getPositionBelow(RSyntaxTextArea c,
int offs,
float x,
TabExpander e)
Determines the position in the model that is closest to the given
view location in the row below.
|
static Token |
getTokenAtOffset(Token tokenList,
int offset)
Returns the token at the specified index, or
null if
the given offset isn't in this token list's range. |
static float |
getTokenListWidth(Token tokenList,
RSyntaxTextArea textArea,
TabExpander e)
Determines the width of the given token list taking tabs
into consideration.
|
static float |
getTokenListWidth(Token tokenList,
RSyntaxTextArea textArea,
TabExpander e,
float x0)
Determines the width of the given token list taking tabs
into consideration.
|
static float |
getTokenListWidthUpTo(Token tokenList,
RSyntaxTextArea textArea,
TabExpander e,
float x0,
int upTo)
Determines the width of the given token list taking tabs into
consideration and only up to the given index in the document
(exclusive).
|
static int |
getWordEnd(RSyntaxTextArea textArea,
int offs)
Returns the end of the word at the given offset.
|
static int |
getWordStart(RSyntaxTextArea textArea,
int offs)
Returns the start of the word at the given offset.
|
static boolean |
isBracket(char ch)
Returns whether or not this character is a "bracket" to be matched by
such programming languages as C, C++, and Java.
|
static boolean |
isDigit(char ch)
Returns whether or not a character is a digit (0-9).
|
static boolean |
isHexCharacter(char ch)
Returns whether or not this character is a hex character.
|
static boolean |
isJavaOperator(char ch)
Returns whether a character is a Java operator.
|
static boolean |
isLetter(char ch)
Returns whether a character is a US-ASCII letter (A-Z or a-z).
|
static boolean |
isLetterOrDigit(char ch)
Returns whether or not a character is a US-ASCII letter or a digit.
|
static boolean |
isWhitespace(char ch)
Returns whether or not a character is a whitespace character (either
a space ' ' or tab '\t').
|
static float |
makeTokenListStartAt(Token tokenList,
int pos,
TabExpander e,
RSyntaxTextArea textArea,
float x0)
Modifies the passed-in token list to start at the specified offset.
|
static char |
toLowerCase(char ch)
If the character is an upper-case US-ASCII letter, it returns the
lower-case version of that letter; otherwise, it just returns the
character.
|
public static String getLeadingWhitespace(String text)
text
- The String to check.public static Rectangle getLineWidthUpTo(RSyntaxTextArea textArea, Segment s, int p0, int p1, TabExpander e, Rectangle rect, int x0) throws BadLocationException
p0
, as this is
the character where the x-pixel value is 0.textArea
- The text area containing the text.s
- A segment in which to load the line. This is passed in so we
don't have to reallocate a new Segment
for each
call.p0
- The starting position in the physical line in the document.p1
- The position for which to get the bounding box in the view.e
- How to expand tabs.rect
- The rectangle whose x- and width-values are changed to
represent the bounding box of p1
. This is reused
to keep from needlessly reallocating Rectangles.x0
- The x-coordinate (pixel) marking the left-hand border of the
text. This is useful if the text area has a border, for example.p1
.BadLocationException
- If p0
or p1
is
not a valid location in the specified text area's document.IllegalArgumentException
- If p0
and p1
are not on the same line.public static int getMatchingBracketPosition(RSyntaxTextArea textArea)
public static int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet, View view) throws BadLocationException
NOTE: You should only call this method if the passed-in
javax.swing.text.View
is an instance of
TokenOrientedView
and javax.swing.text.TabExpander
;
otherwise, a ClassCastException
could be thrown.
pos
- the position to convert >= 0a
- the allocated region in which to renderdirection
- the direction from the current position that can
be thought of as the arrow keys typically found on a keyboard.
This will be one of the following values:
BadLocationException
IllegalArgumentException
- if direction
doesn't have one of the legal values abovepublic static final int getPositionAbove(RSyntaxTextArea c, int offs, float x, TabExpander e) throws BadLocationException
c
- the editoroffs
- the offset in the document >= 0x
- the X coordinate >= 0BadLocationException
- if the offset is out of rangepublic static final int getPositionBelow(RSyntaxTextArea c, int offs, float x, TabExpander e) throws BadLocationException
c
- the editoroffs
- the offset in the document >= 0x
- the X coordinate >= 0BadLocationException
- if the offset is out of rangepublic static final Token getTokenAtOffset(Token tokenList, int offset)
null
if
the given offset isn't in this token list's range.tokenList
is null; callers should check for themselves.tokenList
- The list of tokens in which to search.offset
- The offset at which to get the token.offset
, or null
if
none of the tokens are at that offset.public static int getWordEnd(RSyntaxTextArea textArea, int offs) throws BadLocationException
textArea
- The text area.offs
- The offset into the text area's content.BadLocationException
- If offs
is invalid.getWordStart(RSyntaxTextArea, int)
public static int getWordStart(RSyntaxTextArea textArea, int offs) throws BadLocationException
textArea
- The text area.offs
- The offset into the text area's content.BadLocationException
- If offs
is invalid.getWordEnd(RSyntaxTextArea, int)
public static final float getTokenListWidth(Token tokenList, RSyntaxTextArea textArea, TabExpander e)
This method also assumes that the passed-in token list begins at
x-pixel 0
in the view (for tab purposes).
tokenList
- The tokenList list representing the text.textArea
- The text area in which this token list resides.e
- The tab expander. This value cannot be null
.public static final float getTokenListWidth(Token tokenList, RSyntaxTextArea textArea, TabExpander e, float x0)
tokenList
- The token list list representing the text.textArea
- The text area in which this token list resides.e
- The tab expander. This value cannot be null
.x0
- The x-pixel coordinate of the start of the token list.getTokenListWidthUpTo(org.fife.ui.rsyntaxtextarea.Token, org.fife.ui.rsyntaxtextarea.RSyntaxTextArea, javax.swing.text.TabExpander, float, int)
public static final float getTokenListWidthUpTo(Token tokenList, RSyntaxTextArea textArea, TabExpander e, float x0, int upTo)
tokenList
- The token list representing the text.textArea
- The text area in which this token list resides.e
- The tab expander. This value cannot be null
.x0
- The x-pixel coordinate of the start of the token list.upTo
- The document position at which you want to stop,
exclusive. If this position is before the starting position
of the token list, a width of 0
will be
returned; similarly, if this position comes after the entire
token list, the width of the entire token list is returned.upTo
.getTokenListWidth(org.fife.ui.rsyntaxtextarea.Token, org.fife.ui.rsyntaxtextarea.RSyntaxTextArea, javax.swing.text.TabExpander)
public static final boolean isBracket(char ch)
ch
- The character to check.public static final boolean isDigit(char ch)
ch
- The character to check.public static final boolean isHexCharacter(char ch)
ch
- The character to check.public static final boolean isJavaOperator(char ch)
ch
- The character to check.public static final boolean isLetter(char ch)
ch
- The character to check.public static final boolean isLetterOrDigit(char ch)
ch
- The character to check.public static final boolean isWhitespace(char ch)
ch
- The character to check.public static float makeTokenListStartAt(Token tokenList, int pos, TabExpander e, RSyntaxTextArea textArea, float x0)
[token1] -> [token2] -> [token3] -> [token4] 20 30 31 40 41 50 51 60and you used this method to make the token list start at position 44, then the token list would be modified to be the following:
[part-of-old-token3] -> [token4] 44 50 51 60Tokens that come before the specified position are forever lost, and the token containing that position is made to begin at that position if necessary. All token types remain the same as they were originally.
This method can be useful if you are only interested in part of a token list (i.e., the line it represents), but you don't want to modify the token list yourself.
tokenList
- The list to make start at the specified position.
This parameter is modified.pos
- The position at which the new token list is to start. If
this position is not in the passed-in token list,
returned token list will either be null
or the
unpaintable token(s) at the end of the passed-in token list.e
- How to expand tabs.textArea
- The text area from which the token list came.x0
- The initial x-pixel position of the old token list.public static final char toLowerCase(char ch)
ch
- The character to lower-case (if it is a US-ASCII upper-case
character).