WEB开发网
开发学院软件开发Java 扩展 JDT 实现自动代码注释与格式化 阅读

扩展 JDT 实现自动代码注释与格式化

 2010-07-30 00:00:00 来源:WEB开发网   
核心提示: 清单 6. 得到工作副本缓存//得到工作副本缓存IBufferbuffer=parentCU.getBuffer();修改代码Eclipse 中 Java 代码包含的注释种类及顺序是由 Code >> New Java File模板决定,注释的具体内容由 Comments下相应的模板

清单 6. 得到工作副本缓存

 // 得到工作副本缓存 
 IBuffer buffer = parentCU.getBuffer(); 

修改代码

Eclipse 中 Java 代码包含的注释种类及顺序是由 Code >> New Java File模板决定,注释的具体内容由 Comments下相应的模板决定。为使工作空间内的代码具有一致的注释风格,首先应按照代码构建模板的形式重新构建代码,处理是否含有文件注释、类注释或其他的信息;接着,处理重新构建代码时丢失的重要信息,如引用包;然后,处理重新构建代码时未处理的类体内部代码注释,如方法注释和字段注释;最后,将重新构建后的代码格式化。这样,Java 代码就具有了规范的注释及良好的风格。

重新构建 Java 代码

CodeGeneration(org.eclipse.jdt.ui)提供了获取 Code Templates首选项页面的各类模板信息的重载静态方法,并以字符串的形式返回,如文件注释、类注释、方法注释、字段注释、新 Java 文件等。开发人员可扩展其方法得到不同的模板信息。

在重新构建 Java 文件时,按照模板格式重新生成代码,并替换原有代码,最后与原文件进行同步(参见 清单 7)。

清单 7. 重新构建 Java 代码

 // 得到 Java 代码中的类 
 IType type = parentCU.getTypes()[0]; 
 // 得到类的内容 
 String typeContent = type.getSource(); 
 // 如果类含有 Javadoc,取类内容的子串,去除注释内容 
 if (type.getJavadocRange() != null) 
  typeContent = typeContent.substring(type.getJavadocRange().getOffset() 
 + type.getJavadocRange().getLength() - type.getSourceRange().getOffset()); 
 // 调用 CodeGeneration 的获得新 Java 文件的方法,重新构建代码 
 String content = CodeGeneration.getCompilationUnitContent(parentCU, 
  CodeGeneration.getTypeComment(parentCU, type.getElementName(), 
  lineDelimiter), typeContent, lineDelimiter); 
 // 用新得到的 Java 代码替换原有代码 
 buffer.replace(0, parentCU.getSourceRange().getLength(), content); 
 // 同步 
 JavaModelUtil.reconcile(parentCU); 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:扩展 JDT 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接