8

As you know there is a Syntax highlighter for PHP called GeSHi which supports a great number of Programming Languages or Code formats.

However, I couldn't find such a library for Java which supports programming languages that I need (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.)

Do you know one or should I prefer inefficient way which is retrieving the highlighted code from a remote PHP server via http transaction? Any ideas?

Thanks.

1
  • Do you mean, 'written in Java'? Commented Dec 5, 2009 at 20:52

6 Answers 6

9

Two related questions:

What code highlighting libs are there for Java? Where can I find a syntax highlighting library for Java?

And one library I found: http://colorer.sourceforge.net/

Sign up to request clarification or add additional context in comments.

2 Comments

All these have a small number of languages. :( Thanks anyway.
the last link claims: Colorer-take5 supports more than hundred programming languages, scripts and markups. I haven't checked though
5

Have a look at JHighlighter or jEdit Syntax Package. All mentioned languages aren't supported out of the box. However, you have the sources, so I guess it should be possible to add language support.

Not a direct answer but, if client-side syntax highlighting is an option, the SyntaxHighlighter library from Alex Gorbatchev is an awesome javascript library, supports lots of languages and is highly extensible.

2 Comments

I prefer the SyntaxHighlighter - works great, keeps the work out of server, lowers the traffic, leaves the code intact for search engines.
@Ondra I totally agree with you. Actually, SyntaxHighlighter is so great that it became a kind of de facto standard on the web nowadays.
3

You could use Pygments through Jython. Won't be as fast as a Java solution, but much faster than interacting with a remote server.

Barring that, you could run Geshi locally and pipe source code through it, that would also beat an HTTP round trip.

Comments

1

It seems that it is possible to run GeSHi from Java: GeSHi4J it seems to be a wrapper that run the PHP library on the JVM.

Comments

1

There is a port of prettify.js for Java: java-prettify.

It can be used to produce HTML (computed in Java), as I discussed here: Use the java-prettify parser to create HTML

Comments

0

jedit is a text editor with syntax highlighting support for some 170+ languages via "modes". It also allows you to specify your own syntaxes. You can use the StandaloneTextArea component in your own application as follows:

  • Extract source (eg: jedit4.3source.tar.bz2 to d:\source\jedit)
  • Use ant to copy all the textarea files to ..\textarea eg:

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

  • However, it misses the file BufferUndoListener.java. Copy this manually by executing

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

  • In Eclipse create a Java Project from existing source in the directory D:\Source\jedit\textarea

  • Navigate to org.gjt.sp.jedit.textarea.StandaloneTextArea.java
  • Change the line
mode.setProperty("file","modes/xml.xml");

to

mode.setProperty("file","src/modes/xml.xml");
  • Run. Copy and paste an XML into the editor and see the syntax highlighting is working.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.