tag name wordpress syntax-highlighting geshi

name - get tags wordpress



Mejore el resaltado de sintaxis GeSHi para T-SQL (2)

Puede hacer esto agregando un control PARSER_CONTROL al final de la matriz:

''PARSER_CONTROL'' => array( ''KEYWORDS'' => array( 1 => array( // "1" maps to the main keywords near the start of the array ''DISALLOWED_BEFORE'' => ''(?![/(/w])'', ''DISALLOWED_AFTER'' => ''(?![/(/w])'' ), 5 => array( // "5" maps to the shorter keywords like "IN" that are further down ''DISALLOWED_BEFORE'' => ''(?![/(/w])'', ''DISALLOWED_AFTER'' => ''(?![/(/w])'' ), ) )

Editar

Modifiqué tu idea para mover algunas de las palabras clave que agregaste a SYMBOLS nuevo a KEYWORDS (aunque en su propio grupo y con tu estilo personalizado), y actualicé la matriz PARSER_CONTROL para que coincida con los nuevos índices de matriz de palabras clave y también para incluir regex defecto que genera geshi. Aqui esta el link:

https://gist.github.com/jamend/07e60bf0b9acdfdeee7a

Estoy usando WP-GeSHi en WordPress, y en gran medida estoy muy contento con él. Sin embargo, hay algunos escenarios menores en los que el resaltado de color es demasiado agresivo cuando una palabra clave es:

  1. un nombre de variable (indicado por un @ líder)
  2. parte de otra palabra (por ejemplo, IN en INSERTED )
  3. la combinación (parte de un nombre de variable, por ejemplo, JOIN e IN en @JOINBING )
  4. dentro de corchetes (por ejemplo, [status] )

Ciertas palabras clave distinguen entre mayúsculas y minúsculas, y otras no. La siguiente captura de pantalla resume los diversos casos en que esto sale mal:

Ahora, el código en GeSHi.php es bastante detallado, y de ninguna manera soy un experto en PHP. No tengo miedo de ensuciarme las manos aquí, pero espero que alguien más haya corregido este código y pueda proporcionar algunos consejos. Ya implementé una solución alternativa para evitar que @@ROWCOUNT se resalte incorrectamente, pero esto fue fácil, ya que @@ROWCOUNT está definido; simplemente mezclé las matrices para que se encontrara antes de ROWCOUNT .

Lo que me gustaría es que GeSHi ignore por completo las palabras clave que no son palabras completas (ya sea que estén prefijadas por @ o rodeadas inmediatamente por otras letras / números). JOIN debe ser gris, pero @JOIN y @JOIN no deberían. También me gustaría ignorar las palabras clave que están entre corchetes (después de todo, así es como le decimos a Management Studio que no resalte el color, y también le indicamos al motor de SQL que ignore las palabras reservadas, las palabras clave y los identificadores no válidos) )


Según yo, lo que estás haciendo llevaría mucho tiempo. Por lo tanto, le sugiero que instale un plugin diferente:

Tiene mejores características y admite más idiomas y de una mejor manera. Por lo tanto, eliminaría todos estos problemas.

EDITAR:

Oye, probé el mismo código con la última versión y obtuve los siguientes resultados:

EDITAR:

Entonces, si no quiere usar otro complemento, entonces le contaré sobre la codificación:

Primero abra / wp-content / plugins / wp-geshi-highlight / geshi / geshi / tsql.php en su editor de texto.

Luego, ubique la matriz ''KEYWORDS'' o búsquela.

Agregue 6 a la última (después de 5 ) y agregue sus palabras clave personalizadas. Por ejemplo:

5 => array( ''ALL'', ''AND'', ''ANY'', ''BETWEEN'', ''CROSS'', ''EXISTS'', ''IN'', ''JOIN'', ''LIKE'', ''NOT'', ''NULL'', ''OR'', ''OUTER'', ''SOME'', ), 6 => array( //This line has been added by me ''status'' //This line has been added by me ) //This line has been added by me

Nota: Acabo de mostrar el elemento 5 de matriz (ya presente) y el elemento 6 de matriz (que he creado).

Luego, para que sea sensible a mayúsculas y minúsculas, agregue el código siguiente a la última matriz ''CASE_SENSITIVE'' :

6 => true

La matriz ''CASE_SENSITIVE'' debería verse así:

''CASE_SENSITIVE'' => array( GESHI_COMMENTS => false, 1 => false, 2 => false, 3 => false, 4 => false, 5 => false, 6 => true //This line has been added by me ),

Ahora, tendrá que agregar estilo a las palabras clave personalizadas. Esto se puede lograr agregando una línea debajo del elemento ''KEYWORDS'' de ''STYLES'' matriz ''STYLES'' . El inicio de ''STYLES'' matriz ''STYLES'' debería verse así:

''STYLES'' => array( ''KEYWORDS'' => array( 1 => ''color: #0000FF;'', 2 => ''color: #FF00FF;'', 3 => ''color: #AF0000;'', 4 => ''color: #AF0000;'', 5 => ''color: #808080;'', 6 => ''color: #0000FF;'' //This line has been added by me ),

Puede resolver sus problemas según las pautas anteriores, pero para la parte en la que el complemento resalta palabras incompletas, he encontrado solo una solución, que actualice su complemento a la última versión, porque resuelve este problema.