Pregunta

Como se sabe que hay un marcador de sintaxis para PHP llamada GeSHi que soporta un gran número de lenguajes de programación o formatos de código.

Sin embargo, no pude encontrar una biblioteca como para Java que soporta 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, Hacer, Objective C, Pascal, Perl, PHP, PLSQL, Prolog, Python, Ruby, Scheme, SQL, VB.NET, Verilog, VHDL, Visual Basic, XML. )

¿Sabe usted una o debería preferir forma ineficiente que está recuperando el código resaltado desde un servidor remoto a través de PHP transacción http? ¿Alguna idea?

Gracias.

Otros consejos

Tener un vistazo a JHighlighter o jEdit sintaxis del paquete. Todos los idiomas mencionados no son compatibles fuera de la caja. Sin embargo, usted tiene las fuentes, así que supongo que debe ser posible añadir soporte de idiomas.

No es una respuesta directa, pero, si el resaltado de sintaxis del lado del cliente es una opción, la href="http://alexgorbatchev.com/" rel="nofollow noreferrer"> SyntaxHighlighter biblioteca de Alex Gorbachov es una biblioteca JavaScript impresionante, es compatible con una gran cantidad de idiomas y es altamente extensible .

Se puede usar Pygments través de Jython. no será tan rápido como una solución de Java, pero mucho más rápido que interactuar con un servidor remoto.

Aparte de eso, usted podría funcionar Geshi localmente y el código fuente de la tubería a través de él, eso también vencer a un viaje redondo HTTP.

Parece que es posible ejecutar Geshi de Java: GeSHi4J parece ser una envoltura que ejecuta la biblioteca PHP en la JVM.

Hay un puerto de prettify.js para Java: java-prettify .

Puede ser utilizado para producir HTML (calculada en Java), como ya comenté aquí: Utilice el analizador de Java-embellecer para crear HTML

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

  • fuente de extracto (por ejemplo: jedit4.3source.tar.bz2 a d: \ source \ jedit)
  • Utilice la hormiga para copiar todos los archivos de área de texto a .. \ área de texto, por ejemplo:

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

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

    D: \ Source \ jedit \ jEdit> copiar org \ GJT \ sp \ jedit \ amortiguar \ BufferUndoListener.java .. \ área de texto \ src \ org \ GJT \ sp \ jedit \ amortiguar \

  • 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. Copiar y pegar un código XML en el editor y ver el resaltado de sintaxis está trabajando.

Un par de marcadores que funciona muy bien son:

Ambos son fáciles de implementar el lado del cliente, y soportar una amplia variedad de idiomas. También tienen una amplia gama de temas CSS apuesto que hacen que la mirada código como lo hace en su editor favorito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top