Aar*_*and 32 wordpress geshi syntax-highlighting
我在WordPress中使用WP-GeSHi,在很大程度上我对它非常满意.但是,有一些小的场景,当关键字为:时,颜色突出显示过于激进:
@)INin INSERTED)JOIN和IN在@JOINBING)[status])某些关键字区分大小写,有些则不区分大小写.下面的屏幕截图总结了出现这种情况的各种情况:

现在,代码GeSHi.php非常详细,我绝不是PHP专家.我不怕在这里弄脏手,但我希望其他人对此代码进行了更正,并提供了一些指示.我已经实现了一个解决方法,以防止@@ROWCOUNT被错误地突出显示,但这很容易,因为@@ROWCOUNT已定义 - 我只是将数组混乱,以便之前找到它ROWCOUNT.
我想要的是GeSHi完全忽略不是整个单词的关键词(无论它们是以@其他字母/数字作为前缀还是立即被其他字母/数字包围).JOIN应该是灰色的,但@JOIN和JOINS不应该.我也希望忽略方括号内的关键字(毕竟,这就是我们告诉Management Studio不要突出显示它的方式,而且我们也告诉SQL引擎忽略保留字,关键字和无效标识符的方式).
Jon*_*end 31
您可以通过向PARSER_CONTROL数组末尾添加控件来执行此操作:
'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])'
),
)
)
Run Code Online (Sandbox Code Playgroud)
编辑
我已经修改了你的要点,将你添加的一些关键字移SYMBOLS回KEYWORDS(虽然在他们自己的组中并使用你的自定义样式),我更新了PARSER_CONTROL数组以匹配新的关键字数组索引,并且还包括默认的regexgeshi产生.链接在这里:
https://gist.github.com/jamend/07e60bf0b9acdfdeee7a