Columbo aufrufen.bsh zum Wurzelverzeichnis wechselnCS {CS[100] Ada[189] Abap[190]}Datei anzeigen
/*
* Reverse_Lines.bsh - a BeanShell macro script for reversing the order
* of lines in a buffer. If there are selections, the lines in the selections
* will be reversed, otherwise the whole buffer will be reversed.
* NOTE: Lines are not sorted or reverse sorted, simply reversed.
*
* Copyright (C) 2002-2004 Ollie Rutherfurd, [email protected]
*
* :mode=beanshell:tabSize=4:indentSize=4:maxLineLen=0:noTabs=false:
* :indentOnTab=true:indentOnEnter=true:folding=explicit:collapseFolds=1:
*
* $Id: Reverse_Lines.bsh 23971 2015-08-08 19:37:35Z daleanson $
*/
// Localization
final static String NotWorkingRectangularSelectionError = jEdit.getProperty("macro.rs.ReverseLines.NotWorkingRectangularSelection.error", "Sorry, this macro doesn't work with Rectangular Selections.");
final static String NotEditableMessage = jEdit.getProperty("macro.rs.general.ErrorNotEditableDialog.message", "Buffer is not editable");
// Process
void reverseLines(textArea)
{
JEditBuffer buffer = textArea.getBuffer();
Selection[] selections = textArea.getSelection();
// doesn't work with rectangular selections, check for them up-front
for(int i = 0; i < selections.length; i++)
{
if(selections[i] instanceof Selection.Rect)
{
Macros.error(view, NotWorkingRectangularSelectionError);
return;
}
}
// do whole buffer if no selections
if(selections.length == 0)
{
StringBuffer sb = new StringBuffer(buffer.getLength());
for(int i = buffer.getLineCount() - 1; i >= 0; i--)
{
String line = buffer.getLineText(i);
sb.append(line);
if(i > 0) // don't append a newline for the last line
sb.append('\n');
}
buffer.remove(0, buffer.getLength());
buffer.insert(0, sb.toString());
}
// reverse all lines that are selected *NOT* just selected portions of lines
else
{
for(int i = 0; i < selections.length; i++){
int startLine = selections[i].getStartLine();
int endLine = selections[i].getEndLine();
int startOffset = buffer.getLineStartOffset(startLine);
if(startLine < endLine)
{
StringBuffer sb = new StringBuffer();
for(int i = endLine; i > startLine; i--)
{
String line = buffer.getLineText(i);
sb.append(line).append('\n');
}
// appending first line here, so a check
// can be made to see whether to append
// a newline (don't if the original line
// was the last line of the buffer)
sb.append(buffer.getLineText(startLine));
if(endLine < buffer.getLineCount() - 1)
sb.append('\n');
String reversed = sb.toString();
buffer.remove(startOffset, reversed.length());
buffer.insert(startOffset, reversed);
}
}
}
}
reverseLines(textArea);
/*
Macro index entry (in DocBook XML)
<listitem>
<para><filename>Reverse_Lines.bsh</filename></para>
<abstract><para>
Reverses the selected lines or the entire buffer if no
lines are selected. Does not support Rectangular
Selections.
</para></abstract>
</listitem>
*/
[ Original von:0.77Diese Quellcodebibliothek enthält Beispiele in vielen Programmiersprachen.
Man kann per Verzeichnistruktur darin navigieren.
Der Code wird farblich markiert angezeigt.
]