2012-04-07 15 views
8

Estoy en busca de una herramienta que permitirá que personalizo reglas de resaltado de sintaxis dinámicos:sintaxis dinámico destacando

Ejemplos de sintaxis estática destacando (a los IDE ya lo hacen).

  1. Resalte todas las apariciones de la palabra int como el rojo.

  2. Resalte todas las cadenas (encerradas en ") en azul.

Ejemplos de sintaxis DINÁMICO destacando

  1. Dada una cadena de txt que aparece> dos veces, quiero que destacó púrpura.

  2. Si hago clic en un bloque de texto, me gustaría que todos los bloques de texto en el mismo archivo se resalten en verde.

Supongo que alguien pudo haber creado un resaltador así, pero no puedo encontrar nada en la web. Cualquier comentario sobre la forma:

  1. puedo extender un proyecto existente (a ser posible, me gustaría que se trata de un plugin IDE) para personalizar mis requisitos dinámicos?

  2. En caso de que 1 no exista, ¿Algún lenguaje de plantillas que pueda ser máximamente efectivo para este tipo de proyecto? es decir, cualquier marco que resalte el texto sobre la marcha, dinámicamente, mientras permite la edición, que se extiende fácilmente.

+0

Actualización: He encontrado xtext que parece un buen marco para esto, pero es un poco demasiado pesado para este proyecto (quiero algo que no tenga que volver a compilar cada vez que quiera agregar una nueva regla o gancho de validación). Sin embargo, es poderoso. cualquier otra idea? – jayunit100

+0

¿Alguna sugerencia? Esto suena como un útil complemento IDE –

+0

Me he topado con [EclipseColorer] (http: // colorer.sourceforge.net/eclipsecolorer/index.html) que parece extender un poco las capacidades de resaltado de Eclipse, podría ser un buen lugar para comenzar. –

Respuesta

4

Emacs (www.gnu.org/s/emacs/) debería ser capaz de hacer esto.

Emacs es extremadamente personalizable; codifica (e) las funciones de Lisp para que haga lo que desea. Muchos de los modos específicos del idioma de Emacs hacen resaltado "fijo" de palabras clave; deberías ser capaz de secuestrar esa maquinaria y hacer que la dinámica destaque según te interese. Enormes bibliotecas de código eLisp para tales modos están disponibles en GNU.

+1

¿Podría darnos un ejemplo del código eLisp para lograr algunos de los ejemplos anteriores? –

3

Eclipse hace algo que podría ser exactamente lo que quiere, o al menos muy cerca.

Habilitar "ocurrencias marca" en Preferencias> Java> Editor> Marcar Ocurrencias

Tan pronto como se hace clic en algo así como una variable local va a marcar todas las apariciones de dicha variable en el archivo fuente de corriente.

Esto puede ser muy útil en combinación con "anotaciones". Desactive "Incluir en la navegación siguiente/anterior" para todas las anotaciones excepto "ocurrencias". La forma más fácil es a través de las flechas arriba/abajo en la interfaz de usuario. Haga clic en la pequeña flecha negra hacia abajo junto a la gran flecha amarilla hacia arriba o hacia abajo en la barra de herramientas. Ahora puede usar coma y punto para moverse a través de todas las ocurrencias que ha resaltado.

+0

esta es una característica interesante, pero de nuevo, estoy buscando un marco más completo. – jayunit100

3

La herramienta de resaltado Netbeans también es bastante completa y configurable.

Resalte todas las apariciones de la palabra "int" en rojo.

  • en NetBeans, no hay ninguna entrada por defecto para esta palabra clave en particular, son primitiva eficacia en el grupo de Keyword.

Resalte todas las cadenas (encerrados entre "'s) en azul

  • Sí, es posible; la categoría:. String

Dada una cadena de txt que aparece> dos veces, quiero que se resalte morado.

  • Tal vez no entiendo bien este punto, porque si resaltas todas las palabras escritas más de una vez, temo que todo tu código será de color púrpura después de alguna línea de código.

Si hago clic en un bloque de texto, me gustaría que todos los bloques de TXT en el mismo archivo resaltan en color verde.

  • Al seleccionar una palabra haciendo doble clic, todas las apariciones se resaltará y una marca aparecerá en la columna de la derecha en cada línea que contiene la palabra clave. Puede hacer clic en la marca para ir rápidamente a la línea que contiene la incidencia.
  • También puede usar el atajo Ctrl + F3 para buscar una selección y resaltar todas las ocurrencias (puede ser todo lo que desee, no solo las palabras clave). Y luego usar Shift + F3 para encontrar la ocurrencia anterior y F3 encontrar siguiente

puedo extender un proyecto existente (a ser posible, me gustaría que se trata de un plugin IDE) para personalizar mis requisitos dinámicos?

  • nunca he tratado de ampliar las categorías de relieve, parece que es posible, pero con un montón de trabajo! Consulte esto link y este one.
Cuestiones relacionadas