用于Java的语法Highlighter

如您所知,有一个名为GeSHi的 PHP语法荧光笔,它支持大量的编程语言或代码格式。

但是,我找不到这样的Java库,它支持我需要的编程语言(ADA,ASP,BNF,Bash,Brainfuck,C,C ++,C#,CSS,Cobol,ColdFusion,D,Fortran,Haskell,HTML, INI(Config),Java,JavaScript,Lisp,Make,Objective C,PASCAL,Perl,PHP,PLSQL,Prolog,Python,Ruby,Scheme,SQL,VB.NET,Verilog,VHDL,Visual Basic,XML。)

你知道一个或者我是否应该选择通过http事务从远程PHP服务器检索突出显示的代码的低效方式? 有任何想法吗?

谢谢。

两个相关问题:

什么代码突出显示了lib的库? 在哪里可以找到用于Java的语法高亮库?

我找到了一个图书馆: http : //colorer.sourceforge.net/

看看JHighlighter或jEdit语法包 。 所有提及的语言都不支持开箱即用。 但是,你有源,所以我想应该可以添加语言支持。

不是直接的答案,但是,如果客户端语法突出显示是一个选项,Alex Gorbatchev的SyntaxHighlighter库是一个很棒的JavaScript库,支持许多语言,并且是高度可扩展的 。

你可以通过Jython使用Pygments 。 不会像Java解决方案那么快,但比与远程服务器交互要快得多。

除此之外,您可以在本地运行Geshi并通过它管道源代码,这也将击败HTTP往返。

似乎可以从Java运行GeSHi : GeSHi4J它似乎是在JVM上运行PHP库的包装器。

jedit是一个文本编辑器,通过“模式”语法突出显示支持170多种语言。 它还允许您指定自己的语法。 您可以在自己的应用程序中使用StandaloneTextArea组件,如下所示:

  • 提取源(例如:jedit4.3source.tar.bz2到d:\ source \ jedit)
  • 使用ant将所有textarea文件复制到.. \ textarea,例如:

    D:\ Source \ jedit \ jEdit> ant prepare-textArea

  • 但是,它错过了文件BufferUndoListener.java。 通过执行手动复制

    D:\ Source \ jedit \ jEdit> copy org \ gjt \ sp \ jedit \ buffer \ BufferUndoListener.java .. \ textarea \ src \ org \ gjt \ sp \ jedit \ buffer \

  • 在Eclipse中,从目录D:\ Source \ jedit \ textarea中的现有源创建Java项目

  • 导航到org.gjt.sp.jedit.textarea.StandaloneTextArea.java
  • 改变线
mode.setProperty("file","modes/xml.xml"); 

 mode.setProperty("file","src/modes/xml.xml"); 
  • 跑。 将XML复制并粘贴到编辑器中,然后查看语法突出显示是否有效。

一些效果很好的荧光笔是:

  • highlight.js
  • prettify.js

两者都易于实现客户端,并支持多种语言。 它们还有一系列可观的css主题,使代码看起来就像你喜欢的编辑器一样。

有一个用于Java的prettify.js端口: java-prettify 。

它可以用来生成HTML(用Java计算),正如我在这里讨论的: 使用java-prettify解析器创建HTML

Interesting Posts