使用Eclipse Mars 4.5.1尝试此代码:
相关部分:
Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
options.put(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_5);
options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_5);
options.put(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_5);
CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(options);
String source = ...;
TextEdit edit = codeFormatter.format(
CodeFormatter.K_COMPILATION_UNIT,
source,
0,
source.length(),
0,
System.getProperty("line.separator")
);
它可以正常工作,但当我更改为CodeFormatter.K_UNKNOWN
而不是CodeFormatter.K_COMPILATION_UNIT
时,它会停止工作 - edit
为null
。我认为这曾经与之前版本的Eclipse一起使用。
由于我不知道在调用格式方法的时候我得到了什么类型的字符串,所以使用K_UNKNOWN
的任何方式?