eclipse - 就地 ("Quick-Assist"或者更简单的东西)源代码修饰符?

标签 eclipse

Eclipse 已经有了非常令人印象深刻且有用的东西,我称之为“源代码修饰符”(请建议一个更好的名称)。

例如,它具有“快速修复”、“单词补全”、“外部化字符串”等通过菜单(或组合键)修改源代码的功能。

现在,我希望添加我自己的“源代码修饰符”功能:我想:

  1. 突出显示(选择)任意字符串。
  2. 右键单击它
  3. 使用我编写的函数(最好用 Java 编写)调用一个菜单项,将该字符串“翻译”为另一个字符串。类似于当前默认上下文菜单上的“快速修复”或“替换为”。

这在 Eclipse 中可能吗?

如果是这样,我需要做什么才能实现这一目标?

最佳答案

简短回答:

快速协助必须修改AST Java 代码。本质上,您必须将 org.eclipse.jdt.core.dom.SimpleName 节点替换为您想要的节点。

长答案:

org.eclipse.jdt.ui.quickAssistProcessors 扩展点使您能够贡献自己的 Java 代码快速辅助。

要为扩展点创建新扩展,您需要首先在plugin.xml 中提供所需的扩展。例如,JDT定义了以下处理器

   <extension
         point="org.eclipse.jdt.ui.quickAssistProcessors">
      <quickAssistProcessor
            name="%defaultQuickAssistProcessor"
            class="org.eclipse.jdt.internal.ui.text.correction.QuickAssistProcessor"
            id="org.eclipse.jdt.ui.text.correction.QuickAssistProcessor">
      </quickAssistProcessor>
   </extension>

(有关各个属性的说明,请参阅扩展点文档)

然后需要创建实现org.eclipse.jdt.ui.text.java.IQuickAssistProcessor接口(interface)的类,并修改该类中的AST。 (该类与您在声明扩展时指定的类相同)

提供正确的 IJavaCompletionProposal

JDT 为纠正建议提供以下默认实现,可用于提供快速修复和快速帮助。

  • 更改更正提案
  • CU修正提案
  • ASTRewriteCorrectionProposal

如果您使用 ASTRewrite,则应创建 ASTRewriteCorrectionProposal。

ASTView插件

这将帮助您可视化 Java 源文件的 AST http://www.eclipse.org/jdt/ui/astview/index.php

关于eclipse - 就地 ("Quick-Assist"或者更简单的东西)源代码修饰符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9708758/

相关文章:

android - ADT 需要 'org.eclipse.wst.sse.core 0.0.0' 但找不到

android - 如何导航到父 Activity

java - 最小化开关盒

eclipse - 如何制作 Eclipse 和 mvn appengine :devserver talk to each other?

android - Eclipse Logcat 窗口切断异常堆栈跟踪

eclipse - 在包资源管理器 View 中过滤空目录

java - 将 ActiveMQ 服务与 Web 服务集成 (Mule ESB)

java - Eclipse 找不到 JVM

c++ - 缺少 Libcrypto++ 共享库

java - 从所需的 .class 文件间接引用