我该在哪里找到Java语法高亮库?

27

我正在使用Java编写源代码编辑器(用于Java源代码),我想添加简单的语法高亮(仅需对关键字进行区分着色)。 有什么建议吗?


1
尝试以支持mmyers的答案的方式改进此内容。 - Shog9
1
@Shog9:修改问题以适应答案?这合适吗? - Paul Sonier
4
不确定你是从哪里得出这个观点的,但你错了。那正是 Stack Overflow 的用途所在。 - GEOCHET
4
由于最初的问题完全无法理解,我曾经投反对票。而Marc G在声称SO不适合简单问题上完全是错误的。请参考Jeff和Joel在最新播客中的看法。 - TheTXI
1
@MarcG:你如何理解它并不重要。你最初的陈述是完全错误的。 - GEOCHET
显示剩余15条评论
6个回答

22

也许类似于JSyntaxPane这样的东西?

一个非常简单易用、可扩展且支持少数语言的JEditorKit。主要目标是使得在Java Swing编辑器中实现具备语法高亮显示的漂亮外观变得容易。


3
这个已不再维护。新项目请使用RSyntaxTextArea - Navin

14

1
这么糟糕吗?我正在项目中使用它,我认为它很棒。此外,如果你想编写自己的代码,你可以学习它,因为它是开源的。 - cort
尝试过了,看起来很不错,喜欢代码折叠等功能。可惜它不支持Python。 - chenyi1976
抱歉,它只支持Python。它的网站误导了我,他们的小程序也是如此。 - chenyi1976
2
这个回答应该得到更多的赞同和采纳 - 据我所知,这是唯一仍在维护的库。 - Dexter

4
你首先应该考虑使用常见的解析器从源代码中创建AST(抽象语法树)。有一些工具可用,我在互联网上找到的第一个是javaparser。看起来这个解析器也记录了行号和列号,因此来自javaparser的AST可以作为编辑器的良好模型。
只需处理树形结构,为AST节点类型定义颜色并打印即可。

2

你可能想看一下现有的编辑器(例如Notepad ++- http://notepad-plus.sourceforge.net/uk/site.htm),并查看如何进行用户定义的语法高亮显示(要检查的插件之一是Gmod 10 Lua Syntax Highlighter)。 我敢打赌,Java(和其他语言)也是以类似的方式完成的...


1
你应该看看谷歌的 prettify.js。里面有一些非常棒的技巧,你可能会对语法高亮有更强大的感受。

2
@ktulur:你真的看过它吗?它可以对许多语言进行语法高亮,包括Java。这将是学习如何编写支持多种语言的语法高亮算法的好方法。 - GEOCHET
好的,抱歉,我在考虑使用现有的组件,而不是编写自己的东西。这就是为什么当我看到“.js”时,我会想“什么鬼?” - cort
有时候教别人学习,而不是仅仅重复使用,也是非常好的。 - GEOCHET
1
有时候是这样,但通常来说,重用不是更好吗?我认为这样你可以把时间花在自己的原创作品上。 - cort
如果那是真的,他为什么要首先编写一个Java编辑器呢? - GEOCHET
有一个prettify.js的Java端口,它是java-prettify:https://code.google.com/p/java-prettify/ - Jmini

-4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接