2009-12-05 65 views
5

如您所知,PHP有一个Syntax高亮显示标记GeSHi,它支持大量的编程语言或代码格式。 (ADA,ASP,BNF,Bash,Brainfuck,C,C++,C#,CSS,Cobol,ColdFusion,D,Fortran等)支持的编程语言的Java库不能找到。 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 )语法Highlighter for Java

你知道吗?还是我应该更喜欢低效率的方式,通过http事务从远程PHP服务器检索突出显示的代码?有任何想法吗?

谢谢。

+0

你的意思是, '用Java编写的'? – bmargulies 2009-12-05 20:52:40

回答

5

看看JHighlighterjEdit Syntax Package。所有提到的语言不支持开箱即用。然而,你有来源,所以我猜应该可以添加语言支持。

不是一个直接的答案,但如果客户端语法高亮是一个选项,从亚历克斯Gorbatchev的SyntaxHighlighter库是一个真棒JavaScript库,支持大量的languages和高度extensible

+1

尼斯链接。谢谢。 – 2009-12-06 08:51:36

+0

我更喜欢SyntaxHighlighter - 效果很好,可以保持工作不在服务器上,降低流量,保持搜索引擎的完整性。 – 2010-01-17 07:02:06

+0

@Ondra我完全同意你的看法。实际上,SyntaxHighlighter非常棒,现在它已成为网络上的一种事实标准。 – 2010-01-17 07:19:18

3

您可以通过使用的Jython Pygments。不会像Java解决方案那么快,但比与远程服务器交互要快得多。除此之外,您可以在本地运行Geshi并通过它管理源代码,这也将打败HTTP往返。

+0

好的解决方案,谢谢。 – 2009-12-06 08:50:13

0

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

  • 提取物源(例如:jedit4.3source.tar.bz2到d:\源\ jEdit的)
  • 使用Ant复制所有的textarea文件.. \ textarea的如:

    d:\来源\ jEdit的\的jEdit>蚂蚁准备,textarea的

  • 但是,它忽略了文件BufferUndoListener.java。 \源\ jEdit的\的jEdit>复制的有机\ GJT \ SP \ jEdit的\缓冲\ BufferUndoListener.java .. \ textarea的\ SRC \有机\ GJT \ SP \ jEdit的\缓冲\

    :手动通过执行

    d复制此

  • 在Eclipse从现有的源目录d创建一个Java项目:\来源\ jEdit的\ textarea的

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

mode.setProperty("file","src/modes/xml.xml"); 
  • 运行。将XML复制并粘贴到编辑器中,看到语法突出显示正在工作。
+0

这是一个不错的主意,谢谢。 – 2010-02-03 07:36:00

0

一对夫妇的工作非常好荧光笔是:

两者都容易实现客户端,并支持各种语言。他们也有一系列的CSS主题,使代码看起来像你最喜欢的编辑器。

1

看起来有可能从Java运行GeSHiGeSHi4J它似乎是一个在JVM上运行PHP库的包装器。