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:
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:
- un nombre de variable (indicado por un
@
líder) - parte de otra palabra (por ejemplo,
IN
enINSERTED
) - la combinación (parte de un nombre de variable, por ejemplo,
JOIN
eIN
en@JOINBING
) - 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.