1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Code streamlining.

This commit is contained in:
Sergey Prigogin 2011-03-27 04:46:30 +00:00
parent df89c8daab
commit d45340dc7d

View file

@ -21,7 +21,6 @@ import org.eclipse.cdt.core.formatter.DefaultCodeFormatterConstants;
import org.eclipse.cdt.core.model.ICProject;
public class CodeFormatterUtil {
/**
* Creates a string that represents the given number of indentation units.
* The returned string can contain tabs and/or spaces depending on the core
@ -113,13 +112,17 @@ public class CodeFormatterUtil {
}
/**
* Creates edits that describe how to format the given string. Returns <code>null</code> if the code could not be formatted for the given kind.
* Creates edits that describe how to format the given string. Returns <code>null</code>
* if the code could not be formatted for the given kind.
*
* @throws IllegalArgumentException If the offset and length are not inside the string, a
* IllegalArgumentException is thrown.
*/
public static TextEdit format(int kind, String source, int offset, int length, int indentationLevel, String lineSeparator, Map<String, ?> options) {
public static TextEdit format(int kind, String source, int offset, int length,
int indentationLevel, String lineSeparator, Map<String, ?> options) {
if (offset < 0 || length < 0 || offset + length > source.length()) {
throw new IllegalArgumentException("offset or length outside of string. offset: " + offset + ", length: " + length + ", string size: " + source.length()); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
throw new IllegalArgumentException("offset or length outside of string. offset: " + //$NON-NLS-1$
offset + ", length: " + length + ", string size: " + source.length()); //$NON-NLS-1$//$NON-NLS-2$
}
CodeFormatter formatter = ToolFactory.createCodeFormatter(options);
if (formatter != null) {
@ -128,7 +131,8 @@ public class CodeFormatterUtil {
return null;
}
public static TextEdit format(int kind, String source, int indentationLevel, String lineSeparator, Map<String, ?> options) {
public static TextEdit format(int kind, String source, int indentationLevel,
String lineSeparator, Map<String, ?> options) {
String prefix= ""; //$NON-NLS-1$
String suffix= ""; //$NON-NLS-1$
switch (kind) {
@ -143,9 +147,16 @@ public class CodeFormatterUtil {
break;
}
String tuSource= prefix + source + suffix;
TextEdit edit= format(CodeFormatter.K_TRANSLATION_UNIT, tuSource, prefix.length(), source.length(), indentationLevel, lineSeparator, options);
if (edit != null && prefix.length() > 0) {
edit.moveTree(-prefix.length());
return format(tuSource, prefix.length(), source.length(), indentationLevel, lineSeparator,
options);
}
private static TextEdit format(String source, int offset, int length, int indentationLevel,
String lineSeparator, Map<String, ?> options) {
TextEdit edit= format(CodeFormatter.K_TRANSLATION_UNIT, source, offset, length,
indentationLevel, lineSeparator, options);
if (edit != null && offset > 0) {
edit.moveTree(-offset);
}
return edit;
}