2009-05-14 15 views
26

Estoy escribiendo un editor de código fuente en Java (para el código fuente de Java), y me gustaría agregar un resaltado de sintaxis simple (el colorido distintivo para las palabras clave sería suficiente). ¿Alguna sugerencia?¿Dónde puedo encontrar una biblioteca de resaltado de sintaxis para Java?

+0

no sé si me gustaría incluso utilizar el "casi" en la frase "casi incomprensible". –

+1

Trató de mejorar esto de una manera que apoye la respuesta de mmyers. – Shog9

+0

Acabo de ir con la parte "código para resaltar la sintaxis" e ignoré el resto. No tengo idea si eso es lo que está buscando o no. –

Respuesta

22

¿Algo como JSyntaxPane, quizás?

Muy fácil de usar y extender JEditorKit que admite pocos idiomas. El objetivo principal es facilitar el diseño atractivo de Java Swing Editors con soporte para Syntax Highlighting.

+2

Esto ya no se mantiene. Utilice ['RSyntaxTextArea'] (https://github.com/bobbylight/RSyntaxTextArea) para nuevos proyectos. – Navin

2

posible que desee ver en un editor existente (por ejemplo Notepad ++ - http://notepad-plus.sourceforge.net/uk/site.htm) y ver cómo el resaltado de sintaxis definida por el usuario se realiza (oneo de los plugins para comprobar - Gmod 10 Lua de resaltado de sintaxis). Apuesto a que Java (y otros idiomas) se hacen de manera similar ...

11

¿Qué hay de RSyntaxTextArea? Utiliza un modified BSD license.

+1

¿Tan malo? Lo estoy usando en un proyecto y creo que es genial. Además, si quieres codificar tus propias cosas, puedes estudiarlo, ya que es de código abierto. – ktulur

+0

Probado y se ve muy bien, al igual que las funciones como plegado de código. No es compatible con Python, es una pena. – chenyi1976

+0

lo siento es compatible con Python. su sitio web me engañó, y su applet también. – chenyi1976

1

Debe consultar el prettify.js de Google. Aquí hay algunos trucos bastante buenos, y es posible que tengas una sensación más sólida para resaltar la sintaxis.

+2

Eso es javaScript, no Java – ktulur

+2

@ktulur: ¿Realmente lo miraste? Resalta la sintaxis para muchos idiomas, incluido Java. Esta será una excelente forma de aprender a escribir un algoritmo de resaltado de sintaxis. Específicamente uno que puede soportar múltiples idiomas. – GEOCHET

+0

Ok, lo siento, estaba pensando en usar un componente existente, no en escribir sus propias cosas. Es por eso que cuando he leído ".js", estaba como "¿wtf?" – ktulur

3

Primero debe pensar en usar un analizador común para crear un AST (árbol de sintaxis abstracta) a partir de las fuentes. Existen algunas herramientas, primero encuentro google buscando en Internet javaparser. Parece que este analizador también registra números de línea y columnas, por lo que el AST de javaparser puede ser un buen modelo para el editor.

Simplemente procese el árbol, defina los colores para los tipos de nodo AST e imprímalo.

Cuestiones relacionadas