将CodeFormatter与K_UNKNOWN一起使用将返回null

时间:2016-02-19 17:51:17

标签: eclipse-plugin eclipse-jdt

使用Eclipse Mars 4.5.1尝试此代码:

http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Fguide%2Fjdt_api_codeformatter.htm

相关部分:

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时,它会停止工作 - editnull。我认为这曾经与之前版本的Eclipse一起使用。

由于我不知道在调用格式方法的时候我得到了什么类型的字符串,所以使用K_UNKNOWN的任何方式?

0 个答案:

没有答案