2009-12-05 14 views
5

Como usted sabe, hay un resaltador de sintaxis para PHP llamado GeSHi que admite una gran cantidad de idiomas de programación o formatos de código.Resaltador de sintaxis para Java

Sin embargo, no pude encontrar una biblioteca para Java que admita los lenguajes de programación que necesito (ADA, ASP, BNF, Bash, Brainfuck, C, C++, C#, CSS, Cobol, ColdFusion, D, Fortran, Haskell, HTML, INI (Config), Java, JavaScript, Lisp, Marca, Objetivo C, PASCAL, Perl, PHP, PLSQL, Prólogo, Python, Ruby, Esquema, SQL, VB.NET, Verilog, VHDL, Visual Basic, XML .)

¿Conoces una o debo preferir una forma ineficiente que es recuperar el código resaltado de un servidor PHP remoto a través de la transacción http? ¿Algunas ideas?

Gracias.

+0

Qué quiere decir, 'escrito en Java'? – bmargulies

Respuesta

5

Eche un vistazo a JHighlighter o jEdit Syntax Package. Todos los idiomas mencionados no son compatibles de forma inmediata. Sin embargo, tiene las fuentes, por lo que creo que debería ser posible agregar soporte de idiomas.

No es una respuesta directa, pero, si el resaltado de sintaxis del lado del cliente es una opción, la SyntaxHighlighter biblioteca de Alex Gorbachov es una impresionante biblioteca de Javascript, es compatible con una gran cantidad de languages y es altamente extensible.

+1

Nice links. Gracias. –

+0

Prefiero el SyntaxHighlighter: funciona muy bien, mantiene el trabajo fuera del servidor, reduce el tráfico y deja el código intacto para los motores de búsqueda. –

+0

@Ondra Estoy totalmente de acuerdo contigo. En realidad, SyntaxHighlighter es tan bueno que se convirtió en una especie de estándar de facto en la web hoy en día. –

3

Usted podría utilizar Pygments través de Jython. No será tan rápido como una solución Java, pero mucho más rápido que interactuar con un servidor remoto.

Al margen de eso, podría ejecutar Geshi localmente y canalizar el código fuente a través de él, que también superaría un viaje de ida y vuelta HTTP.

+0

Buena solución. Gracias. –

0

jedit es un editor de texto con soporte de resaltado de sintaxis para más de 170 idiomas a través de "modos". También le permite especificar sus propias sintaxis. Usted puede utilizar el componente StandaloneTextArea en su propia aplicación de la siguiente manera:

  • Extracto de fuente (por ejemplo: jedit4.3source.tar.bz2 en d: \ source \ jedit)
  • Uso hormiga para copiar todo el área de texto archivos a .. \ área de texto por ejemplo:

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

  • Sin embargo, no alcanza la BufferUndoListener.java archivo. Copiar de forma manual mediante la ejecución de

    D: \ Source \ jedit \ jEdit> Copiar org \ GJT \ sp \ jedit \ amortiguar \ BufferUndoListener.java .. \ área de texto \ src \ org \ GJT \ sp \ jedit \ búfer \

  • en Eclipse crear un proyecto Java de la fuente existente en el directorio D: \ Source \ jedit \ área de texto

  • Vaya a org.gjt.sp.jedit.textarea.StandaloneTextArea.java
  • Cambie la línea
mode.setProperty("file","modes/xml.xml"); 

a

mode.setProperty("file","src/modes/xml.xml"); 
  • Ejecutar. Copie y pegue un XML en el editor y vea que el resaltado de sintaxis está funcionando.
+0

que es una buena idea. Gracias. –

0

Un par de marcadores que funcionan muy bien son:

Ambos son fáciles de poner en práctica el lado del cliente, y soportar una amplia variedad de idiomas. También tienen una amplia gama de temas CSS que hacen que el código se vea como lo hace en tu editor favorito.

1

Parece que es posible ejecutar GeSHi desde Java: GeSHi4J parece ser un contenedor que ejecuta la biblioteca de PHP en la JVM.

Cuestiones relacionadas