【发布时间】:2015-11-23 13:37:26
【问题描述】:
假设我有一个受 C 编辑器启发的自定义编辑器,但除了它的所有功能之外,我还想添加更多我自己的功能,并且可能会更改 C 编辑器的一些功能以更适合我。
现在核心编辑器类可以很容易地扩展 C 编辑器类并覆盖方法或添加更多方法。
但是如何导入扩展和扩展点以使它们在我正在扩展的编辑器中完全正常工作?
一些按钮是灰色的,尽管快捷方式出于某种原因可以使用。(即“显示空白字符”和“切换块选择”)。像“显示标记出现”这样的一些按钮完全丢失了。一些按钮,如 Next & Previous Annotation 是灰色的,也不能通过快捷方式工作。
我收集了其中一些是在 C 编辑器中添加的扩展,但不尝试从头开始复制它们,有没有办法在我的编辑器中继承它们?
C 编辑器似乎在做这样的事情,因为它似乎不包含“切换块选择”的扩展,它存在于它扩展的 TextEditor 中。
【问题讨论】:
-
感觉你的做法是错误的,即你应该扩展(在 plugin.xml 中而不是 java 意义上)现有的 C 编辑器。也许你可以解释你想提供什么类型的扩展?是新的上下文菜单、新的语法高亮还是其他?已经有很多很多地方可以扩展编辑器,如果您对现有编辑器有一个新的扩展点,那么 Eclipse CDT 开发人员将感谢提供回所需的钩子。
-
无论如何,继续尝试解决您提出的问题。你在扩展
org.eclipse.cdt.internal.ui.editor.CEditor吗?例如您可能正在获取键绑定,因为您正在使用 CEditor 的键绑定范围,请参阅initializeKeyBindingScopes。org.eclipse.ui.editors扩展点的contributorClass字段你填了吗? -
是的!!!就是这样!我添加到contributorClass 字段:org.eclipse.cdt.internal.ui.editor.CEditorActionContributor,现在所有按钮都出现并工作了。谢谢!我可能仍然缺少它的一些功能,可以通过其他方式添加,但这真的对我帮助很大!
-
太好了,我将我的评论的那部分提升为答案,如果能获得支持/接受会很棒:-)
-
PS,如果你有新问题,请提出新问题,如果你用 eclipse-cdt 标记它们,我可能会看到它们。
标签: java eclipse eclipse-plugin editor