Search in sources :

Example 1 with ILineTracker

use of org.eclipse.jface.text.ILineTracker in project che by eclipse.

the class CodeTemplateContext method changeLineDelimiter.

private static String changeLineDelimiter(String code, String lineDelim) {
    try {
        ILineTracker tracker = new DefaultLineTracker();
        tracker.set(code);
        int nLines = tracker.getNumberOfLines();
        if (nLines == 1) {
            return code;
        }
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < nLines; i++) {
            if (i != 0) {
                buf.append(lineDelim);
            }
            IRegion region = tracker.getLineInformation(i);
            String line = code.substring(region.getOffset(), region.getOffset() + region.getLength());
            buf.append(line);
        }
        return buf.toString();
    } catch (BadLocationException e) {
        // can not happen
        return code;
    }
}
Also used : DefaultLineTracker(org.eclipse.jface.text.DefaultLineTracker) IRegion(org.eclipse.jface.text.IRegion) BadLocationException(org.eclipse.jface.text.BadLocationException) ILineTracker(org.eclipse.jface.text.ILineTracker)

Example 2 with ILineTracker

use of org.eclipse.jface.text.ILineTracker in project che by eclipse.

the class Strings method convertIntoLines.

/**
	 * Converts the given string into an array of lines. The lines
	 * don't contain any line delimiter characters.
	 *
	 * @param input the string
	 * @return the string converted into an array of strings. Returns <code>
	 * 	null</code> if the input string can't be converted in an array of lines.
	 */
public static String[] convertIntoLines(String input) {
    try {
        ILineTracker tracker = new DefaultLineTracker();
        tracker.set(input);
        int size = tracker.getNumberOfLines();
        String[] result = new String[size];
        for (int i = 0; i < size; i++) {
            IRegion region = tracker.getLineInformation(i);
            int offset = region.getOffset();
            result[i] = input.substring(offset, offset + region.getLength());
        }
        return result;
    } catch (BadLocationException e) {
        return null;
    }
}
Also used : DefaultLineTracker(org.eclipse.jface.text.DefaultLineTracker) StyledString(org.eclipse.jface.viewers.StyledString) IRegion(org.eclipse.jface.text.IRegion) BadLocationException(org.eclipse.jface.text.BadLocationException) ILineTracker(org.eclipse.jface.text.ILineTracker)

Example 3 with ILineTracker

use of org.eclipse.jface.text.ILineTracker in project che by eclipse.

the class Strings method trimIndentation.

public static String trimIndentation(String source, int tabWidth, int indentWidth, boolean considerFirstLine) {
    try {
        ILineTracker tracker = new DefaultLineTracker();
        tracker.set(source);
        int size = tracker.getNumberOfLines();
        if (size == 1)
            return source;
        String[] lines = new String[size];
        for (int i = 0; i < size; i++) {
            IRegion region = tracker.getLineInformation(i);
            int offset = region.getOffset();
            lines[i] = source.substring(offset, offset + region.getLength());
        }
        Strings.trimIndentation(lines, tabWidth, indentWidth, considerFirstLine);
        StringBuffer result = new StringBuffer();
        int last = size - 1;
        for (int i = 0; i < size; i++) {
            result.append(lines[i]);
            if (i < last)
                result.append(tracker.getLineDelimiter(i));
        }
        return result.toString();
    } catch (BadLocationException e) {
        //$NON-NLS-1$
        Assert.isTrue(false, "Can not happend");
        return null;
    }
}
Also used : DefaultLineTracker(org.eclipse.jface.text.DefaultLineTracker) StyledString(org.eclipse.jface.viewers.StyledString) IRegion(org.eclipse.jface.text.IRegion) BadLocationException(org.eclipse.jface.text.BadLocationException) ILineTracker(org.eclipse.jface.text.ILineTracker)

Example 4 with ILineTracker

use of org.eclipse.jface.text.ILineTracker in project flux by eclipse.

the class Strings method trimIndentation.

public static String trimIndentation(String source, int tabWidth, int indentWidth, boolean considerFirstLine) {
    try {
        ILineTracker tracker = new DefaultLineTracker();
        tracker.set(source);
        int size = tracker.getNumberOfLines();
        if (size == 1)
            return source;
        String[] lines = new String[size];
        for (int i = 0; i < size; i++) {
            IRegion region = tracker.getLineInformation(i);
            int offset = region.getOffset();
            lines[i] = source.substring(offset, offset + region.getLength());
        }
        Strings.trimIndentation(lines, tabWidth, indentWidth, considerFirstLine);
        StringBuffer result = new StringBuffer();
        int last = size - 1;
        for (int i = 0; i < size; i++) {
            result.append(lines[i]);
            if (i < last)
                result.append(tracker.getLineDelimiter(i));
        }
        return result.toString();
    } catch (BadLocationException e) {
        //$NON-NLS-1$
        Assert.isTrue(false, "Can not happend");
        return null;
    }
}
Also used : DefaultLineTracker(org.eclipse.jface.text.DefaultLineTracker) StyledString(org.eclipse.jface.viewers.StyledString) IRegion(org.eclipse.jface.text.IRegion) BadLocationException(org.eclipse.jface.text.BadLocationException) ILineTracker(org.eclipse.jface.text.ILineTracker)

Example 5 with ILineTracker

use of org.eclipse.jface.text.ILineTracker in project flux by eclipse.

the class Strings method convertIntoLines.

/**
	 * Converts the given string into an array of lines. The lines
	 * don't contain any line delimiter characters.
	 *
	 * @param input the string
	 * @return the string converted into an array of strings. Returns <code>
	 * 	null</code> if the input string can't be converted in an array of lines.
	 */
public static String[] convertIntoLines(String input) {
    try {
        ILineTracker tracker = new DefaultLineTracker();
        tracker.set(input);
        int size = tracker.getNumberOfLines();
        String[] result = new String[size];
        for (int i = 0; i < size; i++) {
            IRegion region = tracker.getLineInformation(i);
            int offset = region.getOffset();
            result[i] = input.substring(offset, offset + region.getLength());
        }
        return result;
    } catch (BadLocationException e) {
        return null;
    }
}
Also used : DefaultLineTracker(org.eclipse.jface.text.DefaultLineTracker) StyledString(org.eclipse.jface.viewers.StyledString) IRegion(org.eclipse.jface.text.IRegion) BadLocationException(org.eclipse.jface.text.BadLocationException) ILineTracker(org.eclipse.jface.text.ILineTracker)

Aggregations

BadLocationException (org.eclipse.jface.text.BadLocationException)6 DefaultLineTracker (org.eclipse.jface.text.DefaultLineTracker)6 ILineTracker (org.eclipse.jface.text.ILineTracker)6 IRegion (org.eclipse.jface.text.IRegion)6 StyledString (org.eclipse.jface.viewers.StyledString)4