2011-12-20 11 views
22

He estado desarrollando en TWIG últimamente. Es un lenguaje de plantillas html que es muy simple y robusto.Ampliar las definiciones de idioma (para resaltar el código) en el bloc de notas ++

He configurado notepad ++ para tratar automáticamente los archivos .twig como html. Esto está bien, pero no obtengo ningún resaltado de sintaxis en mis funciones de ramas.

La sintaxis twig es increíblemente simple (por diseño) y sería fácil de agregar al bloc de notas ++. El problema es que todo lo que encuentro sobre este tema es sobre la creación de una nueva definición de lenguaje (y no quiero reinventar la definición html), o la modificación del color para bits de sintaxis existentes en un idioma.

¿Hay alguna forma de copiar una definición de idioma y luego modificarla en el bloc de notas ++? Si no, ¿hay alguna forma en el bloc de notas ++ de agregar bits de sintaxis adicionales a una definición de idioma existente?

edición

RAMITA es un lenguaje/motor de plantillas HTML. su sintaxis es la misma que html, con la adición de algunas etiquetas de apertura/cierre (específicamente {%%}, {{}} y {# #}) para las instrucciones de control. se puede leer más sobre él en the twig website

edición # 2

Sobre la base de la respuesta de Brian Deragon, he estado investigando 3 archivos. Aquí está lo que he descubierto/hecho hasta ahora:

  • \ plugins \ APIs \ html.xml - Parece definir palabras clave, para autocompletar. Hice una copia del archivo llamado twig.xml
  • langs.model.xml - De nuevo, una lista de palabras clave, con todos los idiomas en 1 archivo XML. Copié el objeto HTML y reemplacé el nombre y los parámetros ext con twig.
  • stylers.model.xml - Tiene una lista de diferentes elementos e información de estilo (color, color de bg, fuente, etc.) para cada uno. Copié la sección HTML y cambié los parámetros de nombre y desc a twig.

Esos cambios realizados, abrí un archivo twig en el bloc de notas ++, con la esperanza de verlo enumerado en las opciones de idioma. Lamentablemente, no ha aparecido, lo que me lleva a creer que algo de esto está codificado (y, por lo tanto, lo que deseo podría no ser posible).

El stylers.model.xml es interesante, sin embargo. Cada entrada tiene un grupo de elementos, definidos de esta manera:

<LexerType name="twig" desc="TWIG" ext=""> 
    <WordsStyle name="DEFAULT" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> 
    <WordsStyle name="COMMENT" styleID="9" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> 
    <WordsStyle name="TAG" styleID="1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> 
    <WordsStyle name="TAGEND" styleID="11" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> 
    ... 
</LexerType> 

Esos parecen ser donde se definen los estilos para los diferentes elementos. Sin embargo, no puedo encontrar ningún lugar donde se definan esos elementos. langs.model.xml tiene una definición para el inicio/finalización de comentarios, pero no para ningún otro delimitador. lo que realmente necesito es un lugar para decirle a notepad ++ que trate {} como un delimitador, al igual que hace para <> ahora.

edición # 3

También estoy buscando a esta lista de idiomas definidos por el usuario para Notepad ++ http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=User_Defined_Language_Files idiomas definidos por el usuario utilizan un motor diferente, pero que podría ser capaz de encontrar uno allí que es similar a html lo suficiente como para que pueda adaptarlo.

Respuesta

-1

duplicado posibles de este mensaje: https://superuser.com/questions/40876/assigning-custom-extensions-to-a-languages-syntax-highlighting-in-notepad

Todo lo que necesita hacer es añadir su extensión personalizada en Preferencias-> Estilo configurador

Haga clic en HTML y añada su extensión en el cuadro Ext usuario.

EDITAR: Si quiere agregar más reglas a su idioma, puede que tenga que agregar otro XML en el bloc de notas ++ -> plugins-> APIs Si cree que es como HTML, simplemente copie sobre html.xml y guárdelo como ramita .xml Agregue más reglas a este archivo XML

+0

dije en mi pregunta que hice esto (lo fijo para tratar .twig como html). Lo que quiero hacer es agregar resaltado de código adicional a la definición de las etiquetas TWIG. – MrGlass

+1

Cada vez que intento editar ese archivo, no he visto ningún resultado. o recibo errores, o no pasa nada. Puede publicar un ejemplo? Actualizaré mi publicación con un poco de información acerca de TWIG – MrGlass

14

Debería poder copiar y editar el archivo de definición XML (html.xml); siempre y cuando no necesite cosas más allá de lo básico, como el plegado de código, coloreado avanzado basado en bloques de manejo de casos o condicionales múltiples, formateo separado para caracteres principales, coloreado de etiquetas, comentarios basados ​​en xml, mezcla de idiomas (coloreado de scripts incrustados), soporte para colorear tipos de pato, etc. Si necesita algo "avanzado", necesita escribir su propio lexer, en cuyo caso se aplica la mayoría de las siguientes condiciones.

Aún así, las plantillas que enumero a continuación deberían darle una ventaja en su propio archivo de definición de idioma.


Por lo que yo sé, Notepad ++ utiliza Scintilla lexers para determinar sus reglas del código.

Tendrá que crear su propio lexer, pero ... el HTML Scintilla Lexer ya está incluido en el Scintilla source code.

Luego inserta su lexer personalizado usando plug-in, como Gary's Lua Highlighter Plugin.

Los recursos para la construcción de un analizador léxico de encargo:

Dicho esto, Geany es muy similar al Notepad ++ (derivado del mismo motor, Scintilla), por lo que es posible que desee ver si ya se ha hecho para Geany, o si hay un proyecto de código abierto para ello en las obras. Esto al menos te daría una ventaja.

Si eso no ayuda, hay IDEs y editores con el apoyo de la ramita incorporado, como:

GEdit thei ha publicado r Definición XML del lenguaje here, que podría servir de referencia al crear su propio archivo de definición o lexer; También hay otra plantilla publicada por los chicos de Twig here que podría ser de alguna ayuda.

aquí son los mejores Notepad ++ - tutoriales específicos para la creación de lexer encargo/definidos por el usuario Idiomas puedo encontrar:

Si usted desea conseguir valiente y construir su propio Scintilla dll, haga referencia a estos hilos, vea a un tipo que lo puso en funcionamiento y aparezca en la lista de idiomas (use el mensaje anterior/siguiente para ver las respuestas o el índice de hilos; es una lista de correo, por lo que su interfaz de usuario yo sn't la mejor)

Espero que ayude o te lleva por lo menos más de una ventaja!

+0

. Eso ciertamente parece informativo, me gustaría profundizar en él un poco. – MrGlass

+0

Si se está enfocando en el combo PHP/Twig, le doy un +1 a PhpStorm de nuevo, es un IDE pago, pero el costo es bajo, su soporte para PHP es muy rápido, y es compatible con Twig out de la caja también, sin plantillas, sin archivos xml, sin definiciones de idioma, descargas adicionales, complementos, nada, nada más sacarlo de la caja, soporte completo de ramitas. 99 $ para un solo desarrollador, 49 $ de renovación, y por lo general vacaciones 29.99 $ especiales de renovación. –

+0

¿Es compatible con SFTP? hago todos mis cambios en vivo en un servidor de desarrollo – MrGlass

Cuestiones relacionadas