2012-01-22 10 views
8

¿Hay alguna herramienta que me permita especificar el resaltado de sintaxis para un idioma determinado, y luego generar archivos de resaltado de sintaxis para algunos de los editores más comunes?Herramienta de resaltado de sintaxis/lenguaje que funciona con varios editores

Lo pido porque estoy desarrollando un lenguaje específico de dominio, y me gustaría proporcionar soporte de resaltado de sintaxis para dicho lenguaje. Sin embargo, no quiero escribir archivos de resaltado de sintaxis separados para cada editor (Vim, Notepad ++, Visual Studio, etc.).

Este tipo de traducción parece posible, ya que los conceptos básicos para resaltar la sintaxis generalmente son independientes de qué editor está utilizando. Simplemente no sé si tal cosa ya existe.

Respuesta

1

No sé nada de eso, pero en mi opinión sería bastante fácil de producir. Por ejemplo, uno puede crear un formato universal basado en XML (en forma de un esquema DTD/XSL) y usar transformaciones XSLT específicas del editor. Luego, cada creador del editor (u otra persona) crearía un archivo XSLT para su editor. Y para cada idioma nuevo, se crearía un XML.

El mayor problema es especificar un lenguaje tal que satisfaga al menos los siguientes criterios:

  • Integridad: debe contener todas las características posibles de configuración de resaltado de sintaxis.
  • Facilidad de uso: no debe ser demasiado complicado para lenguajes simples.
  • Apertura y estandarización: debe ser popular para ser útil. Para ser popular, debe ser abierto y estandarizado.
+0

Tenía pensamientos similares sobre la creación de un formato/lenguaje universal para el resaltado de sintaxis (I estaba pensando en XML también). Sería REALMENTE genial si pudieras hacer traducciones bidireccionales de modo que si alguien ya conociera un formato de sintaxis existente, pudieran traducirlo al formato 'universal', luego a todos los otros formatos. Parece una buena idea, tal vez lo investigue más cuando tenga el tiempo: o) – simplyletgo

2

Bastantes de uso editores scintilla (http://www.scintilla.org/) para la edición de código fuente y resaltado de sintaxis: por ejemplo Notepad ++ en Windows, gedit en gnome, Code :: Blocks. Por lo tanto, puede considerar agregar una definición de sintaxis a Scintilla. Por lo que yo entiendo, esto es una cuestión de escribir una definición xml de un lexer para su lenguaje (ver por ejemplo this page para Code :: Blocks)

Cuestiones relacionadas