From: <le...@us...> - 2009-05-26 15:34:43
|
Revision: 15339 http://jedit.svn.sourceforge.net/jedit/?rev=15339&view=rev Author: leshij Date: 2009-05-26 15:34:32 +0000 (Tue, 26 May 2009) Log Message: ----------- Modified Paths: -------------- plugins/JavaMacros/trunk/src/javamacros/SelectionTransformerMacroClass.java Modified: plugins/JavaMacros/trunk/src/javamacros/SelectionTransformerMacroClass.java =================================================================== --- plugins/JavaMacros/trunk/src/javamacros/SelectionTransformerMacroClass.java 2009-05-25 21:04:26 UTC (rev 15338) +++ plugins/JavaMacros/trunk/src/javamacros/SelectionTransformerMacroClass.java 2009-05-26 15:34:32 UTC (rev 15339) @@ -5,6 +5,7 @@ import org.gjt.sp.jedit.View; import org.gjt.sp.jedit.textarea.JEditTextArea; import org.gjt.sp.jedit.textarea.Selection; +import java.util.ArrayList; /** Base class for macros that transforms text. * Macro must implement {@link #transform} method that would do actual work. @@ -29,6 +30,11 @@ */ public abstract class SelectionTransformerMacroClass implements MacroClass { + protected Buffer buffer; + protected View view; + protected Macros.Macro macro; + protected JEditTextArea jEditTextArea; + /** Perform text transformation. * * @param s input text @@ -37,6 +43,10 @@ protected abstract String transform(String s); public final void run(Buffer buffer, View view, Macros.Macro macro, JEditTextArea jEditTextArea) throws Exception { + this.buffer = buffer; + this.view = view; + this.macro = macro; + this.jEditTextArea = jEditTextArea; if (jEditTextArea.getSelectionCount() == 0) { final String source = jEditTextArea.getText(); final String result = transform(source); @@ -51,4 +61,33 @@ } } + protected static String[] split(String text) { + final ArrayList<String> lines = new ArrayList<String>(); + int p0 = -1; + for (;;) { + int p1 = text.indexOf('\n', p0 + 1); + if (p1 == -1) { + break; + } + lines.add(text.substring(p0 + 1, p1)); + p0 = p1; + } + lines.add(text.substring(p0 + 1)); + return lines.toArray(new String[lines.size()]); + } + + protected static String join(String[] lines) { + final StringBuilder text = new StringBuilder(); + boolean firstLine = true; + for (String line : lines) { + if (!firstLine) { + text.append('\n'); + } else { + firstLine = false; + } + text.append(line); + } + return text.toString(); + } + } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |