Spracherkennung für: .bsh vermutete Sprache: Latech {Latech[84] Abap[104] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
/*
* Greedy_Left.bsh - If a buffer is using soft tabs,
* this macro will move the caret tabSize spaces to the left,
* if all the characters between the caret and the previous
* tab stop are all spaces. In all other cases, the caret
* is moved a single character to the left.
*
* Copyright (C) 2004 Ollie Rutherfurd <[email protected]>
*
* $Id: Greedy_Left.bsh 5230 2005-07-20 13:31:08Z orutherfurd $
*/
/**
* @param onlyFullTabs if true, the caret will only be moved
* multiple spaces it would constitute
* a 'complete' tab.
*/
void greedyLeft(View view, boolean onlyFullTabs)
{
JEditTextArea textArea = view.getTextArea();
JEditBuffer buffer = textArea.getBuffer();
int caret = textArea.getCaretPosition();
int caretLine = textArea.getCaretLine();
int lineStart = textArea.getLineStartOffset(caretLine);
if(textArea.getCaretPosition() == 0)
return;
if(buffer.getBooleanProperty("noTabs") == true)
{
// if anything is selected, use standard
if(textArea.getSelection().length != 0)
{
textArea.setCaretPosition(caret-1);
}
// if at the start of the line, use standard
else if(caret == lineStart)
{
textArea.setCaretPosition(caret-1);
}
else
{
int col = caret - lineStart;
int tabSize = buffer.getIntegerProperty("tabSize",8);
// unlikely, but just in case
if(tabSize <= 0)
{
textArea.setCaretPosition(caret-1);
}
else
{
int toTabStop = ((col-1) % tabSize) + 1;
int count = 0;
String chunk = buffer.getText(caret-toTabStop,toTabStop);
for(int i=0; i < toTabStop; i++)
{
if(' ' != chunk.charAt(i))
break;
count += 1;
}
// if onlyFullTabs must be only spaces to
// the tabStop and must have tabSize number
// of spaces to remove them all.
if(onlyFullTabs == false || count == tabSize){
textArea.setCaretPosition(caret-count);
}
else{
textArea.setCaretPosition(caret-1);
}
}
}
}
else
textArea.setCaretPosition(caret-1);
}
greedyLeft(view,true);
[ Dauer der Verarbeitung: 0.68 Sekunden
]