Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java实现编辑器_Java_Editor - Fatal编程技术网

用Java实现编辑器

用Java实现编辑器,java,editor,Java,Editor,我需要在Java中实现三种自定义语言的编辑器(intellisense、search&replace、语法突出显示、类似C#visual studio中的区域)。这方面最好的课程是什么(杰迪托、杰帕内尔或其他) 您确定要从头开始实施此功能吗 您可能应该使用一些框架来添加一些语言支持。我建议您查看eclipse插件或intellij idea(社区版)插件 看一看或看一看。两者都包含用于桌面应用程序的大量类和小部件,包括可自定义的编辑器 下面是一篇关于使用后一个工具包构建自定义编辑器的博客:

我需要在Java中实现三种自定义语言的编辑器(intellisense、search&replace、语法突出显示、类似C#visual studio中的区域)。这方面最好的课程是什么(杰迪托、杰帕内尔或其他)

您确定要从头开始实施此功能吗

您可能应该使用一些框架来添加一些语言支持。我建议您查看eclipse插件或intellij idea(社区版)插件

看一看或看一看。两者都包含用于桌面应用程序的大量类和小部件,包括可自定义的编辑器

下面是一篇关于使用后一个工具包构建自定义编辑器的博客:

。。。NetBeans平台包含一个名为“NetBeans编辑器库”的库。据我所知,这是最强大的开源Swing文本库之一,完全符合Swing文本API


简短的回答这是一项艰巨的工作,涉及的摆动部件远远不止一个

中等回复很久以前,文本编辑器组件作为一个单独的组件提供。我建议你花五分钟在谷歌上快速搜索。它可以在这方面产生有趣的结果

Long reply您正在寻找的大多数功能(智能感知、语法突出显示)都需要语法,或者至少需要一个非常好的语言标记器来识别关键元素。这反过来又意味着一个非常有效的模型(在这个意义上,它将是功能丰富、时间长且内存小的模型)。你别无选择,只能自己写了。关于搜索和替换,一旦您有了文档,您就必须将文本框中的标记与文档的元素相匹配。在典型情况下,同一文档流中使用的元素可能跨越多个节点。典型的

for(int index=0; index<size; index++) {
     println(index);
}

for(int index=0;index看一看。它是eclipse平台上的一个框架,可以自动生成大部分基础结构(如语法高亮显示和自动完成)从语言语法来看,基本上你只需几分钟就能得到一个功能强大的编辑器,而不是几个月的工作。

如果你熟悉Swing,也可以看看NetBeans平台。它是一个基于Swing的RCP。NetBeans IDE本身构建在NetBeans平台上,你可以重用它的模块,例如编辑器:


XText不是有点过头了吗?我的意思是……我使用过它,虽然它提供了所需的功能,但使用它首先需要定义一个语法,可以准确地定义为非平凡的。@Riduidel:它比手动实现所有所需的功能要简单得多。事实上,我要说的是,您需要一个正式的语法无论如何,在你能用一种语言做一些有用的事情之前……比如编译或解释它。@Michael_Borgwardt,理论上,你是完全正确的。不幸的是,以前设计我使用XText的语言的架构师并不这么认为,所以他们在没有这种工具的情况下为它创建了一种语言和一个解释器。显然,这种语言年龄是一团乱麻。。。