1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
/**
* Converts keyword token types to upper case.
*/
//Localization
final static String ConvertedKeywordsMessage = jEdit.getProperty("macro.rs.KeywordsToUpperCase.ConvertedKeywords.message", "Converted Keywords to Upper Case");
void keywords2upper(View view)
{
// declarations run faster than doing Token.KEYWORDx comparison
byte KEYWORD1 = Token.KEYWORD1;
byte KEYWORD4 = Token.KEYWORD4;
JEditBuffer buffer = view.getBuffer();
JEditTextArea textArea = view.getTextArea();
Token token = null;
//long t1 = System.currentTimeMillis();
Selection[] selection = textArea.getSelection();
Buffer.TokenList info = null;
int pos = 0;
int lineStart = 0;
for(int line = 0; line < textArea.getLineCount(); ++line)
{
info = buffer.markTokens(line);
token = info.getFirstToken();
lineStart = buffer.getLineStartOffset(line);
pos = lineStart;
while(token != null)
{
if(KEYWORD1 <= token.id && token.id <= KEYWORD4)
{
String word = buffer.getText(pos,token.length);
buffer.remove(pos,token.length);
buffer.insert(pos,word.toUpperCase());
}
pos += token.length;
token = token.next;
}
}
view.getTextArea().setSelection(selection);
//long t2 = System.currentTimeMillis();
//print("elapsed: " + (t2-t1));
view.getStatus().setMessageAndClear(ConvertedKeywordsMessage);
}
keywords2upper(view);
|