首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用插件扩展eclipse java编辑器的功能?

如何使用插件扩展eclipse java编辑器的功能?
EN

Stack Overflow用户
提问于 2011-02-16 22:47:40
回答 4查看 1.1K关注 0票数 1

希望有人能帮助我,给我一个提示和出路。现在,我正在参与一个雄心勃勃的项目,试图创建混合数学和编程的IDE。经过大量的前期研究后,我们决定使用eclipse作为基础,并以某种方式添加Mathematica,maple功能。一般来说,我们希望能够在java代码中输入数学表达式(a = sin(Pi)+10^2)。此外,这些表达式应该在LaTex视图中显示,就在代码中,以使其对工程师更具可读性,以说明我们希望在注释中实现插入图像的代码。因为我们需要所有的java编辑器功能,在我看来,使用standart eclipse java编辑器是正确的,并学习它与其他对象的行为,例如图像。

所以我的问题是:-有人可以分享开发类似产品的经验吗?-可能会有类似我们将要开发的东西?

也许我会写更多的问题,特别是更紧凑的问题。

EN

回答 4

Stack Overflow用户

发布于 2011-02-17 06:19:14

这确实是一个听起来很有趣的项目。正如Gilbert Le Blanc提到的,Java编辑器针对编辑Java代码进行了高度优化,并不意味着它是可扩展的。

话虽如此,我可以推荐两种选择(一种是遵守规则,另一种是违背规则)。

  1. 而不是直接将您的图像嵌入到Java编辑器中,您可以通过org.eclipse.jdt.ui.JavaEditorTextHovers扩展点实现自己的悬停(因此它将像JavaDoc悬停一样工作),或者在编辑器旁边的单独视图中(因此它将像JavaDoc视图一样工作)。不久前,我实现了一个原型编辑器,它允许您编辑

代码,其中嵌入了CAL (一种函数式

  1. 语言)片段。这些代码片段存储在编辑器内部的一个小窗口中。这是一个原型,并不是所有的东西都工作得很顺利,而且它也在使用Eclipse3.2,但这正是您想要做的事情。编译和运行代码并不容易,但也许您可以看看it....well。我必须找到源代码的EPL变体。在此之前,只需认识到像这样攻击Java编辑器需要一些有关JDT的专业知识,并且您需要小心如何操作,以免无意中破坏了其他东西。

编辑

下面是我所描述的项目的压缩文件。它不会按原样编译,但您可以查看源代码:

试试this link。它应该是世界可见的。

需要注意的是,swt StyledText小部件本身也可以包含其他小部件。这个项目在Java编辑器中利用了这一点。

特别是,看看org.openquark.cal.eclipse.embedded.containing.ContainingEditor类,它是CompilaitonUnitEditor的子类。这个特定的类将第二个文本编辑器(包含的编辑器)嵌入到另一个编辑器(包含的编辑器)中。

另外,请看一下org.openquark.cal.eclipse.embedded.containing.ControlManager.此类管理包含CompilationUnitEditor的样式文本中的不同控件。

这个项目所做的是创建一个类似Java的编辑器,并允许用户在Java编辑器中嵌入另一种语言的编辑器。这些编辑器实际上由包含Java编辑器中的文本支持,但文本由包含的编辑器覆盖。

当文本输入到包含编辑器中时,包含的编辑器会上下移动。此外,您还可以使用键盘在包含的编辑器中获得/失去焦点。

我上次看这段代码已经有好几年了,但是如果你有任何问题,请给我写信或补充这个问题。

票数 3
EN

Stack Overflow用户

发布于 2011-02-16 23:15:33

Eclipse Java编辑器由数百个Java类组成。在这数百个Java类中有一个隐含的假设,即编辑器视图仅用于代码。

在我看来,您会发现为您的数学图像开发一个Mathematica类型的编辑器要容易得多,而不需要使用Java编辑器。您的工程师可以在Eclipse中打开两个编辑器。

如果我的评论没有阻止您,这里是Eclipse Helios的Eclipse documentation,也就是Eclipse3.6

您开始学习的部分称为JDT插件开发人员指南。

当我输入这段代码时,Eclipse网站的响应很慢。您还可以从Eclipse Helios内部访问帮助。

代码语言:javascript
复制
Help -> Help Contents
票数 0
EN

Stack Overflow用户

发布于 2013-04-22 21:13:33

我很清楚你能做什么。首先,您可以打开unicode字符集。这将允许您拥有像希腊人这样的变量,这使得代码更具可读性。General->WorkSpace->Text Encoding = UTF-8。

代码语言:javascript
复制
// Apply spring soft constraint using Erin Catto's method with Semi-Implicit Euler :
// Figure out (ω,ζ) from node sizes, then k=mEff.ω², c=2.mEff.ω.ζ 
double ω = 2.0*π*f;         // ω (angular frequency) 
double k = meff * ω*ω;      // spring stiffness 
double ζ = (b1.ζ + b2.ζ)/2;         // Average out the damping coefficients
double d = 2.0 * meff * ω * ζ;  // damping coefficient
double γ=h*(d+h*k);             // CFM (Constraint Force Mixing)

其次,让LaTeX公式在代码中可见的建议也是最好的。我知道这是可能的,因为我在3年前写了一个,但我在任何地方都找不到代码。我把它发布在一个eclipse插件的论坛上,但是现在它不见了。好消息是我重新写了一遍,因为我需要它--这就是我找到你的帖子的原因。这一次我使用了jlatexmath,它比我上次使用的更好。过去/现在的想法是,您可以将公式作为LaTeX嵌入到注释中,当您将鼠标悬停在LaTeX上时,插件会在工具提示中呈现它。

当我完成后,我会在这里发布一个链接或代码。大部分工作是弄清楚如何让eclipse接受新的悬停控件。J.D.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5017862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档